From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- testing/talos/.eslintrc.js | 36 + testing/talos/INSTALL.py | 76 + testing/talos/MANIFEST.in | 1 + testing/talos/README | 12 + testing/talos/jetstream-benchmark.manifest | 9 + testing/talos/mach_commands.py | 133 + testing/talos/moz.build | 51 + testing/talos/perfdocs/config.yml | 1051 + testing/talos/perfdocs/index.rst | 735 + testing/talos/requirements.txt | 15 + testing/talos/setup.py | 68 + testing/talos/source_requirements.txt | 17 + testing/talos/talos.json | 109 + testing/talos/talos/__init__.py | 0 testing/talos/talos/allowlist.py | 184 + .../talos/talos/base_profile/permissions.sqlite | Bin 0 -> 2048 bytes testing/talos/talos/bootstrap.js | 60 + testing/talos/talos/cmanager.py | 63 + testing/talos/talos/cmanager_base.py | 28 + testing/talos/talos/cmanager_linux.py | 183 + testing/talos/talos/cmanager_mac.py | 90 + testing/talos/talos/cmanager_win32.py | 267 + testing/talos/talos/cmdline.py | 327 + testing/talos/talos/config.py | 399 + testing/talos/talos/ffsetup.py | 352 + testing/talos/talos/filter.py | 264 + testing/talos/talos/gecko_profile.py | 236 + testing/talos/talos/getInfo.html | 37 + testing/talos/talos/getinfooffline/api.js | 15 + testing/talos/talos/getinfooffline/background.js | 10 + testing/talos/talos/getinfooffline/manifest.json | 27 + testing/talos/talos/getinfooffline/schema.json | 1 + testing/talos/talos/heavy.py | 146 + testing/talos/talos/mainthreadio.py | 189 + testing/talos/talos/mtio-allowlist.json | 166 + testing/talos/talos/output.py | 355 + testing/talos/talos/pageloader/README | 63 + testing/talos/talos/pageloader/api.js | 136 + .../talos/pageloader/chrome/MozillaFileLogger.js | 95 + testing/talos/talos/pageloader/chrome/Profiler.js | 206 + testing/talos/talos/pageloader/chrome/a11y.js | 66 + testing/talos/talos/pageloader/chrome/lh_dummy.js | 11 + .../talos/talos/pageloader/chrome/lh_fnbpaint.js | 45 + testing/talos/talos/pageloader/chrome/lh_hero.js | 49 + testing/talos/talos/pageloader/chrome/lh_moz.js | 28 + .../talos/talos/pageloader/chrome/lh_pdfpaint.js | 26 + .../talos/talos/pageloader/chrome/pageloader.js | 1114 + .../talos/talos/pageloader/chrome/pageloader.xhtml | 56 + testing/talos/talos/pageloader/chrome/quit.js | 72 + testing/talos/talos/pageloader/chrome/report.js | 195 + .../talos/talos/pageloader/chrome/talos-content.js | 24 + testing/talos/talos/pageloader/chrome/tscroll.js | 324 + testing/talos/talos/pageloader/chrome/utils.js | 34 + testing/talos/talos/pageloader/manifest.json | 23 + testing/talos/talos/pageloader/schema.json | 1 + testing/talos/talos/results.py | 558 + testing/talos/talos/run_tests.py | 541 + testing/talos/talos/scripts/report.py | 148 + testing/talos/talos/scripts/talos-debug.js | 215 + testing/talos/talos/startup_test/__init__.py | 0 .../talos/startup_test/sessionrestore/addon/api.js | 171 + .../sessionrestore/addon/manifest.json | 23 + .../startup_test/sessionrestore/addon/schema.json | 1 + .../profile-manywindows/sessionCheckpoints.json | 11 + .../profile-manywindows/sessionstore.js | 8030 ++ .../profile-manywindows/sessionstore.jsonlz4 | Bin 0 -> 66865 bytes .../sessionrestore/profile/sessionCheckpoints.json | 11 + .../sessionrestore/profile/sessionstore.js | 6203 ++ .../sessionrestore/profile/sessionstore.jsonlz4 | Bin 0 -> 11261 bytes .../startup_about_home_paint/addon/api.js | 86 + .../startup_about_home_paint/addon/manifest.json | 23 + .../startup_about_home_paint/addon/schema.json | 1 + .../startup_about_home_paint.manifest | 0 testing/talos/talos/startup_test/tspaint_test.html | 62 + testing/talos/talos/talos-powers/README | 5 + testing/talos/talos/talos-powers/api.js | 465 + .../talos-powers/chrome/talos-powers-content.js | 214 + .../talos-powers/content/TalosContentProfiler.js | 311 + .../content/TalosParentProfiler.sys.mjs | 238 + .../talos-powers/content/TalosPowersContent.js | 151 + testing/talos/talos/talos-powers/manifest.json | 23 + testing/talos/talos/talos-powers/schema.json | 1 + testing/talos/talos/talos_process.py | 278 + testing/talos/talos/talosconfig.py | 61 + testing/talos/talos/test.py | 1219 + testing/talos/talos/tests/a11y/a11y.manifest | 2 + testing/talos/talos/tests/a11y/dhtml.html | 60 + testing/talos/talos/tests/a11y/tablemutation.html | 143 + .../about_preferences_basic.manifest | 9 + testing/talos/talos/tests/ares6/ares6.manifest | 1 + testing/talos/talos/tests/cpstartup/cpstartup.html | 43 + .../talos/talos/tests/cpstartup/cpstartup.manifest | 1 + .../talos/talos/tests/cpstartup/extension/api.js | 133 + .../talos/tests/cpstartup/extension/framescript.js | 40 + .../talos/tests/cpstartup/extension/manifest.json | 23 + .../talos/tests/cpstartup/extension/schema.json | 1 + testing/talos/talos/tests/cpstartup/target.html | 9 + .../cross_origin_pageload.manifest | 1 + .../talos/tests/cross_origin_pageload/iframe.html | 1 + .../talos/tests/cross_origin_pageload/index.html | 9 + .../talos/tests/cross_origin_pageload/index2.html | 30 + testing/talos/talos/tests/devtools/addon/api.js | 46 + .../tests/devtools/addon/content/.eslintrc.js | 26 + .../addon/content/actors/DampLoadChild.sys.mjs | 13 + .../addon/content/actors/DampLoadParent.sys.mjs | 23 + .../tests/devtools/addon/content/damp-tests.js | 255 + .../talos/tests/devtools/addon/content/damp.js | 557 + .../content/pages/custom/console/bulklog.html | 65 + .../addon/content/pages/custom/console/iframe.html | 62 + .../addon/content/pages/custom/console/index.html | 31 + .../addon/content/pages/custom/debugger/README.md | 12 + .../content/pages/custom/debugger/iframe.html | 135 + .../addon/content/pages/custom/debugger/index.html | 28 + .../content/pages/custom/debugger/js/testfile.js | 1001 + .../pages/custom/debugger/static/js/main.js | 2 + .../pages/custom/debugger/static/js/main.js.map | 1 + .../pages/custom/debugger/static/js/minified.js | 2 + .../content/pages/custom/inspector/iframe.html | 122 + .../content/pages/custom/inspector/index.html | 27 + .../content/pages/custom/netmonitor/iframe.html | 16 + .../content/pages/custom/netmonitor/index.html | 143 + .../content/pages/custom/netmonitor/script.js | 101 + .../content/pages/custom/netmonitor/style.css | 100 + .../pages/custom/panels-in-background/index.html | 30 + .../sjs_simple-test-server.sjs | 7 + .../content/pages/custom/styleeditor/iframe.html | 59 + .../content/pages/custom/styleeditor/index.html | 27 + .../content/pages/custom/styleeditor/style.css | 1 + .../tests/devtools/addon/content/pages/simple.html | 14 + .../tests/accessibility/accessibility-helpers.js | 35 + .../addon/content/tests/accessibility/cold-open.js | 25 + .../addon/content/tests/accessibility/simple.js | 27 + .../addon/content/tests/debugger/cold-open.js | 27 + .../addon/content/tests/debugger/complicated.js | 33 + .../addon/content/tests/debugger/custom.js | 240 + .../content/tests/debugger/debugger-helpers.js | 338 + .../addon/content/tests/debugger/simple.js | 33 + .../tests/devtools/addon/content/tests/head.js | 203 + .../addon/content/tests/inspector/cold-open.js | 21 + .../addon/content/tests/inspector/complicated.js | 26 + .../addon/content/tests/inspector/custom.js | 207 + .../content/tests/inspector/inspector-helpers.js | 28 + .../addon/content/tests/inspector/layout.js | 63 + .../addon/content/tests/inspector/mutations.js | 74 + .../addon/content/tests/inspector/simple.js | 26 + .../addon/content/tests/netmonitor/cold-open.js | 20 + .../addon/content/tests/netmonitor/complicated.js | 52 + .../addon/content/tests/netmonitor/custom.js | 104 + .../content/tests/netmonitor/netmonitor-helpers.js | 181 + .../addon/content/tests/netmonitor/simple.js | 38 + .../devtools/addon/content/tests/server/actor.js | 23 + .../addon/content/tests/server/protocol.js | 91 + .../devtools/addon/content/tests/server/spec.js | 39 + .../content/tests/source-map/angular-min.js.map | 8 + .../content/tests/source-map/source-map-library.js | 113 + .../content/tests/source-map/source-map-loader.js | 52 + .../addon/content/tests/styleeditor/complicated.js | 25 + .../addon/content/tests/styleeditor/custom.js | 25 + .../addon/content/tests/styleeditor/simple.js | 22 + .../addon/content/tests/toolbox/browser-toolbox.js | 197 + .../content/tests/toolbox/panels-in-background.js | 57 + .../addon/content/tests/toolbox/screenshot.js | 78 + .../addon/content/tests/webconsole/autocomplete.js | 93 + .../addon/content/tests/webconsole/bulklog.js | 93 + .../addon/content/tests/webconsole/cold-open.js | 20 + .../addon/content/tests/webconsole/complicated.js | 59 + .../addon/content/tests/webconsole/custom.js | 76 + .../webconsole/log-in-loop-content-process.js | 99 + .../addon/content/tests/webconsole/objectexpand.js | 125 + .../content/tests/webconsole/openwithcache.js | 38 + .../addon/content/tests/webconsole/simple.js | 28 + .../addon/content/tests/webconsole/streamlog.js | 65 + .../addon/content/tests/webconsole/typing.js | 92 + .../content/tests/webconsole/webconsole-helpers.js | 132 + testing/talos/talos/tests/devtools/addon/damp.html | 12 + testing/talos/talos/tests/devtools/addon/driver.js | 10 + .../talos/talos/tests/devtools/addon/manifest.json | 30 + .../talos/talos/tests/devtools/addon/schema.json | 13 + testing/talos/talos/tests/devtools/damp.manifest | 1 + testing/talos/talos/tests/dromaeo/JSON.php | 806 + testing/talos/talos/tests/dromaeo/LICENSE | 30 + testing/talos/talos/tests/dromaeo/application.css | 115 + testing/talos/talos/tests/dromaeo/css.manifest | 6 + .../talos/talos/tests/dromaeo/cssquery-dojo.html | 60 + .../talos/talos/tests/dromaeo/cssquery-ext.html | 60 + .../talos/talos/tests/dromaeo/cssquery-jquery.html | 60 + .../talos/tests/dromaeo/cssquery-mootools.html | 60 + .../talos/tests/dromaeo/cssquery-prototype.html | 60 + .../talos/talos/tests/dromaeo/cssquery-yui.html | 60 + testing/talos/talos/tests/dromaeo/dom-attr.html | 60 + testing/talos/talos/tests/dromaeo/dom-modify.html | 60 + testing/talos/talos/tests/dromaeo/dom-query.html | 60 + .../talos/talos/tests/dromaeo/dom-traverse.html | 60 + testing/talos/talos/tests/dromaeo/dom.manifest | 4 + testing/talos/talos/tests/dromaeo/favicon.ico | Bin 0 -> 1406 bytes testing/talos/talos/tests/dromaeo/favicon.png | Bin 0 -> 448 bytes testing/talos/talos/tests/dromaeo/htmlrunner.js | 4 + testing/talos/talos/tests/dromaeo/ie.css | 30 + testing/talos/talos/tests/dromaeo/images/bg.png | Bin 0 -> 711 bytes .../talos/talos/tests/dromaeo/images/clouds.png | Bin 0 -> 1130 bytes .../talos/talos/tests/dromaeo/images/clouds2.png | Bin 0 -> 1341 bytes .../talos/talos/tests/dromaeo/images/comets.png | Bin 0 -> 4047 bytes testing/talos/talos/tests/dromaeo/images/dino1.png | Bin 0 -> 1276 bytes testing/talos/talos/tests/dromaeo/images/dino2.png | Bin 0 -> 1354 bytes testing/talos/talos/tests/dromaeo/images/dino3.png | Bin 0 -> 3345 bytes testing/talos/talos/tests/dromaeo/images/dino4.png | Bin 0 -> 1331 bytes testing/talos/talos/tests/dromaeo/images/dino5.png | Bin 0 -> 2360 bytes testing/talos/talos/tests/dromaeo/images/dino6.png | Bin 0 -> 1374 bytes testing/talos/talos/tests/dromaeo/images/dino7.png | Bin 0 -> 2445 bytes testing/talos/talos/tests/dromaeo/images/dino8.png | Bin 0 -> 2090 bytes testing/talos/talos/tests/dromaeo/images/left.png | Bin 0 -> 8908 bytes testing/talos/talos/tests/dromaeo/images/logo.png | Bin 0 -> 24809 bytes testing/talos/talos/tests/dromaeo/images/logo2.png | Bin 0 -> 19809 bytes testing/talos/talos/tests/dromaeo/images/logo3.png | Bin 0 -> 9172 bytes testing/talos/talos/tests/dromaeo/images/right.png | Bin 0 -> 1821 bytes testing/talos/talos/tests/dromaeo/images/top.png | Bin 0 -> 890 bytes testing/talos/talos/tests/dromaeo/images/water.png | Bin 0 -> 1371 bytes testing/talos/talos/tests/dromaeo/index.html | 60 + testing/talos/talos/tests/dromaeo/jquery.js | 3408 + testing/talos/talos/tests/dromaeo/json.js | 275 + testing/talos/talos/tests/dromaeo/lib/dojo.js | 8458 +++ testing/talos/talos/tests/dromaeo/lib/ext-base.js | 10 + testing/talos/talos/tests/dromaeo/lib/ext-core.js | 19 + testing/talos/talos/tests/dromaeo/lib/jquery.js | 3549 + testing/talos/talos/tests/dromaeo/lib/mootools.js | 3946 + testing/talos/talos/tests/dromaeo/lib/prototype.js | 4320 ++ testing/talos/talos/tests/dromaeo/lib/yahoo.js | 986 + testing/talos/talos/tests/dromaeo/lib/yui-dom.js | 1241 + testing/talos/talos/tests/dromaeo/lib/yui-event.js | 2562 + .../talos/talos/tests/dromaeo/lib/yui-selector.js | 666 + testing/talos/talos/tests/dromaeo/pngfix.js | 28 + testing/talos/talos/tests/dromaeo/reset.css | 38 + testing/talos/talos/tests/dromaeo/store.php | 58 + testing/talos/talos/tests/dromaeo/test-head.html | 4 + testing/talos/talos/tests/dromaeo/test-head.js | 2 + testing/talos/talos/tests/dromaeo/test-tail.html | 4 + testing/talos/talos/tests/dromaeo/test-tail.js | 1 + .../talos/talos/tests/dromaeo/tests/MANIFEST.json | 442 + .../talos/tests/dromaeo/tests/cssquery-dojo.html | 3063 + .../talos/tests/dromaeo/tests/cssquery-ext.html | 3064 + .../talos/tests/dromaeo/tests/cssquery-jquery.html | 3062 + .../tests/dromaeo/tests/cssquery-mootools.html | 3062 + .../tests/dromaeo/tests/cssquery-prototype.html | 3062 + .../talos/tests/dromaeo/tests/cssquery-yui.html | 3065 + .../talos/talos/tests/dromaeo/tests/dom-attr.html | 2943 + .../talos/tests/dromaeo/tests/dom-modify.html | 2973 + .../talos/talos/tests/dromaeo/tests/dom-query.html | 3000 + .../talos/tests/dromaeo/tests/dom-traverse.html | 2972 + .../talos/tests/dromaeo/tests/dromaeo-3d-cube.html | 340 + .../tests/dromaeo/tests/dromaeo-core-eval.html | 35 + .../tests/dromaeo/tests/dromaeo-object-array.html | 64 + .../tests/dromaeo/tests/dromaeo-object-regexp.html | 354 + .../tests/dromaeo/tests/dromaeo-object-string.html | 197 + .../tests/dromaeo/tests/dromaeo-string-base64.html | 155 + .../tests/dromaeo/tests/jslib-attr-jquery.html | 2949 + .../tests/dromaeo/tests/jslib-attr-prototype.html | 2949 + .../tests/dromaeo/tests/jslib-event-jquery.html | 2936 + .../tests/dromaeo/tests/jslib-event-prototype.html | 2936 + .../tests/dromaeo/tests/jslib-modify-jquery.html | 2960 + .../dromaeo/tests/jslib-modify-prototype.html | 2960 + .../tests/dromaeo/tests/jslib-style-jquery.html | 2958 + .../tests/dromaeo/tests/jslib-style-prototype.html | 2959 + .../tests/dromaeo/tests/jslib-traverse-jquery.html | 2960 + .../dromaeo/tests/jslib-traverse-prototype.html | 2960 + .../tests/dromaeo/tests/sunspider-3d-morph.html | 44 + .../tests/dromaeo/tests/sunspider-3d-raytrace.html | 460 + .../tests/sunspider-access-binary-trees.html | 64 + .../dromaeo/tests/sunspider-access-fannkuch.html | 80 + .../dromaeo/tests/sunspider-access-nbody.html | 181 + .../dromaeo/tests/sunspider-access-nsieve.html | 48 + .../tests/sunspider-bitops-3bit-bits-in-byte.html | 46 + .../tests/sunspider-bitops-bits-in-byte.html | 35 + .../tests/sunspider-bitops-bitwise-and.html | 42 + .../tests/sunspider-bitops-nsieve-bits.html | 42 + .../tests/sunspider-controlflow-recursive.html | 46 + .../tests/dromaeo/tests/sunspider-crypto-aes.html | 443 + .../tests/dromaeo/tests/sunspider-crypto-md5.html | 300 + .../tests/dromaeo/tests/sunspider-crypto-sha1.html | 238 + .../dromaeo/tests/sunspider-date-format-tofte.html | 312 + .../dromaeo/tests/sunspider-date-format-xparb.html | 431 + .../tests/dromaeo/tests/sunspider-math-cordic.html | 103 + .../dromaeo/tests/sunspider-math-partial-sums.html | 44 + .../tests/sunspider-math-spectral-norm.html | 64 + .../tests/dromaeo/tests/sunspider-regexp-dna.html | 1740 + .../dromaeo/tests/sunspider-string-fasta.html | 104 + .../dromaeo/tests/sunspider-string-tagcloud.html | 282 + .../tests/sunspider-string-unpack-code.html | 81 + .../tests/sunspider-string-validate-input.html | 109 + .../talos/talos/tests/dromaeo/tests/v8-crypto.html | 1705 + .../talos/tests/dromaeo/tests/v8-deltablue.html | 887 + .../talos/tests/dromaeo/tests/v8-earley-boyer.html | 4693 ++ .../talos/tests/dromaeo/tests/v8-raytrace.html | 3444 + .../talos/tests/dromaeo/tests/v8-richards.html | 549 + .../talos/talos/tests/dromaeo/tests/w3c_home.png | Bin 0 -> 1936 bytes testing/talos/talos/tests/dromaeo/web-style.css | 24 + testing/talos/talos/tests/dromaeo/webrunner.js | 807 + .../tests/gfx/benchmarks/rasterflood_gradient.html | 120 + .../tests/gfx/benchmarks/rasterflood_svg.html | 146 + .../talos/tests/gfx/rasterflood_gradient.manifest | 1 + .../talos/talos/tests/gfx/rasterflood_svg.manifest | 1 + .../talos/talos/tests/jetstream/jetstream.manifest | 1 + testing/talos/talos/tests/kraken/driver.html | 192 + testing/talos/talos/tests/kraken/kraken.css | 54 + testing/talos/talos/tests/kraken/kraken.manifest | 14 + testing/talos/talos/tests/kraken/test-contents.js | 74412 +++++++++++++++++++ testing/talos/talos/tests/kraken/test-prefix.js | 2 + .../benchmarks/displaylist_flattened_mutate.html | 64 + .../benchmarks/displaylist_inactive_mutate.html | 64 + .../layout/benchmarks/displaylist_mutate.html | 63 + .../talos/tests/layout/displaylist_mutate.manifest | 3 + .../talos/tests/motionmark/animometer.manifest | 2 + .../talos/tests/motionmark/htmlsuite.manifest | 1 + .../talos/talos/tests/motionmark/webgl.manifest | 1 + .../talos/tests/pdfpaint/bug1722807_page2.pdf | Bin 0 -> 615734 bytes .../talos/talos/tests/pdfpaint/bug857031_page1.pdf | Bin 0 -> 1079023 bytes .../talos/talos/tests/pdfpaint/pdfpaint.manifest | 3 + testing/talos/talos/tests/pdfpaint/tracemonkey.pdf | Bin 0 -> 1016315 bytes .../tests/perf-reftest-singletons/.eslintrc.json | 5 + .../talos/tests/perf-reftest-singletons/README | 13 + .../perf-reftest-singletons/abspos-reflow-1.html | 26 + .../perf-reftest-singletons/attr-selector-1.html | 15 + .../perf-reftest-singletons/bidi-resolution-1.html | 24 + .../perf-reftest-singletons/bloom-basic-2.html | 21 + .../tests/perf-reftest-singletons/bloom-basic.html | 20 + .../tests/perf-reftest-singletons/coalesce-1.html | 25 + .../tests/perf-reftest-singletons/coalesce-2.html | 25 + .../perf-reftest-singletons/display-none-1.html | 20 + .../external-string-pass.html | 18 + .../perf-reftest-singletons/getElementById-1.html | 42 + .../tests/perf-reftest-singletons/id-getter-1.html | 16 + .../tests/perf-reftest-singletons/id-getter-2.html | 16 + .../tests/perf-reftest-singletons/id-getter-3.html | 16 + .../tests/perf-reftest-singletons/id-getter-4.html | 16 + .../tests/perf-reftest-singletons/id-getter-5.html | 16 + .../tests/perf-reftest-singletons/id-getter-6.html | 17 + .../tests/perf-reftest-singletons/id-getter-7.html | 17 + .../inline-style-cache-1.html | 24 + .../perf-reftest-singletons/line-iterator.html | 32 + .../link-style-cache-1.html | 26 + .../perf-reftest-singletons/many-custom-props.html | 18 + .../tests/perf-reftest-singletons/nth-index-1.html | 24 + .../tests/perf-reftest-singletons/nth-index-2.html | 24 + .../perf-reftest-singletons/only-children-1.html | 18 + .../parent-basic-singleton.html | 20 + .../perf_reftest_singletons.manifest | 37 + .../scrollbar-styles-1.html | 16 + .../perf-reftest-singletons/slow-selector-1.html | 21 + .../perf-reftest-singletons/slow-selector-2.html | 21 + .../perf-reftest-singletons/style-attr-1.html | 21 + .../style-sharing-style-attr.html | 21 + .../perf-reftest-singletons/style-sharing.html | 20 + .../svg-text-getExtentOfChar-1.html | 36 + .../svg-text-textLength-1.html | 31 + .../tiny-traversal-singleton.html | 31 + .../talos/tests/perf-reftest-singletons/util.js | 97 + .../window-named-property-get.html | 19 + .../talos/talos/tests/perf-reftest/.eslintrc.json | 5 + .../tests/perf-reftest/bidi-resolution-1-ref.html | 24 + .../tests/perf-reftest/bidi-resolution-1.html | 24 + .../talos/tests/perf-reftest/bloom-basic-2.html | 21 + .../talos/tests/perf-reftest/bloom-basic-ref.html | 20 + .../talos/tests/perf-reftest/bloom-basic.html | 20 + .../talos/talos/tests/perf-reftest/coalesce-1.html | 25 + .../talos/talos/tests/perf-reftest/coalesce-2.html | 25 + .../talos/tests/perf-reftest/coalesce-ref.html | 17 + .../talos/tests/perf-reftest/dep-check-1-ref.html | 35 + .../talos/tests/perf-reftest/dep-check-1.html | 37 + .../tests/perf-reftest/display-none-1-ref.html | 19 + .../talos/tests/perf-reftest/display-none-1.html | 20 + .../talos/tests/perf-reftest/nth-index-1.html | 24 + .../talos/tests/perf-reftest/nth-index-2.html | 24 + .../talos/tests/perf-reftest/nth-index-ref.html | 24 + .../talos/tests/perf-reftest/only-children-1.html | 18 + .../tests/perf-reftest/only-children-ref.html | 18 + .../talos/tests/perf-reftest/perf_reftest.manifest | 25 + .../recompute-position-horizontal-tb.html | 9 + .../recompute-position-vertical-lr.html | 9 + .../recompute-position-vertical-rl.html | 9 + .../talos/tests/perf-reftest/recompute-position.js | 24 + .../tests/perf-reftest/slow-selector-1-ref.html | 20 + .../talos/tests/perf-reftest/slow-selector-1.html | 21 + .../tests/perf-reftest/slow-selector-2-ref.html | 20 + .../talos/tests/perf-reftest/slow-selector-2.html | 21 + .../tests/perf-reftest/some-descendants-1-ref.html | 29 + .../tests/perf-reftest/some-descendants-1.html | 29 + .../talos/tests/perf-reftest/stop-cascade-1.html | 26 + .../talos/tests/perf-reftest/stop-cascade-2.html | 27 + .../talos/tests/perf-reftest/stop-cascade-ref.html | 25 + .../talos/tests/perf-reftest/style-attr-1-ref.html | 14 + .../talos/tests/perf-reftest/style-attr-1.html | 21 + .../tests/perf-reftest/style-sharing-ref.html | 20 + .../perf-reftest/style-sharing-style-attr.html | 21 + .../talos/tests/perf-reftest/style-sharing.html | 20 + testing/talos/talos/tests/perf-reftest/util.js | 97 + .../quantum_pageload_amazon.manifest | 1 + .../quantum_pageload_facebook.manifest | 1 + .../quantum_pageload_google.manifest | 1 + .../quantum_pageload_youtube.manifest | 1 + testing/talos/talos/tests/scroll/drac.htm | 381 + testing/talos/talos/tests/scroll/iframe.svg | 39 + testing/talos/talos/tests/scroll/reader.css | 63 + testing/talos/talos/tests/scroll/reader.htm | 147 + testing/talos/talos/tests/scroll/scroll.manifest | 6 + testing/talos/talos/tests/scroll/strips-single.png | Bin 0 -> 191 bytes testing/talos/talos/tests/scroll/strips.png | Bin 0 -> 191 bytes .../talos/talos/tests/scroll/tiled-downscale.html | 143 + .../talos/tests/scroll/tiled-fixed-downscale.html | 144 + testing/talos/talos/tests/scroll/tiled-fixed.html | 141 + testing/talos/talos/tests/scroll/tiled.html | 140 + .../talos/tests/speedometer/speedometer.manifest | 1 + .../talos/tests/stylebench/stylebench.manifest | 1 + .../big-optimizable-group-opacity-2500.svg | 2503 + .../tests/svg_opacity/small-group-opacity-2500.svg | 2503 + .../talos/tests/svg_opacity/svg_opacity.manifest | 4 + .../tests/svg_static/composite-scale-opacity.svg | 42 + .../svg_static/composite-scale-rotate-opacity.svg | 42 + .../tests/svg_static/composite-scale-rotate.svg | 42 + .../talos/tests/svg_static/composite-scale.svg | 42 + .../talos/talos/tests/svg_static/gearflowers.svg | 8342 +++ .../talos/tests/svg_static/images/kyoto_1.jpg | Bin 0 -> 89034 bytes .../talos/tests/svg_static/svg_static.manifest | 8 + testing/talos/talos/tests/svgx/hixie-001.xml | 297 + testing/talos/talos/tests/svgx/hixie-002.xml | 300 + testing/talos/talos/tests/svgx/hixie-003.xml | 85 + testing/talos/talos/tests/svgx/hixie-004.xml | 86 + testing/talos/talos/tests/svgx/hixie-005.xml | 92 + testing/talos/talos/tests/svgx/hixie-006.xml | 92 + testing/talos/talos/tests/svgx/hixie-007.xml | 284 + .../talos/talos/tests/svgx/images/smallcats.gif | Bin 0 -> 10111 bytes testing/talos/talos/tests/svgx/svgm.manifest | 8 + testing/talos/talos/tests/svgx/svgx.manifest | 14 + testing/talos/talos/tests/tabpaint/api.js | 217 + testing/talos/talos/tests/tabpaint/framescript.js | 102 + testing/talos/talos/tests/tabpaint/manifest.json | 23 + testing/talos/talos/tests/tabpaint/schema.json | 1 + testing/talos/talos/tests/tabpaint/tabpaint.html | 57 + .../talos/talos/tests/tabpaint/tabpaint.manifest | 2 + testing/talos/talos/tests/tabpaint/target.html | 9 + .../tabswitch/actors/TalosTabSwitchChild.sys.mjs | 31 + .../tabswitch/actors/TalosTabSwitchParent.sys.mjs | 338 + testing/talos/talos/tests/tabswitch/api.js | 64 + testing/talos/talos/tests/tabswitch/background.js | 11 + .../tabswitch/content/tabswitch-content-process.js | 68 + .../talos/talos/tests/tabswitch/content/test.html | 17 + testing/talos/talos/tests/tabswitch/manifest.json | 24 + testing/talos/talos/tests/tabswitch/schema.json | 14 + .../talos/talos/tests/tabswitch/tabswitch.manifest | 1 + testing/talos/talos/tests/tart/addon/api.js | 109 + .../talos/tests/tart/addon/chrome/blank.icon.html | 7 + .../talos/talos/tests/tart/addon/chrome/tart.ico | Bin 0 -> 1150 bytes .../talos/tests/tart/addon/content/Profiler.js | 153 + .../talos/tests/tart/addon/content/framescript.js | 58 + .../tests/tart/addon/content/tab-min-width-1px.css | 11 + .../talos/talos/tests/tart/addon/content/tart.js | 1036 + testing/talos/talos/tests/tart/addon/manifest.json | 22 + testing/talos/talos/tests/tart/addon/schema.json | 1 + testing/talos/talos/tests/tart/tart.html | 320 + testing/talos/talos/tests/tart/tart.ico | Bin 0 -> 1150 bytes testing/talos/talos/tests/tart/tart.manifest | 1 + testing/talos/talos/tests/tp5o.html | 51 + testing/talos/talos/tests/tresize/addon/api.js | 47 + .../tests/tresize/addon/chrome/tresize-test.html | 24 + .../talos/tests/tresize/addon/content/Profiler.js | 154 + .../tests/tresize/addon/content/framescript.js | 33 + .../talos/tests/tresize/addon/content/tresize.js | 67 + .../talos/talos/tests/tresize/addon/manifest.json | 23 + .../talos/talos/tests/tresize/addon/schema.json | 1 + .../talos/talos/tests/tresize/tresize-iframe.html | 11 + testing/talos/talos/tests/tresize/tresize.manifest | 1 + testing/talos/talos/tests/twinopen/api.js | 70 + testing/talos/talos/tests/twinopen/driver.js | 6 + testing/talos/talos/tests/twinopen/manifest.json | 30 + testing/talos/talos/tests/twinopen/schema.json | 13 + testing/talos/talos/tests/twinopen/twinopen.html | 12 + .../talos/talos/tests/twinopen/twinopen.manifest | 1 + .../talos/tests/twinopen/twinopen.manifest.develop | 1 + testing/talos/talos/tests/v8_7/base.js | 298 + testing/talos/talos/tests/v8_7/crypto.js | 1698 + testing/talos/talos/tests/v8_7/deltablue.js | 880 + testing/talos/talos/tests/v8_7/earley-boyer.js | 4684 ++ testing/talos/talos/tests/v8_7/navier-stokes.js | 387 + testing/talos/talos/tests/v8_7/raytrace.js | 904 + testing/talos/talos/tests/v8_7/regexp.js | 1764 + testing/talos/talos/tests/v8_7/revisions.html | 104 + testing/talos/talos/tests/v8_7/richards.js | 539 + testing/talos/talos/tests/v8_7/run.html | 167 + testing/talos/talos/tests/v8_7/splay.js | 394 + testing/talos/talos/tests/v8_7/style.css | 77 + testing/talos/talos/tests/v8_7/v8-logo.png | Bin 0 -> 24293 bytes testing/talos/talos/tests/v8_7/v8.manifest | 1 + .../tests/video/clips/testsrc.1080p.60fps.mp4 | Bin 0 -> 2582176 bytes .../tests/video/clips/testsrc.240p.120fps.mp4 | Bin 0 -> 1003783 bytes .../tests/video/clips/testsrc.480p.60fps.webm | Bin 0 -> 586956 bytes testing/talos/talos/tests/video/video.manifest | 2 + .../talos/talos/tests/video/video_playback.html | 155 + .../tests/webgl/benchmarks/terrain/grass.jpeg | Bin 0 -> 45396 bytes .../tests/webgl/benchmarks/terrain/perftest.html | 407 + .../tests/webgl/benchmarks/video/video_upload.html | 72 + testing/talos/talos/tests/webgl/glterrain.manifest | 1 + testing/talos/talos/tests/webgl/glvideo.manifest | 1 + testing/talos/talos/ttest.py | 287 + testing/talos/talos/unittests/__init__.py | 0 .../talos/talos/unittests/browser_output.ts.txt | 8 + .../talos/talos/unittests/browser_output.tsvg.txt | 214 + testing/talos/talos/unittests/conftest.py | 48 + testing/talos/talos/unittests/profile.tgz | Bin 0 -> 338 bytes testing/talos/talos/unittests/ps-Acj.out | 44 + testing/talos/talos/unittests/python.ini | 6 + testing/talos/talos/unittests/test_cmanager.py | 0 .../talos/talos/unittests/test_cmanager_base.py | 0 .../talos/talos/unittests/test_cmanager_linux.py | 0 testing/talos/talos/unittests/test_cmanager_mac.py | 0 .../talos/talos/unittests/test_cmanger_win32.py | 0 testing/talos/talos/unittests/test_cmdline.py | 0 testing/talos/talos/unittests/test_config.py | 999 + .../talos/talos/unittests/test_gecko_profile.py | 0 testing/talos/talos/unittests/test_mainthreadio.py | 0 testing/talos/talos/unittests/test_output.py | 0 testing/talos/talos/unittests/test_run_tests.py | 0 .../talos/talos/unittests/test_talos_process.py | 0 .../unittests/test_talosconfig_browser_config.json | 1 + .../unittests/test_talosconfig_test_config.json | 1 + testing/talos/talos/unittests/test_test.py | 199 + testing/talos/talos/unittests/test_ttest.py | 0 testing/talos/talos/unittests/test_whitelist.py | 0 testing/talos/talos/unittests/test_xtalos.py | 40 + testing/talos/talos/unittests/xrestop_output.txt | 224 + testing/talos/talos/utils.py | 178 + .../talos/talos/webextensions/dummy/background.js | 88 + testing/talos/talos/webextensions/dummy/content.js | 16 + testing/talos/talos/webextensions/dummy/dummy.xpi | Bin 0 -> 1868 bytes testing/talos/talos/webextensions/dummy/icon.png | Bin 0 -> 166 bytes .../talos/talos/webextensions/dummy/manifest.json | 26 + testing/talos/talos/xtalos/__init__.py | 3 + testing/talos/talos/xtalos/etlparser.py | 640 + testing/talos/talos/xtalos/parse_xperf.py | 127 + testing/talos/talos/xtalos/start_xperf.py | 106 + testing/talos/talos/xtalos/xperf_allowlist.json | 683 + testing/talos/talos/xtalos/xperf_analyzer.py | 1224 + testing/talos/talos/xtalos/xtalos.py | 168 + testing/talos/talos_from_code.py | 141 + testing/talos/tp5n-pageset.manifest | 10 + testing/talos/webextensions.manifest | 9 + 543 files changed, 258536 insertions(+) create mode 100644 testing/talos/.eslintrc.js create mode 100755 testing/talos/INSTALL.py create mode 100644 testing/talos/MANIFEST.in create mode 100644 testing/talos/README create mode 100644 testing/talos/jetstream-benchmark.manifest create mode 100644 testing/talos/mach_commands.py create mode 100644 testing/talos/moz.build create mode 100644 testing/talos/perfdocs/config.yml create mode 100644 testing/talos/perfdocs/index.rst create mode 100644 testing/talos/requirements.txt create mode 100644 testing/talos/setup.py create mode 100644 testing/talos/source_requirements.txt create mode 100644 testing/talos/talos.json create mode 100644 testing/talos/talos/__init__.py create mode 100644 testing/talos/talos/allowlist.py create mode 100644 testing/talos/talos/base_profile/permissions.sqlite create mode 100644 testing/talos/talos/bootstrap.js create mode 100644 testing/talos/talos/cmanager.py create mode 100644 testing/talos/talos/cmanager_base.py create mode 100644 testing/talos/talos/cmanager_linux.py create mode 100644 testing/talos/talos/cmanager_mac.py create mode 100644 testing/talos/talos/cmanager_win32.py create mode 100644 testing/talos/talos/cmdline.py create mode 100644 testing/talos/talos/config.py create mode 100644 testing/talos/talos/ffsetup.py create mode 100644 testing/talos/talos/filter.py create mode 100644 testing/talos/talos/gecko_profile.py create mode 100644 testing/talos/talos/getInfo.html create mode 100644 testing/talos/talos/getinfooffline/api.js create mode 100644 testing/talos/talos/getinfooffline/background.js create mode 100644 testing/talos/talos/getinfooffline/manifest.json create mode 100644 testing/talos/talos/getinfooffline/schema.json create mode 100644 testing/talos/talos/heavy.py create mode 100644 testing/talos/talos/mainthreadio.py create mode 100644 testing/talos/talos/mtio-allowlist.json create mode 100644 testing/talos/talos/output.py create mode 100644 testing/talos/talos/pageloader/README create mode 100644 testing/talos/talos/pageloader/api.js create mode 100644 testing/talos/talos/pageloader/chrome/MozillaFileLogger.js create mode 100644 testing/talos/talos/pageloader/chrome/Profiler.js create mode 100644 testing/talos/talos/pageloader/chrome/a11y.js create mode 100644 testing/talos/talos/pageloader/chrome/lh_dummy.js create mode 100644 testing/talos/talos/pageloader/chrome/lh_fnbpaint.js create mode 100644 testing/talos/talos/pageloader/chrome/lh_hero.js create mode 100644 testing/talos/talos/pageloader/chrome/lh_moz.js create mode 100644 testing/talos/talos/pageloader/chrome/lh_pdfpaint.js create mode 100644 testing/talos/talos/pageloader/chrome/pageloader.js create mode 100644 testing/talos/talos/pageloader/chrome/pageloader.xhtml create mode 100644 testing/talos/talos/pageloader/chrome/quit.js create mode 100644 testing/talos/talos/pageloader/chrome/report.js create mode 100644 testing/talos/talos/pageloader/chrome/talos-content.js create mode 100644 testing/talos/talos/pageloader/chrome/tscroll.js create mode 100644 testing/talos/talos/pageloader/chrome/utils.js create mode 100644 testing/talos/talos/pageloader/manifest.json create mode 100644 testing/talos/talos/pageloader/schema.json create mode 100755 testing/talos/talos/results.py create mode 100755 testing/talos/talos/run_tests.py create mode 100644 testing/talos/talos/scripts/report.py create mode 100644 testing/talos/talos/scripts/talos-debug.js create mode 100644 testing/talos/talos/startup_test/__init__.py create mode 100644 testing/talos/talos/startup_test/sessionrestore/addon/api.js create mode 100644 testing/talos/talos/startup_test/sessionrestore/addon/manifest.json create mode 100644 testing/talos/talos/startup_test/sessionrestore/addon/schema.json create mode 100644 testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionCheckpoints.json create mode 100644 testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js create mode 100644 testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.jsonlz4 create mode 100644 testing/talos/talos/startup_test/sessionrestore/profile/sessionCheckpoints.json create mode 100644 testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js create mode 100644 testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.jsonlz4 create mode 100644 testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js create mode 100644 testing/talos/talos/startup_test/startup_about_home_paint/addon/manifest.json create mode 100644 testing/talos/talos/startup_test/startup_about_home_paint/addon/schema.json create mode 100644 testing/talos/talos/startup_test/startup_about_home_paint/startup_about_home_paint.manifest create mode 100644 testing/talos/talos/startup_test/tspaint_test.html create mode 100644 testing/talos/talos/talos-powers/README create mode 100644 testing/talos/talos/talos-powers/api.js create mode 100644 testing/talos/talos/talos-powers/chrome/talos-powers-content.js create mode 100644 testing/talos/talos/talos-powers/content/TalosContentProfiler.js create mode 100644 testing/talos/talos/talos-powers/content/TalosParentProfiler.sys.mjs create mode 100644 testing/talos/talos/talos-powers/content/TalosPowersContent.js create mode 100644 testing/talos/talos/talos-powers/manifest.json create mode 100644 testing/talos/talos/talos-powers/schema.json create mode 100644 testing/talos/talos/talos_process.py create mode 100644 testing/talos/talos/talosconfig.py create mode 100644 testing/talos/talos/test.py create mode 100644 testing/talos/talos/tests/a11y/a11y.manifest create mode 100644 testing/talos/talos/tests/a11y/dhtml.html create mode 100644 testing/talos/talos/tests/a11y/tablemutation.html create mode 100644 testing/talos/talos/tests/about-preferences/about_preferences_basic.manifest create mode 100644 testing/talos/talos/tests/ares6/ares6.manifest create mode 100644 testing/talos/talos/tests/cpstartup/cpstartup.html create mode 100644 testing/talos/talos/tests/cpstartup/cpstartup.manifest create mode 100644 testing/talos/talos/tests/cpstartup/extension/api.js create mode 100644 testing/talos/talos/tests/cpstartup/extension/framescript.js create mode 100644 testing/talos/talos/tests/cpstartup/extension/manifest.json create mode 100644 testing/talos/talos/tests/cpstartup/extension/schema.json create mode 100644 testing/talos/talos/tests/cpstartup/target.html create mode 100644 testing/talos/talos/tests/cross_origin_pageload/cross_origin_pageload.manifest create mode 100644 testing/talos/talos/tests/cross_origin_pageload/iframe.html create mode 100644 testing/talos/talos/tests/cross_origin_pageload/index.html create mode 100644 testing/talos/talos/tests/cross_origin_pageload/index2.html create mode 100644 testing/talos/talos/tests/devtools/addon/api.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/.eslintrc.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/actors/DampLoadChild.sys.mjs create mode 100644 testing/talos/talos/tests/devtools/addon/content/actors/DampLoadParent.sys.mjs create mode 100644 testing/talos/talos/tests/devtools/addon/content/damp-tests.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/damp.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/console/bulklog.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/console/iframe.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/console/index.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/README.md create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/iframe.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/index.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/js/testfile.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/static/js/main.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/static/js/main.js.map create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/static/js/minified.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/inspector/iframe.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/inspector/index.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/netmonitor/iframe.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/netmonitor/index.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/netmonitor/script.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/netmonitor/style.css create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/panels-in-background/index.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/panels-in-background/sjs_simple-test-server.sjs create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/styleeditor/iframe.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/styleeditor/index.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/custom/styleeditor/style.css create mode 100644 testing/talos/talos/tests/devtools/addon/content/pages/simple.html create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/accessibility/accessibility-helpers.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/accessibility/cold-open.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/accessibility/simple.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/debugger/cold-open.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/debugger/complicated.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/debugger/custom.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/debugger/debugger-helpers.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/debugger/simple.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/head.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/cold-open.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/complicated.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/custom.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/inspector-helpers.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/layout.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/mutations.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/inspector/simple.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/netmonitor/cold-open.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/netmonitor/complicated.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/netmonitor/custom.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/netmonitor/netmonitor-helpers.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/netmonitor/simple.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/server/actor.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/server/protocol.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/server/spec.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/source-map/angular-min.js.map create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/source-map/source-map-library.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/source-map/source-map-loader.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/styleeditor/complicated.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/styleeditor/custom.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/styleeditor/simple.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/toolbox/browser-toolbox.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/toolbox/panels-in-background.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/toolbox/screenshot.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/autocomplete.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/bulklog.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/cold-open.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/complicated.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/custom.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/log-in-loop-content-process.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/objectexpand.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/openwithcache.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/simple.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/streamlog.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/typing.js create mode 100644 testing/talos/talos/tests/devtools/addon/content/tests/webconsole/webconsole-helpers.js create mode 100644 testing/talos/talos/tests/devtools/addon/damp.html create mode 100644 testing/talos/talos/tests/devtools/addon/driver.js create mode 100644 testing/talos/talos/tests/devtools/addon/manifest.json create mode 100644 testing/talos/talos/tests/devtools/addon/schema.json create mode 100644 testing/talos/talos/tests/devtools/damp.manifest create mode 100644 testing/talos/talos/tests/dromaeo/JSON.php create mode 100644 testing/talos/talos/tests/dromaeo/LICENSE create mode 100644 testing/talos/talos/tests/dromaeo/application.css create mode 100644 testing/talos/talos/tests/dromaeo/css.manifest create mode 100644 testing/talos/talos/tests/dromaeo/cssquery-dojo.html create mode 100644 testing/talos/talos/tests/dromaeo/cssquery-ext.html create mode 100644 testing/talos/talos/tests/dromaeo/cssquery-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/cssquery-mootools.html create mode 100644 testing/talos/talos/tests/dromaeo/cssquery-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/cssquery-yui.html create mode 100644 testing/talos/talos/tests/dromaeo/dom-attr.html create mode 100644 testing/talos/talos/tests/dromaeo/dom-modify.html create mode 100644 testing/talos/talos/tests/dromaeo/dom-query.html create mode 100644 testing/talos/talos/tests/dromaeo/dom-traverse.html create mode 100644 testing/talos/talos/tests/dromaeo/dom.manifest create mode 100644 testing/talos/talos/tests/dromaeo/favicon.ico create mode 100644 testing/talos/talos/tests/dromaeo/favicon.png create mode 100644 testing/talos/talos/tests/dromaeo/htmlrunner.js create mode 100644 testing/talos/talos/tests/dromaeo/ie.css create mode 100644 testing/talos/talos/tests/dromaeo/images/bg.png create mode 100644 testing/talos/talos/tests/dromaeo/images/clouds.png create mode 100644 testing/talos/talos/tests/dromaeo/images/clouds2.png create mode 100644 testing/talos/talos/tests/dromaeo/images/comets.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino1.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino2.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino3.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino4.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino5.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino6.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino7.png create mode 100644 testing/talos/talos/tests/dromaeo/images/dino8.png create mode 100644 testing/talos/talos/tests/dromaeo/images/left.png create mode 100644 testing/talos/talos/tests/dromaeo/images/logo.png create mode 100644 testing/talos/talos/tests/dromaeo/images/logo2.png create mode 100644 testing/talos/talos/tests/dromaeo/images/logo3.png create mode 100644 testing/talos/talos/tests/dromaeo/images/right.png create mode 100644 testing/talos/talos/tests/dromaeo/images/top.png create mode 100644 testing/talos/talos/tests/dromaeo/images/water.png create mode 100644 testing/talos/talos/tests/dromaeo/index.html create mode 100644 testing/talos/talos/tests/dromaeo/jquery.js create mode 100644 testing/talos/talos/tests/dromaeo/json.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/dojo.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/ext-base.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/ext-core.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/jquery.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/mootools.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/prototype.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/yahoo.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/yui-dom.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/yui-event.js create mode 100644 testing/talos/talos/tests/dromaeo/lib/yui-selector.js create mode 100644 testing/talos/talos/tests/dromaeo/pngfix.js create mode 100644 testing/talos/talos/tests/dromaeo/reset.css create mode 100644 testing/talos/talos/tests/dromaeo/store.php create mode 100644 testing/talos/talos/tests/dromaeo/test-head.html create mode 100644 testing/talos/talos/tests/dromaeo/test-head.js create mode 100644 testing/talos/talos/tests/dromaeo/test-tail.html create mode 100644 testing/talos/talos/tests/dromaeo/test-tail.js create mode 100644 testing/talos/talos/tests/dromaeo/tests/MANIFEST.json create mode 100644 testing/talos/talos/tests/dromaeo/tests/cssquery-dojo.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/cssquery-ext.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/cssquery-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/cssquery-mootools.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/cssquery-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/cssquery-yui.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dom-attr.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dom-modify.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dom-query.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dom-traverse.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dromaeo-3d-cube.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dromaeo-core-eval.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dromaeo-object-array.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dromaeo-object-regexp.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dromaeo-object-string.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/dromaeo-string-base64.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-attr-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-attr-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-event-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-event-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-modify-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-modify-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-style-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-style-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-traverse-jquery.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/jslib-traverse-prototype.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-3d-morph.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-3d-raytrace.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-access-binary-trees.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-access-fannkuch.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-access-nbody.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-access-nsieve.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-bitops-3bit-bits-in-byte.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-bitops-bits-in-byte.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-bitops-bitwise-and.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-bitops-nsieve-bits.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-controlflow-recursive.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-crypto-aes.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-crypto-md5.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-crypto-sha1.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-date-format-tofte.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-date-format-xparb.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-math-cordic.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-math-partial-sums.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-math-spectral-norm.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-regexp-dna.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-string-fasta.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-string-tagcloud.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-string-unpack-code.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/sunspider-string-validate-input.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/v8-crypto.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/v8-deltablue.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/v8-earley-boyer.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/v8-raytrace.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/v8-richards.html create mode 100644 testing/talos/talos/tests/dromaeo/tests/w3c_home.png create mode 100644 testing/talos/talos/tests/dromaeo/web-style.css create mode 100644 testing/talos/talos/tests/dromaeo/webrunner.js create mode 100644 testing/talos/talos/tests/gfx/benchmarks/rasterflood_gradient.html create mode 100644 testing/talos/talos/tests/gfx/benchmarks/rasterflood_svg.html create mode 100644 testing/talos/talos/tests/gfx/rasterflood_gradient.manifest create mode 100644 testing/talos/talos/tests/gfx/rasterflood_svg.manifest create mode 100644 testing/talos/talos/tests/jetstream/jetstream.manifest create mode 100644 testing/talos/talos/tests/kraken/driver.html create mode 100644 testing/talos/talos/tests/kraken/kraken.css create mode 100644 testing/talos/talos/tests/kraken/kraken.manifest create mode 100644 testing/talos/talos/tests/kraken/test-contents.js create mode 100644 testing/talos/talos/tests/kraken/test-prefix.js create mode 100644 testing/talos/talos/tests/layout/benchmarks/displaylist_flattened_mutate.html create mode 100644 testing/talos/talos/tests/layout/benchmarks/displaylist_inactive_mutate.html create mode 100644 testing/talos/talos/tests/layout/benchmarks/displaylist_mutate.html create mode 100644 testing/talos/talos/tests/layout/displaylist_mutate.manifest create mode 100644 testing/talos/talos/tests/motionmark/animometer.manifest create mode 100644 testing/talos/talos/tests/motionmark/htmlsuite.manifest create mode 100644 testing/talos/talos/tests/motionmark/webgl.manifest create mode 100644 testing/talos/talos/tests/pdfpaint/bug1722807_page2.pdf create mode 100644 testing/talos/talos/tests/pdfpaint/bug857031_page1.pdf create mode 100644 testing/talos/talos/tests/pdfpaint/pdfpaint.manifest create mode 100644 testing/talos/talos/tests/pdfpaint/tracemonkey.pdf create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/.eslintrc.json create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/README create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/abspos-reflow-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/attr-selector-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/bidi-resolution-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/bloom-basic-2.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/bloom-basic.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/coalesce-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/coalesce-2.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/display-none-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/external-string-pass.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/getElementById-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-2.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-3.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-4.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-5.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-6.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/id-getter-7.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/inline-style-cache-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/line-iterator.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/link-style-cache-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/many-custom-props.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/nth-index-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/nth-index-2.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/only-children-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/parent-basic-singleton.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/perf_reftest_singletons.manifest create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/scrollbar-styles-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/slow-selector-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/slow-selector-2.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/style-attr-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/style-sharing-style-attr.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/style-sharing.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/svg-text-getExtentOfChar-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/svg-text-textLength-1.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/tiny-traversal-singleton.html create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/util.js create mode 100644 testing/talos/talos/tests/perf-reftest-singletons/window-named-property-get.html create mode 100644 testing/talos/talos/tests/perf-reftest/.eslintrc.json create mode 100644 testing/talos/talos/tests/perf-reftest/bidi-resolution-1-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/bidi-resolution-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/bloom-basic-2.html create mode 100644 testing/talos/talos/tests/perf-reftest/bloom-basic-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/bloom-basic.html create mode 100644 testing/talos/talos/tests/perf-reftest/coalesce-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/coalesce-2.html create mode 100644 testing/talos/talos/tests/perf-reftest/coalesce-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/dep-check-1-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/dep-check-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/display-none-1-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/display-none-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/nth-index-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/nth-index-2.html create mode 100644 testing/talos/talos/tests/perf-reftest/nth-index-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/only-children-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/only-children-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/perf_reftest.manifest create mode 100644 testing/talos/talos/tests/perf-reftest/recompute-position-horizontal-tb.html create mode 100644 testing/talos/talos/tests/perf-reftest/recompute-position-vertical-lr.html create mode 100644 testing/talos/talos/tests/perf-reftest/recompute-position-vertical-rl.html create mode 100644 testing/talos/talos/tests/perf-reftest/recompute-position.js create mode 100644 testing/talos/talos/tests/perf-reftest/slow-selector-1-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/slow-selector-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/slow-selector-2-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/slow-selector-2.html create mode 100644 testing/talos/talos/tests/perf-reftest/some-descendants-1-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/some-descendants-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/stop-cascade-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/stop-cascade-2.html create mode 100644 testing/talos/talos/tests/perf-reftest/stop-cascade-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/style-attr-1-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/style-attr-1.html create mode 100644 testing/talos/talos/tests/perf-reftest/style-sharing-ref.html create mode 100644 testing/talos/talos/tests/perf-reftest/style-sharing-style-attr.html create mode 100644 testing/talos/talos/tests/perf-reftest/style-sharing.html create mode 100644 testing/talos/talos/tests/perf-reftest/util.js create mode 100644 testing/talos/talos/tests/quantum_pageload/quantum_pageload_amazon.manifest create mode 100644 testing/talos/talos/tests/quantum_pageload/quantum_pageload_facebook.manifest create mode 100644 testing/talos/talos/tests/quantum_pageload/quantum_pageload_google.manifest create mode 100644 testing/talos/talos/tests/quantum_pageload/quantum_pageload_youtube.manifest create mode 100644 testing/talos/talos/tests/scroll/drac.htm create mode 100644 testing/talos/talos/tests/scroll/iframe.svg create mode 100644 testing/talos/talos/tests/scroll/reader.css create mode 100644 testing/talos/talos/tests/scroll/reader.htm create mode 100644 testing/talos/talos/tests/scroll/scroll.manifest create mode 100644 testing/talos/talos/tests/scroll/strips-single.png create mode 100644 testing/talos/talos/tests/scroll/strips.png create mode 100644 testing/talos/talos/tests/scroll/tiled-downscale.html create mode 100644 testing/talos/talos/tests/scroll/tiled-fixed-downscale.html create mode 100644 testing/talos/talos/tests/scroll/tiled-fixed.html create mode 100644 testing/talos/talos/tests/scroll/tiled.html create mode 100644 testing/talos/talos/tests/speedometer/speedometer.manifest create mode 100644 testing/talos/talos/tests/stylebench/stylebench.manifest create mode 100644 testing/talos/talos/tests/svg_opacity/big-optimizable-group-opacity-2500.svg create mode 100644 testing/talos/talos/tests/svg_opacity/small-group-opacity-2500.svg create mode 100644 testing/talos/talos/tests/svg_opacity/svg_opacity.manifest create mode 100644 testing/talos/talos/tests/svg_static/composite-scale-opacity.svg create mode 100644 testing/talos/talos/tests/svg_static/composite-scale-rotate-opacity.svg create mode 100644 testing/talos/talos/tests/svg_static/composite-scale-rotate.svg create mode 100644 testing/talos/talos/tests/svg_static/composite-scale.svg create mode 100644 testing/talos/talos/tests/svg_static/gearflowers.svg create mode 100644 testing/talos/talos/tests/svg_static/images/kyoto_1.jpg create mode 100644 testing/talos/talos/tests/svg_static/svg_static.manifest create mode 100644 testing/talos/talos/tests/svgx/hixie-001.xml create mode 100644 testing/talos/talos/tests/svgx/hixie-002.xml create mode 100644 testing/talos/talos/tests/svgx/hixie-003.xml create mode 100644 testing/talos/talos/tests/svgx/hixie-004.xml create mode 100644 testing/talos/talos/tests/svgx/hixie-005.xml create mode 100644 testing/talos/talos/tests/svgx/hixie-006.xml create mode 100644 testing/talos/talos/tests/svgx/hixie-007.xml create mode 100644 testing/talos/talos/tests/svgx/images/smallcats.gif create mode 100644 testing/talos/talos/tests/svgx/svgm.manifest create mode 100644 testing/talos/talos/tests/svgx/svgx.manifest create mode 100644 testing/talos/talos/tests/tabpaint/api.js create mode 100644 testing/talos/talos/tests/tabpaint/framescript.js create mode 100644 testing/talos/talos/tests/tabpaint/manifest.json create mode 100644 testing/talos/talos/tests/tabpaint/schema.json create mode 100644 testing/talos/talos/tests/tabpaint/tabpaint.html create mode 100644 testing/talos/talos/tests/tabpaint/tabpaint.manifest create mode 100644 testing/talos/talos/tests/tabpaint/target.html create mode 100644 testing/talos/talos/tests/tabswitch/actors/TalosTabSwitchChild.sys.mjs create mode 100644 testing/talos/talos/tests/tabswitch/actors/TalosTabSwitchParent.sys.mjs create mode 100644 testing/talos/talos/tests/tabswitch/api.js create mode 100644 testing/talos/talos/tests/tabswitch/background.js create mode 100644 testing/talos/talos/tests/tabswitch/content/tabswitch-content-process.js create mode 100644 testing/talos/talos/tests/tabswitch/content/test.html create mode 100644 testing/talos/talos/tests/tabswitch/manifest.json create mode 100644 testing/talos/talos/tests/tabswitch/schema.json create mode 100644 testing/talos/talos/tests/tabswitch/tabswitch.manifest create mode 100644 testing/talos/talos/tests/tart/addon/api.js create mode 100644 testing/talos/talos/tests/tart/addon/chrome/blank.icon.html create mode 100644 testing/talos/talos/tests/tart/addon/chrome/tart.ico create mode 100644 testing/talos/talos/tests/tart/addon/content/Profiler.js create mode 100644 testing/talos/talos/tests/tart/addon/content/framescript.js create mode 100644 testing/talos/talos/tests/tart/addon/content/tab-min-width-1px.css create mode 100644 testing/talos/talos/tests/tart/addon/content/tart.js create mode 100644 testing/talos/talos/tests/tart/addon/manifest.json create mode 100644 testing/talos/talos/tests/tart/addon/schema.json create mode 100644 testing/talos/talos/tests/tart/tart.html create mode 100644 testing/talos/talos/tests/tart/tart.ico create mode 100644 testing/talos/talos/tests/tart/tart.manifest create mode 100644 testing/talos/talos/tests/tp5o.html create mode 100644 testing/talos/talos/tests/tresize/addon/api.js create mode 100644 testing/talos/talos/tests/tresize/addon/chrome/tresize-test.html create mode 100644 testing/talos/talos/tests/tresize/addon/content/Profiler.js create mode 100644 testing/talos/talos/tests/tresize/addon/content/framescript.js create mode 100644 testing/talos/talos/tests/tresize/addon/content/tresize.js create mode 100644 testing/talos/talos/tests/tresize/addon/manifest.json create mode 100644 testing/talos/talos/tests/tresize/addon/schema.json create mode 100644 testing/talos/talos/tests/tresize/tresize-iframe.html create mode 100644 testing/talos/talos/tests/tresize/tresize.manifest create mode 100644 testing/talos/talos/tests/twinopen/api.js create mode 100644 testing/talos/talos/tests/twinopen/driver.js create mode 100644 testing/talos/talos/tests/twinopen/manifest.json create mode 100644 testing/talos/talos/tests/twinopen/schema.json create mode 100644 testing/talos/talos/tests/twinopen/twinopen.html create mode 100644 testing/talos/talos/tests/twinopen/twinopen.manifest create mode 100644 testing/talos/talos/tests/twinopen/twinopen.manifest.develop create mode 100644 testing/talos/talos/tests/v8_7/base.js create mode 100644 testing/talos/talos/tests/v8_7/crypto.js create mode 100644 testing/talos/talos/tests/v8_7/deltablue.js create mode 100644 testing/talos/talos/tests/v8_7/earley-boyer.js create mode 100644 testing/talos/talos/tests/v8_7/navier-stokes.js create mode 100644 testing/talos/talos/tests/v8_7/raytrace.js create mode 100644 testing/talos/talos/tests/v8_7/regexp.js create mode 100644 testing/talos/talos/tests/v8_7/revisions.html create mode 100644 testing/talos/talos/tests/v8_7/richards.js create mode 100644 testing/talos/talos/tests/v8_7/run.html create mode 100644 testing/talos/talos/tests/v8_7/splay.js create mode 100644 testing/talos/talos/tests/v8_7/style.css create mode 100644 testing/talos/talos/tests/v8_7/v8-logo.png create mode 100644 testing/talos/talos/tests/v8_7/v8.manifest create mode 100644 testing/talos/talos/tests/video/clips/testsrc.1080p.60fps.mp4 create mode 100644 testing/talos/talos/tests/video/clips/testsrc.240p.120fps.mp4 create mode 100644 testing/talos/talos/tests/video/clips/testsrc.480p.60fps.webm create mode 100644 testing/talos/talos/tests/video/video.manifest create mode 100644 testing/talos/talos/tests/video/video_playback.html create mode 100644 testing/talos/talos/tests/webgl/benchmarks/terrain/grass.jpeg create mode 100644 testing/talos/talos/tests/webgl/benchmarks/terrain/perftest.html create mode 100644 testing/talos/talos/tests/webgl/benchmarks/video/video_upload.html create mode 100644 testing/talos/talos/tests/webgl/glterrain.manifest create mode 100644 testing/talos/talos/tests/webgl/glvideo.manifest create mode 100644 testing/talos/talos/ttest.py create mode 100644 testing/talos/talos/unittests/__init__.py create mode 100644 testing/talos/talos/unittests/browser_output.ts.txt create mode 100644 testing/talos/talos/unittests/browser_output.tsvg.txt create mode 100644 testing/talos/talos/unittests/conftest.py create mode 100644 testing/talos/talos/unittests/profile.tgz create mode 100644 testing/talos/talos/unittests/ps-Acj.out create mode 100644 testing/talos/talos/unittests/python.ini create mode 100644 testing/talos/talos/unittests/test_cmanager.py create mode 100644 testing/talos/talos/unittests/test_cmanager_base.py create mode 100644 testing/talos/talos/unittests/test_cmanager_linux.py create mode 100644 testing/talos/talos/unittests/test_cmanager_mac.py create mode 100644 testing/talos/talos/unittests/test_cmanger_win32.py create mode 100644 testing/talos/talos/unittests/test_cmdline.py create mode 100644 testing/talos/talos/unittests/test_config.py create mode 100644 testing/talos/talos/unittests/test_gecko_profile.py create mode 100644 testing/talos/talos/unittests/test_mainthreadio.py create mode 100644 testing/talos/talos/unittests/test_output.py create mode 100644 testing/talos/talos/unittests/test_run_tests.py create mode 100644 testing/talos/talos/unittests/test_talos_process.py create mode 100644 testing/talos/talos/unittests/test_talosconfig_browser_config.json create mode 100644 testing/talos/talos/unittests/test_talosconfig_test_config.json create mode 100644 testing/talos/talos/unittests/test_test.py create mode 100644 testing/talos/talos/unittests/test_ttest.py create mode 100644 testing/talos/talos/unittests/test_whitelist.py create mode 100644 testing/talos/talos/unittests/test_xtalos.py create mode 100644 testing/talos/talos/unittests/xrestop_output.txt create mode 100644 testing/talos/talos/utils.py create mode 100644 testing/talos/talos/webextensions/dummy/background.js create mode 100644 testing/talos/talos/webextensions/dummy/content.js create mode 100644 testing/talos/talos/webextensions/dummy/dummy.xpi create mode 100644 testing/talos/talos/webextensions/dummy/icon.png create mode 100644 testing/talos/talos/webextensions/dummy/manifest.json create mode 100644 testing/talos/talos/xtalos/__init__.py create mode 100644 testing/talos/talos/xtalos/etlparser.py create mode 100644 testing/talos/talos/xtalos/parse_xperf.py create mode 100644 testing/talos/talos/xtalos/start_xperf.py create mode 100644 testing/talos/talos/xtalos/xperf_allowlist.json create mode 100644 testing/talos/talos/xtalos/xperf_analyzer.py create mode 100644 testing/talos/talos/xtalos/xtalos.py create mode 100644 testing/talos/talos_from_code.py create mode 100644 testing/talos/tp5n-pageset.manifest create mode 100644 testing/talos/webextensions.manifest (limited to 'testing/talos') diff --git a/testing/talos/.eslintrc.js b/testing/talos/.eslintrc.js new file mode 100644 index 0000000000..8dd0a1c559 --- /dev/null +++ b/testing/talos/.eslintrc.js @@ -0,0 +1,36 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +module.exports = { + globals: { + Cc: false, + Ci: false, + Cu: false, + content: true, + dumpLog: false, + netscape: false, + addMessageListener: false, + goQuitApplication: false, + MozillaFileLogger: false, + Profiler: true, + Services: false, + gBrowser: false, + removeMessageListener: false, + sendAsyncMessage: false, + sendSyncMessage: false, + TalosPowersContent: true, + TalosPowersParent: true, + TalosContentProfiler: true, + TalosParentProfiler: true, + tpRecordTime: true, + }, + + plugins: ["mozilla"], + + rules: { + "mozilla/avoid-Date-timing": "error", + }, +}; diff --git a/testing/talos/INSTALL.py b/testing/talos/INSTALL.py new file mode 100755 index 0000000000..73edfbb7b5 --- /dev/null +++ b/testing/talos/INSTALL.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + + +""" +installation script for talos. This script: +- creates a virtualenv in the current directory +- sets up talos in development mode: `python setup.py develop` +- downloads pageloader and packages to talos/page_load_test/pageloader.xpi +""" +import os +import subprocess +import sys + +import six + +try: + from subprocess import check_call as call +except ImportError: + from subprocess import call + +# globals +here = os.path.dirname(os.path.abspath(__file__)) +VIRTUALENV = "https://raw.github.com/pypa/virtualenv/1.10/virtualenv.py" + + +def which(binary, path=os.environ["PATH"]): + dirs = path.split(os.pathsep) + for dir in dirs: + if os.path.isfile(os.path.join(dir, path)): + return os.path.join(dir, path) + if os.path.isfile(os.path.join(dir, path + ".exe")): + return os.path.join(dir, path + ".exe") + + +def main(args=sys.argv[1:]): + + # sanity check + # ensure setup.py exists + setup_py = os.path.join(here, "setup.py") + assert os.path.exists(setup_py), "setup.py not found" + + # create a virtualenv + virtualenv = which("virtualenv") or which("virtualenv.py") + if virtualenv: + call([virtualenv, "--system-site-packages", here]) + else: + process = subprocess.Popen( + [sys.executable, "-", "--system-site-packages", here], stdin=subprocess.PIPE + ) + stdout, stderr = process.communicate( + input=six.moves.urllib.request.urlopen(VIRTUALENV).read() + ) + + # find the virtualenv's python + for i in ("bin", "Scripts"): + bindir = os.path.join(here, i) + if os.path.exists(bindir): + break + else: + raise AssertionError("virtualenv binary directory not found") + for i in ("python", "python.exe"): + virtualenv_python = os.path.join(bindir, i) + if os.path.exists(virtualenv_python): + break + else: + raise AssertionError("virtualenv python not found") + + # install talos into the virtualenv + call([os.path.abspath(virtualenv_python), "setup.py", "develop"], cwd=here) + + +if __name__ == "__main__": + main() diff --git a/testing/talos/MANIFEST.in b/testing/talos/MANIFEST.in new file mode 100644 index 0000000000..65bf9086cd --- /dev/null +++ b/testing/talos/MANIFEST.in @@ -0,0 +1 @@ +recursive-include talos * diff --git a/testing/talos/README b/testing/talos/README new file mode 100644 index 0000000000..c52473eeec --- /dev/null +++ b/testing/talos/README @@ -0,0 +1,12 @@ +Talos is a python performance testing framework that is usable on Windows, +Mac and Linux. Talos is our versatile performance testing framework we +use at Mozilla. It was created to serve as a test runner for the existing +performance tests that Mozilla was running back in 2007 as well as providing +an extensible framework for new tests as they were created. + +So, why Talos? Talos is the bronze automaton of Greek myth. Talos protected +the island of Crete, throwing giant boulders at unwary seamen. He's +also purported to have heated himself glowing hot and then embraced his +enemies. Basically, he was awesome. + +For more information, see: https://wiki.mozilla.org/Buildbot/Talos diff --git a/testing/talos/jetstream-benchmark.manifest b/testing/talos/jetstream-benchmark.manifest new file mode 100644 index 0000000000..b7ef28f32e --- /dev/null +++ b/testing/talos/jetstream-benchmark.manifest @@ -0,0 +1,9 @@ +[ + { + "size": 10025531, + "visibility": "public", + "digest": "4ff745d55505720b4b5929476527ac0f9fd75a98151030699d3dec84cb11f24d2ab18f24c98ed063912e709c5126424fa7921080da3daaee31cf50eae5c9591a", + "algorithm": "sha512", + "filename": "jetstream.zip" + } +] \ No newline at end of file diff --git a/testing/talos/mach_commands.py b/testing/talos/mach_commands.py new file mode 100644 index 0000000000..c685219422 --- /dev/null +++ b/testing/talos/mach_commands.py @@ -0,0 +1,133 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Integrates Talos mozharness with mach + +import json +import logging +import os +import socket +import sys + +import six +from mach.decorators import Command +from mozbuild.base import BinaryNotFoundException, MozbuildObject + +HERE = os.path.dirname(os.path.realpath(__file__)) + + +class TalosRunner(MozbuildObject): + def run_test(self, talos_args): + """ + We want to do couple of things before running Talos + 1. Clone mozharness + 2. Make config for Talos Mozharness + 3. Run mozharness + """ + + try: + self.init_variables(talos_args) + except BinaryNotFoundException as e: + self.log(logging.ERROR, "talos", {"error": str(e)}, "ERROR: {error}") + self.log(logging.INFO, "raptor", {"help": e.help()}, "{help}") + return 1 + + self.make_config() + self.write_config() + self.make_args() + return self.run_mozharness() + + def init_variables(self, talos_args): + self.talos_dir = os.path.join(self.topsrcdir, "testing", "talos") + self.mozharness_dir = os.path.join(self.topsrcdir, "testing", "mozharness") + self.talos_json = os.path.join(self.talos_dir, "talos.json") + self.config_file_path = os.path.join( + self._topobjdir, "testing", "talos-in_tree_conf.json" + ) + self.binary_path = self.get_binary_path() + self.virtualenv_script = os.path.join( + self.topsrcdir, "third_party", "python", "virtualenv", "virtualenv.py" + ) + self.virtualenv_path = os.path.join(self._topobjdir, "testing", "talos-venv") + self.python_interp = sys.executable + self.talos_args = talos_args + + def make_config(self): + default_actions = ["populate-webroot"] + default_actions.extend( + [ + "create-virtualenv", + "run-tests", + ] + ) + self.config = { + "run_local": True, + "talos_json": self.talos_json, + "binary_path": self.binary_path, + "repo_path": self.topsrcdir, + "obj_path": self.topobjdir, + "log_name": "talos", + "virtualenv_path": self.virtualenv_path, + "pypi_url": "http://pypi.python.org/simple", + "base_work_dir": self.mozharness_dir, + "exes": { + "python": self.python_interp, + "virtualenv": [self.python_interp, self.virtualenv_script], + }, + "title": socket.gethostname(), + "default_actions": default_actions, + "talos_extra_options": ["--develop"] + self.talos_args, + "python3_manifest": { + "win32": "python3.manifest", + "win64": "python3_x64.manifest", + }, + } + + def make_args(self): + self.args = { + "config": {}, + "initial_config_file": self.config_file_path, + } + + def write_config(self): + try: + config_file = open(self.config_file_path, "wb") + config_file.write(six.ensure_binary(json.dumps(self.config))) + except IOError as e: + err_str = "Error writing to Talos Mozharness config file {0}:{1}" + print(err_str.format(self.config_file_path, str(e))) + raise e + + def run_mozharness(self): + sys.path.insert(0, self.mozharness_dir) + from mozharness.mozilla.testing.talos import Talos + + talos_mh = Talos( + config=self.args["config"], + initial_config_file=self.args["initial_config_file"], + ) + return talos_mh.run() + + +def create_parser(): + sys.path.insert(0, HERE) # allow to import the talos package + from talos.cmdline import create_parser + + return create_parser(mach_interface=True) + + +@Command( + "talos-test", + category="testing", + description="Run talos tests (performance testing).", + parser=create_parser, +) +def run_talos_test(command_context, **kwargs): + talos = command_context._spawn(TalosRunner) + + try: + return talos.run_test(sys.argv[2:]) + except Exception as e: + print(str(e)) + return 1 diff --git a/testing/talos/moz.build b/testing/talos/moz.build new file mode 100644 index 0000000000..4e1a1699b2 --- /dev/null +++ b/testing/talos/moz.build @@ -0,0 +1,51 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +with Files("**"): + BUG_COMPONENT = ("Testing", "Talos") + SCHEDULES.exclusive = ["talos"] + +with Files("talos/startup_test/sessionrestore/**"): + BUG_COMPONENT = ("Firefox", "Session Restore") + +with Files("talos/tests/tresize/**"): + BUG_COMPONENT = ("Core", "XUL") + +with Files("talos/tests/a11y/**"): + BUG_COMPONENT = ("Core", "Disability Access APIs") + +with Files("talos/tests/cpstartup/**"): + BUG_COMPONENT = ("Firefox", "Tabbed Browser") + +with Files("talos/tests/dromaeo/**"): + BUG_COMPONENT = ("Core", "DOM: Core & HTML") + +with Files("talos/tests/kraken/**"): + BUG_COMPONENT = ("Core", "JavaScript Engine") + +with Files("talos/tests/scroll/**"): + BUG_COMPONENT = ("Core", "Graphics") + +with Files("talos/tests/svg*"): + BUG_COMPONENT = ("Core", "SVG") + +with Files("talos/tests/tabpaint/**"): + BUG_COMPONENT = ("Firefox", "Tabbed Browser") + +with Files("talos/tests/tabswitch/**"): + BUG_COMPONENT = ("Firefox", "Tabbed Browser") + +with Files("talos/tests/tart/**"): + BUG_COMPONENT = ("Firefox", "Tabbed Browser") + +with Files("talos/tests/v8_7/**"): + BUG_COMPONENT = ("Core", "JavaScript Engine") + +with Files("talos/tests/video/**"): + BUG_COMPONENT = ("Core", "Audio/Video: Playback") + +with Files("talos/tests/webgl/**"): + BUG_COMPONENT = ("Core", "Graphics: CanvasWebGL") diff --git a/testing/talos/perfdocs/config.yml b/testing/talos/perfdocs/config.yml new file mode 100644 index 0000000000..41b81849b4 --- /dev/null +++ b/testing/talos/perfdocs/config.yml @@ -0,0 +1,1051 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +name: talos +manifest: None +static-only: False +suites: + Talos Tests: + description: "For the sample commands found below, note that the capitalization used is important. Without the exact spelling, the test won't be found when running locally." + tests: + ARES6: > + - contact: :jandem and SpiderMonkey Team + - source: `ARES-6 `__ + - type: `Page load`_ + - data: 6 cycles of the entire benchmark + * `geometric mean `__ self reported from the benchmark + - **Lower is better** + - unit: geometric mean / benchmark score + JetStream: > + - contact: :jandem and SpiderMonkey Team + - source: `jetstream.manifest `__ and jetstream.zip from tooltool + - type: `Page load`_ + - measuring: JavaScript performance + - reporting: geometric mean from the benchmark + - data: internal benchmark + * suite: `geometric + mean `__ + provided by the benchmark + - description: + | This is the `JetStream `__ + javascript benchmark taken verbatim and slightly modified to fit into + our pageloader extension and talos harness. + a11yr: > + - contact: :jamie and accessibility team + - source: `a11y.manifest `__ + - type: `Page load`_ + - measuring: ??? + - data: we load 2 pages 25 times each, collect 2 sets of 25 data points + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24; `source: + test.py `__ + * suite: `geometric mean`_ of the 2 subtest results. + - reporting: test time in ms (lower is better) + - description: + | This test ensures basic a11y tables and permutations do not cause performance regressions. + - **Example Data** + * 0;dhtml.html;1584;1637;1643;1665;1741;1529;1647;1645;1692;1647;1542;1750;1654;1649;1541;1656;1674;1645;1645;1740;1558;1652;1654;1656;1654 | + * 1;tablemutation.html;398;385;389;391;387;387;385;387;388;385;384;31746;386;387;384;387;389;387;387;387;388;391;386;387;388 | + about_preferences_basic: > + - contact: :jaws and :gijs + - source: `about_preferences_basic.manifest `__ + - type: `Page load`_ + - measuring: first-non-blank-paint + - data: We load 5 urls 1 time each, and repeat for 25 cycles; collecting 25 sets of 5 data points + - summarization: + * subtest: `ignore first`_ five data points, then take the `median`_ of the rest; `source: test.py `__ + * suite: `geometric mean`_ of the the subtest results. + - reporting: test time in ms (lower is better) + - description: + | This test measures the performance of the Firefox about:preferences + page. This test is a little different than other pageload tests in that + we are loading one page (about:preferences) but also testing the loading + of that same page's subcategories/panels (i.e. about:preferences#home). + + When simply changing the page's panel/category, that doesn't cause a new + onload event as expected; therefore we had to introduce loading the + 'about:blank' page in between each page category; that forces the entire + page to reload with the specified category panel activated. + + For that reason, when new panels/categories are added to the + 'about:preferences' page, it can be expected that a performance + regression may be introduced, even if a subtest hasn't been added for + that new page category yet. + + This test should only ever have 1 pagecycle consisting of the main + about-preferences page and each category separated by an about:blank + between. Then repeats are achieved by using 25 cycles (instead of + pagecycles). + - **Example Data** + * 0;preferences;346;141;143;150;136;143;153;140;154;156;143;154;146;147;151;166;140;146;140;144;144;156;154;150;140 + * 2;preferences#search;164;142;133;141;141;141;142;140;131;146;131;140;131;131;139;142;140;144;146;143;143;142;142;137;143 + * 3;preferences#privacy;179;159;166;177;173;153;148;154;168;155;164;155;152;157;149;155;156;186;149;156;160;151;158;168;157 + * 4;preferences#sync;148;156;140;137;159;139;143;145;138;130;145;142;141;133;146;141;147;143;146;146;139;144;142;151;156 + * 5;preferences#home;141;111;130;131;138;128;133;122;138;138;131;139;139;132;133;141;143;139;138;135;136;128;134;140;135 + basic_compositor_video: > + - contact: :b0bh00d, :jeffm, and gfx + - source: `video `__ + - type: `Page load`_ + - data: 12 cycles of the entire benchmark, each subtest will have 12 data points (see below) + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 11; `source: test.py `__ + * suite: `geometric mean`_ of the 24 subtest results. + - **Lower is better** + - **Example Data** + * ;0;240p.120fps.mp4_scale_fullscreen_startup;11.112;11.071;11.196;11.157;11.195;11.240;11.196;11.155;11.237;11.074;11.154;11.282 + * ;1;240p.120fps.mp4_scale_fullscreen_inclip;10.995;11.114;11.052;10.991;10.876;11.115;10.995;10.991;10.997;10.994;10.992;10.993 + * ;2;240p.120fps.mp4_scale_1_startup;1.686;1.690;1.694;1.683;1.689;1.692;1.686;1.692;1.689;1.704;1.684;1.686 + * ;3;240p.120fps.mp4_scale_1_inclip;1.666;1.666;1.666;1.668;1.667;1.669;1.667;1.668;1.668;1.667;1.667;1.669 + * ;4;240p.120fps.mp4_scale_1.1_startup;1.677;1.672;1.673;1.677;1.673;1.677;1.672;1.677;1.677;1.671;1.676;1.679 + * ;5;240p.120fps.mp4_scale_1.1_inclip;1.667;1.668;1.666;1.667;1.667;1.668;1.667;1.667;1.667;1.667;1.668;1.668 + * ;6;240p.120fps.mp4_scale_2_startup;1.927;1.908;1.947;1.946;1.902;1.932;1.916;1.936;1.921;1.896;1.908;1.894 + * ;7;240p.120fps.mp4_scale_2_inclip;1.911;1.901;1.896;1.917;1.897;1.921;1.907;1.944;1.904;1.912;1.936;1.913 + * ;8;480p.60fps.webm_scale_fullscreen_startup;11.675;11.587;11.539;11.454;11.723;11.410;11.629;11.410;11.454;11.498;11.540;11.540 + * ;9;480p.60fps.webm_scale_fullscreen_inclip;11.304;11.238;11.370;11.300;11.364;11.368;11.237;11.238;11.434;11.238;11.304;11.368 + * ;10;480p.60fps.webm_scale_1_startup;3.386;3.360;3.391;3.376;3.387;3.402;3.371;3.371;3.356;3.383;3.376;3.356 + * ;11;480p.60fps.webm_scale_1_inclip;3.334;3.334;3.329;3.334;3.334;3.334;3.334;3.334;3.334;3.335;3.334;3.334 + * ;12;480p.60fps.webm_scale_1.1_startup;3.363;3.363;3.368;3.356;3.356;3.379;3.364;3.360;3.360;3.356;3.363;3.356 + * ;13;480p.60fps.webm_scale_1.1_inclip;3.329;3.334;3.329;3.334;3.333;3.334;3.334;3.334;3.340;3.335;3.329;3.335 + * ;14;480p.60fps.webm_scale_2_startup;4.960;4.880;4.847;4.959;4.802;4.863;4.824;4.926;4.847;4.785;4.870;4.855 + * ;15;480p.60fps.webm_scale_2_inclip;4.903;4.786;4.892;4.903;4.822;4.832;4.798;4.857;4.808;4.856;4.926;4.741 + * ;16;1080p.60fps.mp4_scale_fullscreen_startup;14.638;14.495;14.496;14.710;14.781;14.853;14.639;14.637;14.707;14.637;14.711;14.636 + * ;17;1080p.60fps.mp4_scale_fullscreen_inclip;13.795;13.798;13.893;13.702;13.799;13.607;13.798;13.705;13.896;13.896;13.896;14.088 + * ;18;1080p.60fps.mp4_scale_1_startup;6.995;6.851;6.930;6.820;6.915;6.805;6.898;6.866;6.852;6.850;6.803;6.851 + * ;19;1080p.60fps.mp4_scale_1_inclip;6.560;6.625;6.713;6.601;6.645;6.496;6.624;6.538;6.539;6.497;6.580;6.558 + * ;20;1080p.60fps.mp4_scale_1.1_startup;7.354;7.230;7.195;7.300;7.266;7.283;7.196;7.249;7.230;7.230;7.212;7.264 + * ;21;1080p.60fps.mp4_scale_1.1_inclip;6.969;7.222;7.018;6.993;7.045;6.970;6.970;6.807;7.118;6.969;6.997;6.972 + * ;22;1080p.60fps.mp4_scale_2_startup;6.963;6.947;6.914;6.929;6.979;7.010;7.010245327102808;6.914;6.961;7.028;7.012;6.914 + * ;23;1080p.60fps.mp4_scale_2_inclip;6.757;6.694;6.672;6.669;6.737;6.831;6.716;6.715;6.832;6.670;6.672;6.759 + cpstartup: > + - contact: :mconley, Firefox Desktop Front-end team, Gijs, fqueze, and dthayer + - measuring: Time from opening a new tab (which creates a new content process) to having that new content process be ready to load URLs. + - source: `cpstartup `__ + - type: `Page load`_ + - bug: `bug 1336389 `__ + - data: 20 cycles of the entire benchmark + - **Lower is better** + - **Example Data** + * 0;content-process-startup;877;737;687;688;802;697;794;685;694;688;794;669;699;684;690;849;687;873;694;689 + cross_origin_pageload: > + - contact: :sefeng, :jesup, and perf eng team + - measuring: The time it takes to load a page which has 20 cross origin iframes + - source: `cross_origin_pageload `__ + - type: `Page load`_ + - bug: `bug 1701989 `__ + - data: 10 cycles of the entire benchmark + - **Lower is better** + - **Example Data** + * 0;/index.html;194.42;154.12;141.38;145.88;136.92;147.64;152.54;138.02;145.5;143.62 + damp: > + - contact: :ochameau and devtools team + - source: `damp `__ + - type: `Page load`_ + - measuring: Developer Tools toolbox performance. Split in test suites covering different DevTools areas (inspector, webconsole, other). + - reporting: intervals in ms (lower is better) - see below for details + - data: there are 36 reported subtests from DAMP which we load 25 times, resulting in 36 sets of 25 data points. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24 data points; `source: test.py `__ + * suite: No value for the suite, only individual subtests are relevant. + - description: + | To run this locally, you'll need to pull down the `tp5 page + set <#page-sets>`__ and run it in a local web server. See the `tp5 + section <#tp5>`__. + - **Example Data** + * 0;simple.webconsole.open.DAMP;1198.86;354.38;314.44;337.32;344.73;339.05;345.55;358.37;314.89;353.73;324.02;339.45;304.63;335.50;316.69;341.05;353.45;353.73;342.28;344.63;357.62;375.18;326.08;363.10;357.30 + * 1;simple.webconsole.reload.DAMP;44.60;41.21;25.62;29.85;38.10;42.29;38.25;40.14;26.95;39.24;40.32;34.67;34.64;44.88;32.51;42.09;28.04;43.05;40.62;36.56;42.44;44.11;38.69;29.10;42.00 + * 2;simple.webconsole.close.DAMP;27.26;26.97;25.45;27.82;25.98;26.05;38.00;26.89;24.90;26.61;24.90;27.22;26.95;25.18;24.24;25.60;28.91;26.90;25.57;26.04;26.79;27.33;25.76;26.47;27.43 + * 3;simple.inspector.open.DAMP;507.80;442.03;424.93;444.62;412.94;451.18;441.39;435.83;441.27;460.69;440.93;413.13;418.73;443.41;413.93;447.34;434.69;459.24;453.60;412.58;445.41;466.34;441.89;417.59;428.82 + * 4;simple.inspector.reload.DAMP;169.45;165.11;163.93;181.12;167.86;164.67;170.34;173.12;165.24;180.59;176.72;187.42;170.14;190.35;176.59;155.00;151.66;174.40;169.46;163.85;190.93;217.00;186.25;181.31;161.13 + * 5;simple.inspector.close.DAMP;44.40;42.28;42.71;47.21;41.74;41.24;42.94;43.73;48.24;43.04;48.61;42.49;45.93;41.36;43.83;42.43;41.81;43.93;41.38;40.98;49.76;50.86;43.49;48.99;44.02 + * 6;simple.jsdebugger.open.DAMP;642.59;464.02;540.62;445.46;471.09;466.57;466.70;511.91;424.12;480.70;448.37;477.51;488.99;437.97;442.32;459.03;421.54;467.99;472.78;440.27;431.47;454.76;436.86;453.61;485.59 + * 7;simple.jsdebugger.reload.DAMP;51.65;55.46;225.46;53.32;58.78;53.23;54.39;51.59;55.46;48.03;50.70;46.34;230.94;53.71;54.23;53.01;61.03;51.23;51.45;293.01;56.93;51.44;59.85;63.35;57.44 + * 8;simple.jsdebugger.close.DAMP;29.12;30.76;40.34;32.09;31.26;32.30;33.95;31.89;29.68;31.39;32.09;30.36;44.63;32.33;30.16;32.43;30.89;30.85;31.99;49.86;30.94;44.63;32.54;29.79;33.15 + * 9;simple.styleeditor.open.DAMP;758.54;896.93;821.17;1026.24;887.14;867.39;927.86;962.80;740.40;919.39;741.01;925.21;807.39;1051.47;729.04;1095.78;755.03;888.70;900.52;810.30;1090.09;869.72;737.44;893.16;927.72 + * 10;simple.styleeditor.reload.DAMP;57.32;178.13;59.23;60.82;71.45;78.86;74.35;60.11;66.43;77.41;61.96;69.22;65.97;45.53;67.88;74.76;124.61;60.01;36.66;59.24;65.01;165.68;34.61;69.02;71.42 + * 11;simple.styleeditor.close.DAMP;28.28;56.50;36.18;30.00;36.32;34.85;35.33;36.24;25.45;36.72;26.53;36.90;28.88;30.94;26.56;31.34;47.79;30.90;30.52;27.95;30.75;56.28;26.76;30.25;37.42 + * 12;simple.performance.open.DAMP;444.28;357.87;331.17;335.16;585.71;402.99;504.58;466.95;272.98;427.54;345.60;441.53;319.99;327.91;312.94;349.79;399.51;465.60;418.42;295.14;362.06;363.11;445.71;634.96;500.83 + * 13;simple.performance.reload.DAMP;38.07;33.44;35.99;70.57;64.04;106.47;148.31;29.60;68.47;28.95;148.46;75.92;32.15;93.72;36.17;44.13;75.11;154.76;98.28;75.16;29.39;36.68;113.16;64.05;135.60 + * 14;simple.performance.close.DAMP;23.98;25.49;24.19;24.61;27.56;40.33;33.85;25.13;22.62;25.28;41.84;25.09;26.39;25.20;23.76;25.44;25.92;30.40;40.77;25.41;24.57;26.15;43.65;28.54;30.16 + * 15;simple.netmonitor.open.DAMP;438.85;350.64;318.04;329.12;341.91;352.33;344.05;334.15;514.57;327.95;471.50;334.55;344.94;364.39;727.56;374.48;339.45;344.31;345.61;329.78;325.74;334.74;350.36;342.85;344.64 + * 16;simple.netmonitor.reload.DAMP;59.68;47.50;69.37;61.18;76.89;83.22;68.11;81.24;56.15;68.20;32.41;81.22;81.62;44.30;39.52;29.60;86.07;71.18;76.32;79.93;79.63;82.15;83.58;87.04;82.97 + * 17;simple.netmonitor.close.DAMP;38.42;39.32;52.56;43.37;48.08;40.62;51.12;41.11;59.54;43.29;41.72;40.85;51.61;49.61;51.39;44.91;40.36;41.10;45.43;42.15;42.63;40.69;41.21;44.04;41.95 + * 18;complicated.webconsole.open.DAMP;589.97;505.93;480.71;530.93;460.60;479.63;485.33;489.08;605.28;457.12;463.95;493.28;680.05;478.72;504.47;578.69;488.66;485.34;504.94;460.67;548.38;474.98;470.33;471.34;464.58 + * 19;complicated.webconsole.reload.DAMP;2707.20;2700.17;2596.02;2728.09;2905.51;2716.65;2657.68;2707.74;2567.86;2726.36;2650.92;2839.14;2620.34;2718.36;2595.22;2686.28;2703.48;2609.75;2686.41;2577.93;2634.47;2745.56;2655.89;2540.09;2649.18 + * 20;complicated.webconsole.close.DAMP;623.56;570.80;636.63;502.49;565.83;537.93;525.46;565.78;532.90;562.66;525.42;490.88;611.99;486.45;528.60;505.35;480.55;500.75;532.75;480.91;488.69;548.77;535.31;477.92;519.84 + * 21;complicated.inspector.open.DAMP;1233.26;753.57;742.74;953.11;653.29;692.66;653.75;767.02;840.68;707.56;713.95;685.79;690.21;1020.47;685.67;721.69;1063.72;695.55;702.15;760.91;853.14;660.12;729.16;1044.86;724.34 + * 22;complicated.inspector.reload.DAMP;2384.90;2436.35;2356.11;2436.58;2372.96;2558.86;2543.76;2351.03;2411.95;2358.04;2413.27;2339.85;2373.11;2338.94;2418.88;2360.87;2349.09;2498.96;2577.73;2445.07;2354.88;2424.90;2696.10;2362.39;2493.29 + * 23;complicated.inspector.close.DAMP;541.96;509.38;476.91;456.48;545.48;634.04;603.10;488.09;599.20;480.45;617.93;420.39;514.92;439.99;727.41;469.04;458.59;539.74;611.55;725.03;473.36;484.60;481.46;458.93;554.76 + * 24;complicated.jsdebugger.open.DAMP;644.97;578.41;542.23;595.94;704.80;603.08;689.18;552.99;597.23;584.17;682.14;758.16;791.71;738.43;640.30;809.26;704.85;601.32;696.10;683.44;796.34;657.25;631.89;739.96;641.82 + * 25;complicated.jsdebugger.reload.DAMP;2676.82;2650.84;2687.78;2401.23;3421.32;2450.91;2464.13;2286.40;2399.40;2415.97;2481.48;2827.69;2652.03;2554.63;2631.36;2443.83;2564.73;2466.22;2597.57;2552.73;2539.42;2481.21;2319.50;2539.00;2576.43 + * 26;complicated.jsdebugger.close.DAMP;795.68;616.48;598.88;536.77;435.02;635.61;558.67;841.64;613.48;886.60;581.38;580.96;571.40;605.34;671.00;882.02;619.01;579.63;643.05;656.78;699.64;928.99;549.76;560.96;676.32 + * 27;complicated.styleeditor.open.DAMP;2327.30;2494.19;2190.29;2205.60;2198.11;2509.01;2189.79;2532.05;2178.03;2207.75;2224.96;2665.84;2294.40;2645.44;2661.41;2364.60;2395.36;2582.72;2872.03;2679.29;2561.24;2330.11;2580.16;2510.36;2860.83 + * 28;complicated.styleeditor.reload.DAMP;2218.46;2335.18;2284.20;2345.05;2286.98;2453.47;2506.97;2661.19;2529.51;2289.78;2564.15;2608.24;2270.77;2362.17;2287.31;2300.19;2331.56;2300.86;2239.27;2231.33;2476.14;2286.28;2583.24;2540.29;2259.67 + * 29;complicated.styleeditor.close.DAMP;302.67;343.10;313.15;305.60;317.92;328.44;350.70;370.12;339.77;308.72;312.71;320.63;305.52;316.69;324.92;306.60;313.65;312.17;326.26;321.45;334.56;307.38;312.95;350.94;339.36 + * 30;complicated.performance.open.DAMP;477.99;537.96;564.85;515.05;502.03;515.58;492.80;689.06;448.76;588.91;509.76;485.39;548.17;479.14;638.67;535.86;541.61;611.52;554.72;665.37;694.04;470.60;746.16;547.85;700.02 + * 31;complicated.performance.reload.DAMP;2258.31;2345.74;2509.24;2579.71;2367.94;2365.94;2260.86;2324.23;2579.01;2412.63;2540.38;2069.80;2534.91;2443.48;2193.01;2442.99;2422.42;2475.35;2076.48;2092.95;2444.53;2353.86;2154.28;2354.61;2104.82 + * 32;complicated.performance.close.DAMP;334.44;516.66;432.49;341.29;309.30;365.20;332.16;311.42;370.81;301.81;381.13;299.39;317.60;314.10;372.44;314.76;306.24;349.85;382.08;352.53;309.40;298.44;314.10;315.44;405.22 + * 33;complicated.netmonitor.open.DAMP;469.70;597.87;468.36;823.09;696.39;477.19;487.78;495.92;587.89;471.48;555.02;507.45;883.33;522.15;756.86;713.64;593.82;715.13;477.15;717.85;586.79;556.97;631.43;629.55;581.16 + * 34;complicated.netmonitor.reload.DAMP;4033.55;3577.36;3655.61;3721.24;3874.29;3977.92;3778.62;3825.60;3984.65;3707.91;3985.24;3565.21;3702.40;3956.70;3627.14;3916.11;3929.11;3934.06;3590.60;3628.39;3618.84;3579.52;3953.04;3781.01;3682.69 + * 35;complicated.netmonitor.close.DAMP;1042.98;920.21;928.19;940.38;950.25;1043.61;1078.16;1077.38;1132.91;1095.05;1176.31;1256.83;1143.14;1234.61;1248.97;1242.29;1378.63;1312.74;1371.48;1373.15;1544.55;1422.51;1549.48;1616.55;1506.58 + displaylist_mutate: > + - contact: :miko and gfx + - source: `displaylist_mutate.html `__ + - type: `Page load`_ + - data: we load the displaylist_mutate.html page five times, measuring pageload each time, generating 5 data points. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source: test.py `__ + - description: + | This measures the amount of time it takes to render a page after + changing its display list. The page has a large number of display list + items (10,000), and mutates one every frame. The goal of the test is to + make displaylist construction a bottleneck, rather than painting or + other factors, and thus improvements or regressions to displaylist + construction will be visible. The test runs in ASAP mode to maximize + framerate, and the result is how quickly the test was able to mutate and + re-paint 600 items, one during each frame. + dromaeo: > + - description: + | Dromaeo suite of tests for JavaScript performance testing. See the + `Dromaeo wiki `__ for more + information. + + This suite is divided into several sub-suites. + + Each sub-suite is divided into tests, and each test is divided into + sub-tests. Each sub-test takes some (in theory) fixed piece of work and + measures how many times that piece of work can be performed in one + second. The score for a test is then the geometric mean of the + runs/second numbers for its sub-tests. The score for a sub-suite is the + geometric mean of the scores for its tests. + dromaeo_css: > + - contact: :emilio, and css/layout team + - source: `css.manifest `__ + - type: `Page load`_ + - reporting: speed in test runs per second (higher is better) + - data: Dromaeo has 6 subtests which run internal benchmarks, each benchmark reports about 180 raw data points each + - summarization: + * subtest: + Dromaeo is a custom benchmark which has a lot of micro tests + inside each subtest, because of this we use a custom `dromaeo + filter `__ + to summarize the subtest. Each micro test produces 5 data points and + for each 5 data points we take the mean, leaving 36 data points to + represent the subtest (assuming 180 points). These 36 micro test + means, are then run through a geometric_mean to produce a single + number for the dromaeo subtest. `source: + filter.py `__ + * suite: `geometric mean`_ of the 6 subtest results. + - description: + | Each page in the manifest is part of the dromaeo css benchmark. Each + page measures the performance of searching the DOM for nodes matching + various CSS selectors, using different libraries for the selector + implementation (jQuery, Dojo, Mootools, ExtJS, Prototype, and Yahoo UI). + - **Example Data** + * 0;dojo.html;2209.83;2269.68;2275.47;2278.83;2279.81;4224.43;4344.96;4346.74;4428.69;4459.82;4392.80;4396.38;4412.54;4414.34;4415.62;3909.94;4027.96;4069.08;4099.63;4099.94;4017.70;4018.96;4054.25;4068.74;4081.31;3825.10;3984.20;4053.23;4074.59;4106.63;3893.88;3971.80;4031.15;4046.68;4048.31;3978.24;4010.16;4046.66;4051.68;4056.37;4189.50;4287.98;4390.98;4449.89;4450.20;4536.23;4557.82;4588.40;4662.58;4664.42;4675.51;4693.13;4743.72;4758.12;4764.67;4138.00;4251.60;4346.22;4410.12;4417.23;4677.53;4702.48;4714.62;4802.59;4805.33;4445.07;4539.91;4598.93;4605.45;4618.79;4434.40;4543.09;4618.56;4683.98;4689.51;4485.26;4496.75;4511.23;4600.86;4602.08;4567.52;4608.33;4615.56;4619.31;4622.79;3469.44;3544.11;3605.80;3647.74;3658.56;3101.88;3126.41;3147.73;3159.92;3170.73;3672.28;3686.40;3730.74;3748.89;3753.59;4411.71;4521.50;4633.98;4702.72;4708.76;3626.62;3646.71;3713.07;3713.13;3718.91;3846.17;3846.25;3913.61;3914.63;3916.22;3982.88;4112.98;4132.26;4194.92;4201.54;4472.64;4575.22;4644.74;4645.42;4665.51;4120.13;4142.88;4171.29;4208.43;4211.03;4405.36;4517.89;4537.50;4637.77;4644.28;4548.25;4581.20;4614.54;4658.42;4671.09;4452.78;4460.09;4494.06;4521.30;4522.37;4252.81;4350.72;4364.93;4441.40;4492.78;4251.34;4346.70;4355.00;4358.89;4365.72;4494.64;4511.03;4582.11;4591.79;4592.36;4207.54;4308.94;4309.14;4406.71;4474.46 + * 1;ext.html;479.65;486.21;489.61;492.94;495.81;24454.14;33580.33;34089.15;34182.83;34186.15;34690.83;35050.30;35051.30;35071.65;35099.82;5758.22;5872.32;6389.62;6525.38;6555.57;8303.96;8532.96;8540.91;8544.00;8571.49;8360.79;8408.79;8432.96;8447.28;8447.83;5817.71;5932.67;8371.83;8389.20;8643.44;7983.80;8073.27;8073.84;8076.48;8078.15;24596.00;32518.84;32787.34;32830.51;32861.00;2220.87;2853.84;3333.53;3345.17;3445.47;24785.75;24971.75;25044.25;25707.61;25799.00;2464.69;2481.89;2527.57;2534.65;2534.92;217793.00;219347.90;219495.00;220059.00;297168.00;40556.19;53062.47;54275.73;54276.00;54440.37;50636.75;50833.49;50983.49;51028.49;51032.74;10746.36;10972.45;11450.37;11692.18;11797.76;8402.58;8415.79;8418.66;8426.75;8428.16;16768.75;16896.00;16925.24;16945.58;17018.15;7047.68;7263.13;7313.16;7337.38;7383.22;713.88;723.72;751.47;861.35;931.00;25454.36;25644.90;25801.87;25992.61;25995.00;819.89;851.23;852.00;886.59;909.89;14325.79;15064.92;15240.39;15431.23;15510.61;452382.00;458194.00;458707.00;459226.00;459601.00;45699.54;46244.54;46270.54;46271.54;46319.00;1073.94;1080.66;1083.35;1085.84;1087.74;26622.33;27807.58;27856.72;28040.58;28217.86;37229.81;37683.81;37710.81;37746.62;37749.81;220386.00;222903.00;240808.00;247394.00;247578.00;25567.00;25568.49;25610.74;25650.74;25710.23;26466.21;28718.71;36175.64;36529.27;36556.00;26676.00;30757.69;31965.84;34521.83;34622.65;32791.18;32884.00;33194.83;33720.16;34192.66;32150.36;32520.02;32851.18;32947.18;33128.01;29472.85;30214.09;30708.54;30999.23;32879.51;23822.88;23978.28;24358.88;24470.88;24515.51 + * 2;jquery.html;285.42;288.57;292.66;293.75;294.14;10313.00;10688.20;13659.11;13968.65;14003.93;13488.39;13967.51;13980.79;14545.13;15059.77;4361.37;4488.35;4489.44;4492.24;4496.69;3314.32;3445.07;4412.51;5020.75;5216.66;5113.49;5136.56;5141.31;5143.87;5156.28;5055.95;5135.02;5138.64;5215.82;5226.48;4550.98;4551.59;4553.07;4557.77;4559.16;18339.63;18731.53;18738.63;18741.16;18806.15;1474.99;1538.31;1557.52;1703.67;1772.16;12209.94;12335.44;12358.32;12516.50;12651.94;1520.94;1522.62;1541.37;1584.71;1642.50;57533.00;59169.41;59436.11;59758.70;59872.40;8669.13;8789.34;8994.37;9016.05;9064.95;11047.39;11058.39;11063.78;11077.89;11082.78;6401.81;6426.26;6504.35;6518.25;6529.61;6250.22;6280.65;6304.59;6318.91;6328.72;5144.28;5228.40;5236.21;5271.26;5273.79;1398.91;1450.05;1456.39;1494.66;1519.42;727.85;766.62;844.35;858.49;904.87;9912.55;10249.54;14936.71;16566.50;16685.00;378.04;381.34;381.44;385.67;387.23;5362.60;5392.78;5397.14;5497.12;5514.83;213309.00;318297.00;320682.00;322681.00;322707.00;56357.44;67892.66;68329.66;68463.32;69506.00;418.91;424.49;425.19;425.28;426.40;9363.39;9559.95;9644.00;9737.07;9752.80;33170.83;33677.33;34950.83;35607.47;35765.82;44079.34;44588.55;45396.00;46309.00;46427.30;6302.87;6586.51;6607.08;6637.44;6642.17;9776.17;9790.46;9931.90;10391.79;10392.43;8739.26;8838.38;8870.20;8911.50;8955.15;8422.83;8786.21;8914.00;9135.82;9145.36;8945.28;9028.37;9035.23;9116.64;9137.86;6433.90;6688.73;6822.11;6830.08;6833.90;8575.23;8599.87;8610.91;8655.65;9123.91 + * 3;mootools.html;1161.69;1333.31;1425.89;1500.37;1557.37;6706.93;7648.46;8020.04;8031.36;8049.64;7861.80;7972.40;7978.12;7993.32;7993.88;1838.83;1862.93;1864.11;1866.28;1866.71;1909.93;1921.83;1928.53;1954.07;1969.98;1808.68;1820.01;1821.30;1825.92;1826.91;1849.07;1904.99;1908.26;1911.24;1912.50;1856.86;1871.78;1873.72;1878.54;1929.57;6506.67;6752.73;7799.22;7830.41;7855.18;4117.18;4262.42;4267.30;4268.27;4269.62;2720.56;2795.36;2840.08;2840.79;2842.62;699.12;703.75;774.36;791.73;798.18;11096.22;11126.39;11132.72;11147.16;11157.44;3934.33;4067.37;4140.94;4149.75;4150.38;9042.82;9077.46;9083.55;9084.41;9086.41;4431.47;4432.84;4437.33;4438.40;4440.44;3935.67;3937.31;3937.43;3940.53;3976.68;3247.17;3307.90;3319.90;3323.32;3330.60;1001.90;1016.87;1021.12;1021.67;1022.05;1016.34;1019.09;1036.62;1056.81;1057.76;7345.56;7348.56;7391.89;7393.85;7406.30;374.27;392.53;394.73;397.28;398.26;5588.58;5653.21;5655.07;5659.15;5660.66;9775.41;9860.51;9938.40;9959.85;9968.45;9733.42;9904.31;9953.05;9960.55;9967.20;6399.26;6580.11;7245.93;7336.96;7386.78;7162.00;7245.49;7249.38;7250.75;7304.63;8458.24;8583.40;8651.57;8717.39;8742.39;8896.42;8904.60;8927.96;8960.73;8961.82;7483.48;7747.77;7763.46;7766.34;7773.07;7784.00;7821.41;7827.18;7849.18;7855.49;7012.16;7141.57;7250.09;7253.13;7335.89;6977.97;7015.51;7042.40;7204.35;7237.20;7160.46;7293.23;7321.27;7321.82;7331.16;6268.69;6324.11;6325.78;6328.56;6342.40;6554.54;6625.30;6646.00;6650.30;6674.90 + * 4;prototype.html;237.05;251.94;256.61;259.65;263.52;4488.53;4676.88;4745.24;4745.50;4748.81;4648.47;4660.21;4666.58;4671.88;4677.32;3602.84;3611.40;3613.69;3615.69;3619.15;3604.41;3619.44;3623.24;3627.66;3628.11;3526.59;3589.35;3615.93;3616.35;3622.80;3624.69;3626.84;3628.47;3631.22;3632.15;3184.76;3186.11;3187.16;3187.78;3189.35;4353.43;4466.46;4482.57;4616.72;4617.88;4012.18;4034.84;4047.07;4047.82;4055.29;4815.11;4815.21;4816.11;4817.08;4820.40;3300.31;3345.18;3369.55;3420.98;3447.97;5026.99;5033.82;5034.50;5034.95;5038.97;3516.72;3520.79;3520.95;3521.81;3523.47;3565.29;3574.23;3574.37;3575.82;3578.37;4045.19;4053.51;4056.76;4058.76;4059.00;4714.67;4868.66;4869.66;4873.54;4878.29;1278.20;1300.92;1301.13;1301.17;1302.47;868.94;871.16;878.50;883.40;884.85;3874.71;3878.44;3881.61;3882.67;3886.92;4959.83;4968.45;4969.50;4971.38;4972.30;3862.69;3870.15;3871.79;3873.83;3878.07;2690.15;2711.66;2714.42;2715.39;2715.89;4349.04;4349.63;4351.33;4353.59;4355.46;4950.95;5101.08;5107.69;5120.21;5120.39;4336.63;4360.76;4361.96;4362.28;4365.43;4928.75;4939.41;4939.56;4943.95;4966.78;4869.03;4886.24;4888.85;4889.14;4895.76;4362.39;4362.78;4363.96;4365.00;4365.08;3408.00;3470.03;3476.37;3546.65;3547.34;4905.73;4926.21;4926.70;4926.93;4929.43;4682.88;4694.91;4696.30;4697.06;4699.69;4688.86;4691.25;4691.46;4698.37;4699.41;4628.07;4631.31;4633.42;4634.00;4636.00;4699.44;4796.02;4808.83;4809.95;4813.52;4719.10;4720.41;4722.95;4723.03;4723.53 + * 5;yui.html;569.72;602.22;627.02;647.49;692.84;9978.30;10117.54;10121.70;10129.75;10137.24;9278.68;9291.44;9349.00;9370.53;9375.86;475.79;481.92;606.51;607.42;618.73;617.68;618.89;623.30;626.58;631.85;501.81;649.76;653.22;655.69;656.71;510.62;645.56;657.42;657.88;658.39;475.53;476.77;476.80;476.92;476.96;9895.16;9976.15;9988.25;9989.85;9996.40;9483.15;9545.75;9676.37;9808.51;10360.22;8331.29;8397.87;8538.06;8714.69;8803.78;2748.93;2800.93;2802.59;2857.33;2864.46;33757.16;33804.83;33859.32;33931.00;33991.32;7818.65;7846.92;7892.09;8170.55;8217.75;13691.38;13692.86;13693.25;13698.73;13706.66;5378.70;5517.83;5615.86;5616.16;5624.00;2985.63;3002.97;3003.07;3037.73;3038.87;2459.10;2502.52;2504.91;2507.07;2507.26;396.62;405.78;411.43;412.03;412.56;543.45;550.75;568.50;578.59;592.25;6762.21;6901.72;6984.27;7064.22;7122.29;454.78;519.40;539.29;543.96;566.16;3235.39;3266.13;3453.26;3498.79;3518.54;39079.22;39722.80;41350.59;41422.38;41540.17;34435.14;34606.31;34623.31;34661.00;34672.48;29449.12;29530.11;30507.24;31938.52;31961.52;7449.33;7524.62;7629.73;7712.96;7796.42;22917.43;23319.00;23441.41;23582.88;23583.53;29780.40;30272.55;31761.00;31765.84;31839.36;6112.45;6218.35;6476.68;6603.54;6793.66;10385.79;10471.69;10518.53;10552.74;10644.95;9563.52;9571.33;9617.09;9946.35;9976.80;9406.11;9518.48;9806.46;10102.44;10173.19;9482.43;9550.28;9878.21;9902.90;9951.45;8343.17;8511.00;8606.00;8750.21;8869.29;8234.96;8462.70;8473.49;8499.58;8808.91 + dromaeo_dom: > + - contact: :peterv and dom team + - source: `dom.manifest `__ + - type: `Page load`_ + - data: see Dromaeo DOM + - reporting: speed in test runs per second (higher is better) + - description: + | Each page in the manifest is part of the dromaeo dom benchmark. These + are the specific areas that Dromaeo DOM covers: + + * **DOM Attributes**: + Measures performance of getting and setting a DOM attribute, both via + ``getAttribute`` and via a reflecting DOM property. Also throws in some + expando getting/setting for good measure. + + * **DOM Modification**: + Measures performance of various things that modify the DOM tree: + creating element and text nodes and inserting them into the DOM. + + * **DOM Query**: + Measures performance of various methods of looking for nodes in the DOM: + ``getElementById``, ``getElementsByTagName``, and so forth. + + * **DOM Traversal**: + Measures performance of various accessors (``childNodes``, + ``firstChild``, etc) that would be used when doing a walk over the DOM + tree. + + Please see `dromaeo_css <#dromaeo_css>`_ for examples of data. + glterrain: > + - contact: :jgilbert and gfx + - source: `glterrain `__ + - type: `Page load`_ + - data: we load the perftest.html page (which generates 4 metrics to track) 25 times, resulting in 4 sets of 25 data points + - summarization: Measures average frames interval while animating a simple WebGL scene + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24; `source: + test.py `__ + * suite: `geometric mean`_ of the 4 subtest results. + - description: + | This tests animates a simple WebGL scene (static textured landscape, one + moving light source, rotating viewport) and measure the frames + throughput (expressed as average interval) over 100 frames. It runs in + ASAP mode (vsync off) and measures the same scene 4 times (for all + combination of antialiasing and alpha. It reports the results as 4 + values) one for each combination. Lower results are better. + - **Example Data** + * 0;0.WebGL-terrain-alpha-no-AA-no;19.8189;20.57185;20.5069;21.09645;20.40045;20.89025;20.34285;20.8525;20.45845;20.6499;19.94505;20.05285;20.316049;19.46745;19.46135;20.63865;20.4789;19.97015;19.9546;20.40365;20.74385;20.828649;20.78295;20.51685;20.97069 + * 1;1.WebGL-terrain-alpha-no-AA-yes;23.0464;23.5234;23.34595;23.40609;22.54349;22.0554;22.7933;23.00685;23.023649;22.51255;23.25975;23.65819;22.572249;22.9195;22.44325;22.95015;23.3567;23.02089;22.1459;23.04545;23.09235;23.40855;23.3296;23.18849;23.273249 + * 2;2.WebGL-terrain-alpha-yes-AA-no;24.01795;23.889449;24.2683;24.34649;23.0562;24.02275;23.54819;24.1874;23.93545;23.53629;23.305149;23.62459;24.01589;24.06405;24.143449;23.998549;24.08205;24.26989;24.0736;24.2346;24.01145;23.7817;23.90785;24.7118;24.2834 + * 3;3.WebGL-terrain-alpha-yes-AA-yes;25.91375;25.87005;25.64875;25.15615;25.5475;24.497449;24.56385;25.57529;25.54889;26.31559;24.143949;25.09895;24.75049;25.2087;25.52385;25.9017;25.4439;24.3495;25.9269;25.734449;26.4126;25.547449;25.667249;25.679349;25.9565 + glvideo: > + - contact: :jgilbert and gfx + - source: `glvideo `__ + - type: `Page load`_ + - data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below) + - summarization: WebGL video texture update with 1080p video. Measures mean tick time across 100 ticks. + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source: + test.py `__ + * suite: `geometric mean`_ of the 4 subtest results. + - **Lower is better** + - **Example Data** + * 0;Mean tick time across 100 ticks: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295 + - description: + | This test playbacks a video file and ask WebGL to draw video frames as + WebGL textures for 100 ticks. It collects the mean tick time across 100 + ticks to measure how much time it will spend for a video texture upload + to be a WebGL texture (gl.texImage2D). We run it for 5 times and ignore + the first found. Lower results are better. + kraken: > + - contact: :sdetar, jandem, and SpiderMonkey Team + - source: `kraken.manifest `__ + - type: `Page load`_ + - measuring: JavaScript performance + - reporting: Total time for all tests, in ms (lower is better) + - data: there are 14 subtests in kraken, each subtest is an internal benchmark and generates 10 data points, or 14 sets of 10 data points. + - summarization: + * subtest: For all of the 10 data points, we take the + `mean `__ + to report a single number. + * suite: `geometric mean`_ of the 14 subtest results. + - description: + | This is the `Kraken `__ javascript + benchmark taken verbatim and slightly modified to fit into our + pageloader extension and talos harness. + - **Example Data** + * 0;ai-astar;100;95;98;102;101;99;97;98;98;102 + * 1;audio-beat-detection;147;147;191;173;145;139;186;143;183;140 + * 2;audio-dft;161;156;158;157;160;158;160;160;159;158 + * 3;audio-fft;82;83;83;154;83;83;82;83;160;82 + * 4;audio-oscillator;96;96;141;95;95;95;129;96;95;134 + * 5;imaging-gaussian-blur;116;115;116;115;115;115;115;115;117;116 + * 6;imaging-darkroom;166;164;166;165;166;166;165;165;165;166 + * 7;imaging-desaturate;87;87;87;87;88;87;88;87;87;87 + * 8;json-parse-financial;75;77;77;76;77;76;77;76;77;77 + * 9;json-stringify-tinderbox;79;79;80;79;78;79;79;78;79;79 + * 10;stanford-crypto-aes;98;97;96;98;98;98;98;98;113;95 + * 11;stanford-crypto-ccm;130;138;130;127;137;134;134;132;147;129 + * 12;stanford-crypto-pbkdf2;176;187;183;183;176;174;181;187;175;173 + * 13;stanford-crypto-sha256-iterative;86;85;83;84;86;85;85;86;83;83 + motionmark_animometer: > + - contact: :b0bh00d, :jeffm, and gfx + - source: `source `__ `manifests `__ + - type: `Page load`_ + - measuring: benchmark measuring the time to animate complex scenes + - summarization: + * subtest: FPS from the subtest, each subtest is run for 15 seconds, + repeat this 5 times and report the median value + * suite: we take a geometric mean of all the subtests (9 for + animometer, 11 for html suite) + motionmark_htmlsuite: > + - contact: :jrmuizel and graphics(gfx) team + motionmark_webgl: > + - contact: :jgilbert and gfx + - source: `source `__ `manifest `__ + - type: `Page load`_ + - measuring: Draw call performance in WebGL + - summarization: + * subtest: FPS from the subtest, each subtest is run once for 15 + seconds, report the average FPS over that time. + * suite: identical to subtest + pdfpaint: > + - contact: :calixte and CI and Quality Tools team + - source: + - type: `Page load`_ + - reporting: time from *performance.timing.navigationStart* to *pagerendered* event in ms (lower is better) + - data: load a PDF 20 times + perf_reftest: > + - contact: :emilio and css/layout team + - source: `perf-reftest `__ + - type: `Page load`_ + - reporting: intervals in ms (lower is better) + - data: each test loads 25 times + - summarization: + * subtest: `ignore first`_ 5 data points, then take the `median`_ of the remaining 20 data points; `source: + test.py `__ + * suite: identical to subtest + - description: + | **Important note:** This test now requires an 'opt' build. If the + perf-reftest is ran on a non-opt build, it will time out (more + specifically on innertext-1.html, and possibly others in the future). + + Style system performance test suite. The perf-reftest suite is a unique + talos suite where each subtest loads two different test pages: a 'base' + page (i.e. bloom_basic) and a 'reference' page (i.e. bloom_basic_ref), + and then compares each of the page load times against eachother to + determine the variance. + + Talos runs each of the two pages as if they are stand-alone tests, and + then calculates and reports the variance; the test output 'replicates' + reported from bloom_basic are actually the comparisons between the + 'base' and 'reference' pages for each page load cycle. The suite + contains multiple subtests, each of which contains a base page and a + reference page. + + If you wish to see the individual 'base' and 'reference' page results + instead of just the reported difference, the 'base_replicates' and + 'ref_replicates' can be found in the PERFHERDER_DATA log file output, + and in the 'local.json' talos output file when running talos locally. In + production, both of the page replicates are also archived in the + perfherder-data.json file. The perfherder-data.json file is archived + after each run in production, and can be found on the Treeherder Job + Details tab when the perf-reftest job symbol is selected. + + This test suite was ported over from the `style-perf-tests `__. + - **Example Data** + * "replicates": [1.185, 1.69, 1.22, 0.36, 11.26, 3.835, 3.315, 1.355, 3.185, 2.485, 2.2, 1.01, 0.9, 1.22, 1.9, + 0.285, 1.52, 0.31, 2.58, 0.725, 2.31, 2.67, 3.295, 1.57, 0.3], "value": 1.7349999999999999, "unit": "ms", + * "base_replicates": [166.94000000000003, 165.16, 165.64000000000001, 165.04000000000002, 167.355, 165.175, + 165.325, 165.11, 164.175, 164.78, 165.555, 165.885, 166.83499999999998, 165.76500000000001, 164.375, 166.825, + 167.13, 166.425, 169.22500000000002, 164.955, 165.335, 164.45000000000002, 164.85500000000002, 165.005, 166.035]}], + * "ref_replicates": [165.755, 166.85000000000002, 166.85999999999999, 165.4, 178.615, 169.01, 168.64, 166.465, + 167.36, 167.265, 167.75500000000002, 166.895, 167.735, 166.985, 166.275, 166.54000000000002, 165.61, 166.115, + 166.64499999999998, 165.68, 167.64499999999998, 167.12, 168.15, 166.575, 166.335], + perf_reftest_singletons: > + - contact: :emelio and Layout team + - source: `perf-reftest-singletons `__ + - type: `Page load`_ + - reporting: intervals in ms (lower is better) + - data: each test loads 25 times + - summarization: + * subtest: `ignore first`_ 5 data points, then take the `median`_ of the remaining 20 data points; `source: + test.py `__ + * suite: identical to subtest + - description: + | Individual style system performance tests. The perf-reftest-singletons + suite runs the perf-reftest 'base' pages (i.e. bloom_basic) test + individually, and reports the values for that single test page alone, + NOT the comparison of two different pages. There are multiple subtests + in this suite, each just containing the base page on its own. + + This test suite was ported over from the `style-perf-tests `__. + - **Example Data** + * bloombasic.html;88.34000000000003;88.66499999999999;94.815;92.60500000000002;95.30000000000001; + * 98.80000000000001;91.975;87.73500000000001;86.925;86.965;93.00500000000001;98.93;87.45000000000002; + * 87.14500000000001;92.78500000000001;86.96499999999999;98.32000000000001;97.485;90.67000000000002; + * 86.72500000000001;95.665;100.67;101.095;94.32;91.87 + rasterflood_gradient: > + - contact: :jrmuizel, :jimm, and gfx + - source: `rasterflood_gradient.html `__ + - type: `Page load`_ + - data: we load the rasterflood_gradient.html page ten times, computing a score each time, generating 10 data points. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 9; `source: + test.py `__ + - description: + | This page animates some complex gradient patterns in a + requestAnimationFrame callback. However, it also churns the CPU during + each callback, spinning an empty loop for 14ms each frame. The intent is + that, if we consider the rasterization costs to be 0, then the animation + should run close to 60fps. Otherwise it will lag. Since rasterization + costs are not 0, the lower we can get them, the faster the test will + run. The test runs in ASAP mode to maximize framerate. + + The test runs for 10 seconds, and the resulting score is how many frames + we were able to render during that time. Higher is better. Improvements + (or regressions) to general painting performance or gradient rendering + will affect this benchmark. + rasterflood_svg: > + - contact: :jrmuizel, :jimm, and gfx + - source: `rasterflood_svg.html `__ + - type: `Page load`_ + - data: we load the rasterflood_svg.html page ten times, measuring pageload each time, generating 10 data points. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 9; `source: + test.py `__ + - description: + | This page animates some complex SVG patterns in a requestAnimationFrame + callback. However, it also churns the CPU during each callback, spinning + an empty loop for 14ms each frame. The intent is that, if we consider + the rasterization costs to be 0, then the animation should run close to + 60fps. Otherwise it will lag. Since rasterization costs are not 0, the + lower we can get them, the faster the test will run. The test runs in + ASAP mode to maximize framerate. The result is how quickly the browser + is able to render 600 frames of the animation. + + Improvements (or regressions) to general painting performance or SVG are + likely to affect this benchmark. + sessionrestore: > + - contact: :dale, :dao, :farre, session restore module owners/peers, and DOM team + - source: `talos/sessionrestore `__ + - bug: `bug 936630 `__, + `bug 1331937 `__, + `bug 1531520 `__ + - type: Startup_ + - measuring: time spent reading and restoring the session. + - reporting: interval in ms (lower is better). + - data: we load the session restore index page 10 times to collect 1 set of 10 data points. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 9 data points; `source: + test.py `__ + * suite: identical to subtest + - description: + | Three tests measure the time spent reading and restoring the session + from a valid sessionstore.js. Time is counted from the *process start* + until the *sessionRestored* event. + + In *sessionrestore*, this is tested with a configuration that requires + the session to be restored. In *sessionrestore_no_auto_restore*, this is + tested with a configuration that requires the session to not be + restored. Both of the above tests use a sessionstore.js file that + contains one window and roughly 89 tabs. In + *sessionrestore_many_windows*, this is tested with a sessionstore.js + that contains 3 windows and 130 tabs. The first window contains 50 tabs, + 80 remaning tabs are divided equally between the second and the third + window. + - **Example Data** + * [2362.0, 2147.0, 2171.0, 2134.0, 2116.0, 2145.0, 2141.0, 2141.0, 2136.0, 2080.0] + sessionrestore_many_windows: > + - See `sessionrestore <#sessionrestore>`_. + sessionrestore_no_auto_restore: > + - See `sessionrestore <#sessionrestore>`_. + startup_about_home_paint: > + - contact: :mconley, Firefox Desktop Front-end team, :gijs, :fqueze, and :dthayer + - source: `addon `__ + - type: Startup_ + - measuring: The time from process start to the point where the about:home page reports that it has painted the Top Sites. + - data: we load restart the browser 20 times, and collect a timestamp for each run. + - reporting: test time in ms (lower is better) + - **Example Data** + * [1503.0, 1497.0, 1523.0, 1536.0, 1511.0, 1485.0, 1594.0, 1580.0, 1531.0, 1471.0, 1502.0, 1520.0, 1488.0, 1533.0, 1531.0, 1502.0, 1486.0, 1489.0, 1487.0, 1475.0] + startup_about_home_paint_cached: > + - contact: :mconley, Firefox Desktop Front-end team, :gijs, :fqueze, and :dthayer + - See `startup_about_home_paint <#startup_about_home_paint>`_. + - description: + | Tests loading about:home on startup with the about:home startup cache enabled. + startup_about_home_paint_realworld_webextensions: > + - contact: :mconley, Firefox Desktop Front-end team, :gijs, :fqueze, and :dthayer + - source: `addon `__ + - type: Startup_, `Real-world WebExtensions`_ + - measuring: The time from process start to the point where the about:home page reports that it has painted the Top Sites when 5 popular, real-world WebExtensions are installed and enabled. + - data: we install the 5 real-world WebExtensions, then load and restart the browser 20 times, and collect a timestamp for each run. + - reporting: test time in ms (lower is better) + - **Example Data** + * [1503.0, 1497.0, 1523.0, 1536.0, 1511.0, 1485.0, 1594.0, 1580.0, 1531.0, 1471.0, 1502.0, 1520.0, 1488.0, 1533.0, 1531.0, 1502.0, 1486.0, 1489.0, 1487.0, 1475.0] + stylebench: > + - contact: :emilio and Layout team + - source: `stylebench.manifest `__ + - type: `Page load`_ + - measuring: speed of dynamic style recalculation + - reporting: runs/minute score + tabpaint: > + - contact: :mconley, Firefox Desktop Front-end team, :gijs, :fqueze, and :dthayer + - source: `tabpaint `__ + - bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1253382 + - type: `Page load`_ + - measuring: + * The time it takes to paint the content of a newly opened tab when + the tab is opened from the parent (ex: by hitting Ctrl-T) + * The time it takes to paint the content of a newly opened tab when + the tab is opened from content (ex: by clicking on a target="_blank" link) + - **NOT** measuring: + * The time it takes to animate the tabs. That's the responsibility + of the TART test. tabpaint is strictly concerned with the painting of the web content. + - data: we load the tabpaint trigger page 20 times, each run produces + two values (the time it takes to paint content when opened from the + parent, and the time it takes to paint content when opened from + content), resulting in 2 sets of 20 data points. + - **Example Data** + * 0;tabpaint-from-parent;105;76;66;64;64;69;65;63;70;68;64;60;65;63;54;61;64;67;61;64 + * 1;tabpaint-from-content;129;68;72;72;70;78;86;85;82;79;120;92;76;80;74;82;76;89;77;85 + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 19 data points + * suite: geometric_mean(subtests) + tabswitch: > + - contact: :mconley, Firefox Desktop Front-end team, :gijs, :fqueze, and :dthayer + - source: `tabswitch `__ + - bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1166132 + - type: `Page load`_ + - measuring: + * The time between switching a tab and the first paint to the content area + - reporting: + - data: we load 50 web pages 5 times each, resulting in 50 sets of 5 data points. + - **To run it locally**, you'd need `tp5n.zip <#Page_sets>`__. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4 data points; `source: + test.py `__ + * suite: `geometric mean`_ of the 50 subtest results. + - **Example Data** + * 0;amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/507846.html;66.34;54.15;53.08;55.79;49.12 + * 1;cgi.ebay.com/cgi.ebay.com/ALL-NEW-KINDLE-3-eBOOK-WIRELESS-READING-DEVICE-W-WIFI-/130496077314@pt=LH_DefaultDomain_0&hash=item1e622c1e02.html;50.85;46.57;39.51;36.71;36.47 + * 2;163.com/www.163.com/index.html;95.05;80.80;76.09;69.29;68.96 + * 3;mail.ru/mail.ru/index.html;66.21;52.04;56.33;55.11;45.61 + * 4;bbc.co.uk/www.bbc.co.uk/news/index.html;35.80;44.59;48.02;45.71;42.58 + * 5;store.apple.com/store.apple.com/us@mco=Nzc1MjMwNA.html;52.98;49.45;58.47;56.79;61.29 + * 6;imdb.com/www.imdb.com/title/tt1099212/index.html;46.51;55.12;46.22;50.60;47.63 + * 7;cnn.com/www.cnn.com/index.html;43.02;50.77;43.88;49.70;50.02 + * 8;sohu.com/www.sohu.com/index.html;74.03;62.89;63.30;67.71;89.35 + * 9;youku.com/www.youku.com/index.html;43.98;52.69;45.80;63.00;57.02 + * 10;ifeng.com/ifeng.com/index.html;88.01;87.54;104.47;94.93;113.91 + * 11;tudou.com/www.tudou.com/index.html;45.32;48.10;46.03;39.26;58.38 + * 12;chemistry.about.com/chemistry.about.com/index.html;38.24;37.07;39.59;39.48;39.60 + * 13;beatonna.livejournal.com/beatonna.livejournal.com/index.html;35.59;50.75;36.17;48.49;52.61 + * 14;rakuten.co.jp/www.rakuten.co.jp/index.html;90.28;71.95;62.66;60.33;67.76 + * 15;uol.com.br/www.uol.com.br/index.html;42.89;48.05;53.77;40.02;42.41 + * 16;thepiratebay.org/thepiratebay.org/top/201.html;40.46;42.46;47.63;57.66;45.49 + * 17;page.renren.com/page.renren.com/index.html;47.61;66.78;47.91;62.78;47.19 + * 18;chinaz.com/chinaz.com/index.html;50.34;58.17;118.43;55.47;63.80 + * 19;globo.com/www.globo.com/index.html;41.34;38.52;42.82;53.14;45.20 + * 20;spiegel.de/www.spiegel.de/index.html;33.60;34.34;36.25;36.18;47.04 + * 21;dailymotion.com/www.dailymotion.com/us.html;37.68;36.13;39.52;37.15;42.79 + * 22;goo.ne.jp/goo.ne.jp/index.html;50.74;47.30;63.04;58.41;58.96 + * 23;stackoverflow.com/stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered.html;44.66;44.40;43.39;47.38;57.65 + * 24;ezinearticles.com/ezinearticles.com/index.html@Migraine-Ocular---The-Eye-Migraines&id=4684133.html;37.38;45.01;40.29;36.26;39.28 + * 25;huffingtonpost.com/www.huffingtonpost.com/index.html;39.57;43.35;55.01;44.13;58.28 + * 26;media.photobucket.com/media.photobucket.com/image/funny%20gif/findstuff22/Best%20Images/Funny/funny-gif1.jpg@o=1.html;39.77;42.46;75.54;42.38;47.72 + * 27;imgur.com/imgur.com/gallery/index.html;34.72;37.37;46.74;40.93;37.08 + * 28;reddit.com/www.reddit.com/index.html;42.47;39.89;51.54;51.51;41.68 + * 29;noimpactman.typepad.com/noimpactman.typepad.com/index.html;54.28;47.40;52.38;52.15;50.97 + * 30;myspace.com/www.myspace.com/albumart.html;48.97;64.12;61.66;48.32;68.53 + * 31;mashable.com/mashable.com/index.html;36.76;40.95;35.30;53.86;42.76 + * 32;dailymail.co.uk/www.dailymail.co.uk/ushome/index.html;42.06;40.64;44.24;37.32;61.35 + * 33;whois.domaintools.com/whois.domaintools.com/mozilla.com.html;34.73;35.23;39.25;48.24;35.72 + * 34;indiatimes.com/www.indiatimes.com/index.html;52.67;55.51;46.29;52.69;58.82 + * 35;reuters.com/www.reuters.com/index.html;32.92;33.08;36.95;39.23;39.27 + * 36;xinhuanet.com/xinhuanet.com/index.html;125.85;102.56;138.89;130.34;147.45 + * 37;56.com/www.56.com/index.html;63.89;75.00;61.45;62.20;58.67 + * 38;bild.de/www.bild.de/index.html;35.61;43.74;34.79;33.45;31.83 + * 39;guardian.co.uk/www.guardian.co.uk/index.html;38.91;55.93;62.34;42.63;45.99 + * 40;naver.com/www.naver.com/index.html;78.10;89.07;127.67;75.18;109.32 + * 41;yelp.com/www.yelp.com/biz/alexanders-steakhouse-cupertino.html;42.54;46.92;39.19;49.82;50.43 + * 42;wsj.com/online.wsj.com/home-page.html;46.43;55.51;44.16;81.79;48.78 + * 43;google.com/www.google.com/search@q=mozilla.html;35.62;36.71;44.47;45.00;40.22 + * 44;xunlei.com/xunlei.com/index.html;67.57;60.69;83.83;85.53;85.08 + * 45;aljazeera.net/aljazeera.net/portal.html;65.03;51.84;73.29;64.77;69.70 + * 46;w3.org/www.w3.org/standards/webdesign/htmlcss.html;53.57;58.50;72.98;66.95;55.62 + * 47;homeway.com.cn/www.hexun.com/index.html;105.59;117.32;108.95;116.10;70.32 + * 48;youtube.com/www.youtube.com/music.html;40.53;41.48;59.67;40.81;40.07 + * 49;people.com.cn/people.com.cn/index.html;96.49;103.64;115.12;66.05;117.84 + tart: > + - contact: :mconley, Firefox Desktop Front-end team, :gijs, :fqueze, and :dthayer + - source: `tart `__ + - type: `Page load`_ + - measuring: Desktop Firefox UI animation speed and smoothness + - reporting: intervals in ms (lower is better) - see below for details + - data: there are 30 reported subtests from TART which we load 25 times, resulting in 30 sets of 25 data points. + - summarization: + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24 data points; `source: + test.py `__ + * suite: `geometric mean`_ of the 30 subtest results. + - TART is the **Tab Animation Regression Test**. + - TART tests tab animation on these cases: + - Simple: single new tab of about:blank open/close without affecting (shrinking/expanding) other tabs. + - icon: same as above with favicons and long title instead of about:blank. + - Newtab: newtab open with thumbnails preview - without affecting other tabs, with and without preload. + - Fade: opens a tab, then measures fadeout/fadein (tab animation without the overhead of opening/closing a tab). + * Case 1 is tested with DPI scaling of 1. + * Case 2 is tested with DPI scaling of 1.0 and 2.0. + * Case 3 is tested with the default scaling of the test system. + * Case 4 is tested with DPI scaling of 2.0 with the "icon" tab (favicon and long title). + - Each animation produces 3 test results: + * error: difference between the designated duration and the actual completion duration from the trigger. + * half: average frame interval over the 2nd half of the animation. + * all: average frame interval over all recorded intervals. + * And the run logs also include the explicit intervals from which these 3 values were derived. + - **Example Data** + * 0;simple-open-DPI1.half.TART;2.35;2.42;2.63;2.47;2.71;2.38;2.37;2.41;2.48;2.70;2.44;2.41;2.51;2.43;2.41;2.56;2.76;2.49;2.36;2.40;2.70;2.53;2.35;2.46;2.47 + * 1;simple-open-DPI1.all.TART;2.80;2.95;3.12;2.92;3.46;2.87;2.92;2.99;2.89;3.24;2.94;2.95;3.25;2.92;3.02;3.00;3.21;3.31;2.84;2.87;3.10;3.13;3.10;2.94;2.95 + * 2;simple-open-DPI1.error.TART;33.60;36.33;35.93;35.97;38.17;34.77;36.00;35.01;36.25;36.22;35.24;35.76;36.64;36.31;34.74;34.40;34.34;41.48;35.04;34.83;34.27;34.04;34.37;35.22;36.52 + * 3;simple-close-DPI1.half.TART;1.95;1.88;1.91;1.94;2.00;1.97;1.88;1.76;1.84;2.18;1.99;1.83;2.04;1.93;1.81;1.77;1.79;1.90;1.82;1.84;1.78;1.75;1.76;1.89;1.81 + * 4;simple-close-DPI1.all.TART;2.19;2.08;2.07;2.32;2.65;2.32;2.26;1.96;2.02;2.26;2.05;2.16;2.19;2.11;2.04;1.98;2.05;2.02;2.01;2.11;1.97;1.97;2.05;2.01;2.12 + * 5;simple-close-DPI1.error.TART;21.35;23.87;22.60;22.02;22.97;22.35;22.15;22.79;21.81;21.90;22.26;22.58;23.15;22.43;22.76;23.36;21.86;22.70;22.96;22.70;22.28;22.03;21.78;22.33;22.23 + * 6;icon-open-DPI1.half.TART;2.42;2.33;2.50;2.58;2.36;2.51;2.60;2.35;2.52;2.51;2.59;2.34;3.29;2.63;2.46;2.57;2.53;2.50;2.39;2.51;2.44;2.66;2.72;2.36;2.52 + * 7;icon-open-DPI1.all.TART;3.12;2.94;3.42;3.23;3.10;3.21;3.33;3.14;3.24;3.32;3.46;2.90;3.65;3.19;3.27;3.47;3.32;3.13;2.95;3.23;3.21;3.33;3.47;3.15;3.32 + * 8;icon-open-DPI1.error.TART;38.39;37.96;37.03;38.85;37.03;37.17;37.19;37.56;36.67;36.33;36.89;36.85;37.54;38.46;35.38;37.52;36.68;36.48;36.03;35.71;37.12;37.08;37.74;38.09;35.85 + * 9;icon-close-DPI1.half.TART;1.94;1.93;1.79;1.89;1.83;1.83;1.90;1.89;1.75;1.76;1.77;1.74;1.81;1.86;1.95;1.99;1.73;1.83;1.97;1.80;1.94;1.84;2.01;1.88;2.03 + * 10;icon-close-DPI1.all.TART;2.14;2.14;1.98;2.03;2.02;2.25;2.29;2.13;1.97;2.01;1.94;2.01;1.99;2.05;2.11;2.09;2.02;2.02;2.12;2.02;2.20;2.11;2.19;2.07;2.27 + * 11;icon-close-DPI1.error.TART;24.51;25.03;25.17;24.54;23.86;23.70;24.02;23.61;24.10;24.53;23.92;23.75;23.73;23.78;23.42;25.40;24.21;24.55;23.96;24.96;24.41;24.96;24.16;24.20;23.65 + * 12;icon-open-DPI2.half.TART;2.60;2.60;2.60;2.53;2.51;2.53;2.59;2.43;2.66;2.60;2.47;2.61;2.64;2.43;2.49;2.63;2.61;2.60;2.52;3.06;2.65;2.74;2.69;2.44;2.43 + * 13;icon-open-DPI2.all.TART;3.45;3.22;3.38;3.47;3.10;3.31;3.47;3.13;3.37;3.14;3.28;3.20;3.40;3.15;3.14;3.23;3.41;3.16;3.26;3.55;3.29;3.49;3.44;3.11;3.22 + * 14;icon-open-DPI2.error.TART;40.20;37.86;37.53;41.46;37.03;38.77;37.48;36.97;37.28;37.72;36.09;36.71;38.89;38.21;37.37;38.91;36.79;36.10;37.60;36.99;37.56;35.76;38.92;37.46;37.52 + * 15;icon-close-DPI2.half.TART;2.27;1.97;1.83;1.86;2.08;1.88;1.80;1.90;1.77;1.89;2.06;1.89;1.89;1.86;2.01;1.79;1.78;1.83;1.89;1.85;1.74;1.82;1.84;1.81;1.79 + * 16;icon-close-DPI2.all.TART;2.33;2.13;2.18;2.03;2.33;2.03;1.95;2.06;1.96;2.13;2.25;2.10;2.13;2.03;2.18;2.00;2.05;2.01;2.08;2.05;1.96;2.04;2.10;2.04;2.08 + * 17;icon-close-DPI2.error.TART;22.99;23.02;24.32;23.58;23.05;23.34;22.92;23.22;22.90;23.33;23.33;23.05;22.80;23.45;24.05;22.39;22.14;22.97;22.85;22.13;22.89;22.98;23.69;22.99;23.08 + * 18;iconFade-close-DPI2.half.TART;2.14;1.84;1.78;1.84;1.66;2.07;1.81;3.82;1.68;1.85;1.62;2.54;2.06;1.85;2.17;1.80;1.71;1.67;2.11;1.73;2.94;2.14;1.93;1.72;2.05 + * 19;iconFade-close-DPI2.all.TART;2.17;1.76;1.80;1.89;1.70;1.93;1.80;3.38;1.78;1.90;1.70;2.50;1.94;1.81;2.29;1.82;1.79;1.76;2.23;1.80;2.85;2.06;1.84;1.83;2.09 + * 20;iconFade-close-DPI2.error.TART;4.67;4.11;3.69;4.51;4.46;3.88;4.54;3.68;4.56;3.82;4.32;4.87;4.42;3.72;3.72;4.54;4.93;4.46;4.64;3.39;4.09;3.28;3.58;4.11;3.80 + * 21;iconFade-open-DPI2.half.TART;2.37;2.61;2.37;2.62;2.54;2.84;2.57;2.44;4.33;2.57;2.59;2.67;2.58;2.48;2.38;2.39;2.50;2.39;2.50;2.57;2.52;2.55;2.47;2.69;2.41 + * 22;iconFade-open-DPI2.all.TART;2.45;2.64;2.39;2.60;2.57;2.60;2.61;2.59;3.14;2.55;2.54;2.66;2.57;2.48;2.47;2.46;2.55;2.45;2.51;2.61;2.54;2.58;2.50;2.54;2.40 + * 23;iconFade-open-DPI2.error.TART;3.64;4.67;4.31;5.79;6.43;3.64;4.82;8.68;5.78;4.38;3.80;3.98;4.64;653.63;4.63;3.76;4.23;5.01;5.48;4.99;3.48;5.10;5.02;6.14;5.58 + * 24;newtab-open-preload-no.half.TART;5.02;2.90;3.06;3.03;2.94;2.94;3.08;3.12;3.60;3.19;2.82;2.96;3.67;7.85;2.79;3.12;3.18;2.92;2.86;2.96;2.96;3.00;2.90;2.97;2.94 + * 25;newtab-open-preload-no.all.TART;7.11;4.66;5.03;4.68;4.50;4.58;4.76;4.76;5.67;4.96;4.36;4.51;5.21;11.16;4.38;4.69;4.77;4.45;4.45;4.70;4.51;4.61;4.54;4.69;4.60 + * 26;newtab-open-preload-no.error.TART;40.82;40.85;37.38;37.40;36.30;36.47;36.89;37.63;37.12;38.65;36.73;36.95;36.11;38.59;37.39;37.77;37.93;37.54;37.46;38.29;36.58;38.25;38.32;37.92;36.93 + * 27;newtab-open-preload-yes.half.TART;3.14;2.96;2.97;8.37;2.98;3.00;2.96;3.05;3.12;3.48;3.07;3.23;3.05;2.88;2.92;3.06;2.90;3.01;3.19;2.90;3.18;3.11;3.04;3.16;3.21 + * 28;newtab-open-preload-yes.all.TART;5.10;4.60;4.63;8.94;5.01;4.69;4.63;4.67;4.93;5.43;4.78;5.12;4.77;4.65;4.50;4.78;4.75;4.63;4.76;4.45;4.86;4.88;4.69;4.86;4.92 + * 29;newtab-open-preload-yes.error.TART;35.90;37.24;38.57;40.60;36.04;38.12;38.78;36.73;36.91;36.69;38.12;36.69;37.79;35.80;36.11;38.01;36.59;38.85;37.14;37.30;38.02;38.95;37.64;37.86;36.43 + tp5n: > + - contact: fx-perf@mozilla.com + - description: + | The tp5 is an updated web page test set to 100 pages from April 8th, 2011. Effort was made for the pages to no longer be splash screens/login pages/home pages but to be pages that better reflect the actual content of the site in question. + tp5: > + - description: + | Note that the tp5 test no longer exists (only talos-tp5o) though many + tests still make use of this pageset. Here, we provide an overview of + the tp5 pageset and some information about how data using the tp5 + pageset might be used in various suites. + tp5o: > + - contact: :davehunt, and perftest team + - source: `tp5n.zip <#page-sets>`__ + - type: `Page load`_ + - data: we load each of the 51 tp5o pages 25 times, resulting in 51 sets of 25 data points. + - **To run it locally**, you'd need `tp5n.zip <#page-sets>`__. + - summarization: tp5 with limited pageset (48 pages as others have too much noise) + * subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 20; `source: + test.py `__ + * suite: `geometric mean`_ of the 51 subtest results. + - description: + | Tests the time it takes Firefox to load the `tp5 web page test + set <#page-sets>`__. The web set was culled from the Alexa top 500 April + 8th, 2011 and consists of 100 pages in tp5n and 51 in tp5o. Some suites + use a subset of these, i.e. 48/51 tests to reduce noise - check with the + owner of the test suite which uses the pageset to check if this + difference exists there. + + Here are the broad steps we use to create the test set: + + #. Take the Alexa top 500 sites list + #. Remove all sites with questionable or explicit content + #. Remove duplicate site (for ex. many Google search front pages) + #. Manually select to keep interesting pages (such as pages in different locales) + #. Select a more representative page from any site presenting a simple search/login/etc. page + #. Deal with Windows 255 char limit for cached pages + #. Limit test set to top 100 pages + + Note that the above steps did not eliminate all outside network access + so we had to take further action to scrub all the pages so that there + are 0 outside network accesses (this is done so that the tp test is as + deterministic measurement of our rendering/layout/paint process as + possible). + - **Example Data** + * 0;163.com/www.163.com/index.html;1035;512;542;519;505;514;551;513;554;793;487;528;528;498;503;530;527;490;521;535;521;496;498;564;520 + * 1;56.com/www.56.com/index.html;1081;583;580;577;597;580;623;558;572;592;598;580;564;583;596;600;579;580;566;573;566;581;571;600;586 + * 2;aljazeera.net/aljazeera.net/portal.html;688;347;401;382;346;362;347;372;337;345;365;337;380;338;355;360;356;366;367;352;350;366;346;375;382 + * 3;amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/507846.html;1392;878;901;852;886;867;877;864;862;877;866;888;3308;870;863;869;873;850;851;850;857;873;869;860;855 + * 4;bbc.co.uk/www.bbc.co.uk/news/index.html;455;271;272;271;279;289;276;285;277;291;281;286;278;286;274;285;276;285;287;286;276;288;279;272;278 + * 5;beatonna.livejournal.com/beatonna.livejournal.com/index.html;290;123;123;129;120;121;124;125;119;125;120;150;121;147;121;121;113;121;119;122;117;112;127;117;139 + * 6;bild.de/www.bild.de/index.html;1314;937;946;931;922;918;920;937;934;930;947;928;936;933;933;928;930;941;951;946;947;938;925;939;938 + * 7;cgi.ebay.com/cgi.ebay.com/ALL-NEW-KINDLE-3-eBOOK-WIRELESS-READING-DEVICE-W-WIFI-/130496077314@pt=LH_DefaultDomain_0&hash=item1e622c1e02.html;495;324;330;328;321;308;315;308;321;313;327;330;317;339;333;322;312;370;336;327;310;312;312;355;330 + * 8;chemistry.about.com/chemistry.about.com/index.html;238;156;156;154;158;161;152;151;152;167;179;152;154;156;161;161;157;167;151;167;154;149;178;153;160 + * 9;chinaz.com/chinaz.com/index.html;347;223;255;234;245;233;264;234;244;228;260;224;258;223;280;220;243;225;251;226;258;232;258;232;247 + * 10;cnn.com/www.cnn.com/index.html;551;384;436;394;391;375;371;407;371;374;398;372;368;388;376;380;386;377;363;383;384;370;388;381;374 + * 11;dailymail.co.uk/www.dailymail.co.uk/ushome/index.html;984;606;551;561;545;542;576;564;543;560;566;557;561;544;545;576;548;539;568;567;557;560;545;544;578 + * 12;dailymotion.com/www.dailymotion.com/us.html;473;271;286;272;285;288;290;290;280;268;286;269;287;275;289;282;293;287;304;261;289;284;281;277;286 + * 13;digg.com/digg.com/news/story/New_logo_for_Mozilla_Firefox_browser.html;410;321;304;303;322;300;319;321;320;306;323;313;312;305;312;338;317;338;301;325;297;302;309;305;300 + * 14;ezinearticles.com/ezinearticles.com/index.html@Migraine-Ocular---The-Eye-Migraines&id=4684133.html;234;177;163;163;186;176;185;175;167;156;162;199;163;190;173;181;175;178;165;159;182;170;183;169;158 + * 15;globo.com/www.globo.com/index.html;684;468;466;485;482;445;433;467;467;450;487;466;440;484;444;451;511;443;429;469;468;430;485;459;447 + * 16;google.com/www.google.com/search@q=mozilla.html;150;100;102;101;97;104;99;116;107;100;98;137;102;102;99;106;98;112;100;102;105;104;107;96;100 + * 17;goo.ne.jp/goo.ne.jp/index.html;328;125;132;132;143;121;122;120;132;145;166;139;144;125;128;152;128;145;130;132;154;126;142;133;139 + * 18;guardian.co.uk/www.guardian.co.uk/index.html;462;311;296;322;309;305;303;288;301;308;301;304;319;309;295;305;294;308;304;322;310;314;302;303;292 + * 19;homeway.com.cn/www.hexun.com/index.html;584;456;396;357;417;374;376;406;363;392;400;378;378;402;390;373;398;393;366;385;383;361;418;386;351 + * 20;huffingtonpost.com/www.huffingtonpost.com/index.html;811;609;575;596;568;585;589;571;568;600;571;588;585;570;574;616;576;564;598;594;589;590;572;572;612 + * 21;ifeng.com/ifeng.com/index.html;829;438;478;462;448;465;469;470;429;463;465;432;482;444;476;453;460;476;461;484;467;510;447;477;443 + * 22;imdb.com/www.imdb.com/title/tt1099212/index.html;476;337;358;332;414;379;344;420;354;363;387;345;358;371;341;385;359;379;353;349;392;349;358;378;347 + * 23;imgur.com/imgur.com/gallery/index.html;419;205;224;231;207;222;206;231;204;219;209;210;210;208;202;215;203;210;203;212;218;219;202;224;230 + * 24;indiatimes.com/www.indiatimes.com/index.html;530;339;348;384;376;381;353;350;403;333;356;393;350;328;393;329;389;346;394;349;382;332;409;327;354 + * 25;mail.ru/mail.ru/index.html;500;256;308;251;271;270;270;246;273;252;279;249;301;252;251;256;271;246;267;254;265;248;277;247;275 + * 26;mashable.com/mashable.com/index.html;699;497;439;508;440;448;512;446;431;500;445;427;495;455;458;499;440;432;522;443;447;488;445;461;489 + * 27;media.photobucket.com/media.photobucket.com/image/funny%20gif/findstuff22/Best%20Images/Funny/funny-gif1.jpg@o=1.html;294;203;195;189;213;186;195;186;204;188;190;220;204;202;195;204;192;204;191;187;204;199;191;192;211 + * 28;myspace.com/www.myspace.com/albumart.html;595;446;455;420;433;425;416;429;452;411;435;439;389;434;418;402;422;426;396;438;423;391;434;438;395 + * 29;naver.com/www.naver.com/index.html;626;368;338;386;342;377;371;352;379;348;362;357;359;354;386;338;394;330;326;372;345;392;336;336;368 + * 30;noimpactman.typepad.com/noimpactman.typepad.com/index.html;431;333;288;292;285;313;277;289;282;292;276;293;270;294;289;281;275;302;285;290;280;285;278;284;283 + * 31;page.renren.com/page.renren.com/index.html;373;232;228;228;213;227;224;227;226;216;234;226;230;212;213;221;224;230;212;218;217;221;212;222;230 + * 32;people.com.cn/people.com.cn/index.html;579;318;305;339;307;341;325;326;307;309;315;314;318;317;321;309;307;299;312;313;305;326;318;384;310 + * 33;rakuten.co.jp/www.rakuten.co.jp/index.html;717;385;371;388;381;348;394;358;396;368;343;386;348;388;393;388;360;339;398;357;392;378;395;386;367 + * 34;reddit.com/www.reddit.com/index.html;340;254;248;255;241;241;248;275;251;250;250;252;243;274;240;269;254;249;242;257;271;253;243;278;252 + * 35;reuters.com/www.reuters.com/index.html;513;404;355;358;379;343;354;385;379;354;418;363;342;412;355;351;402;375;354;400;362;355;380;373;336 + * 36;slideshare.net/www.slideshare.net/jameswillamor/lolcats-in-popular-culture-a-historical-perspective.html;397;279;270;283;285;283;291;286;289;284;275;281;288;284;280;279;290;301;290;270;292;282;289;267;278 + * 37;sohu.com/www.sohu.com/index.html;727;414;479;414;431;485;418;440;488;431;432;464;442;407;488;435;416;465;445;414;480;416;403;463;429 + * 38;spiegel.de/www.spiegel.de/index.html;543;430;391;380;440;387;375;430;380;397;415;383;434;420;384;399;421;392;384;418;388;380;427;403;392 + * 39;stackoverflow.com/stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered.html;503;377;356;438;370;388;409;367;366;407;375;363;393;360;363;396;376;391;426;363;378;408;400;359;408 + * 40;store.apple.com/store.apple.com/us@mco=Nzc1MjMwNA.html;488;327;344;343;333;329;328;348;361;342;362;332;389;333;382;331;382;343;405;343;326;325;329;323;340 + * 41;thepiratebay.org/thepiratebay.org/top/201.html;412;274;317;260;256;269;266;261;258;289;245;284;256;277;251;302;276;307;268;268;247;285;260;271;257 + * 42;tudou.com/www.tudou.com/index.html;522;304;281;283;287;285;288;307;279;288;282;303;292;288;290;287;311;271;279;274;294;272;290;269;290 + * 43;uol.com.br/www.uol.com.br/index.html;668;387;450;411;395;452;386;431;452;394;385;436;413;414;440;401;412;439;408;430;426;415;382;433;387 + * 44;w3.org/www.w3.org/standards/webdesign/htmlcss.html;225;143;129;151;181;141;147;137;159;179;142;153;136;139;191;140;151;143;141;181;140;154;142;143;183 + * 45;wsj.com/online.wsj.com/home-page.html;634;466;512;463;467;507;461;432;492;494;491;507;466;477;495;455;451;495;461;463;494;468;444;497;442 + * 46;xinhuanet.com/xinhuanet.com/index.html;991;663;727;659;647;639;644;656;666;658;670;648;676;653;652;654;641;636;664;668;655;657;646;674;633 + * 47;xunlei.com/xunlei.com/index.html;802;625;624;636;641;652;659;642;623;635;628;606;667;688;683;694;672;640;628;620;653;626;633;654;643 + * 48;yelp.com/www.yelp.com/biz/alexanders-steakhouse-cupertino.html;752;475;502;472;477;512;489;478;501;472;454;517;487;474;521;467;450;513;491;464;536;507;455;511;481 + * 49;youku.com/www.youku.com/index.html;844;448;498;441;417;497;478;439;467;436;447;465;438;461;466;446;452;496;457;446;486;449;467;499;442 + * 50;youtube.com/www.youtube.com/music.html;443;338;253;289;238;296;254;290;242;302;237;290;253;305;253;293;251;311;244;293;255;291;246;316;249 + tp5o_scroll: > + - contact: :botond, :tnikkel, :hiro, and layout team + - source: `tp5n.zip <#page-sets>`__ + - type: `Page load`_ + - data: we load each of the 51 tp5o pages 12 times, resulting in 51 sets of 12 data points. + - **To run it locally**, you'd need `tp5n.zip <#page-sets>`__. + - summarization: Measures average frames interval while scrolling the pages of the tp5o set + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 11; `source: + test.py `__ + * suite: `geometric mean`_ of the 51 subtest results. + - description: + | This test is identical to tscrollx, but it scrolls the 50 pages of the + tp5o set (rather than 6 synthetic pages which tscrollx scrolls). There + are two variants for each test page. The "regular" variant waits 500ms + after the page load event fires, then iterates 100 scroll steps of 10px + each (or until the bottom of the page is reached - whichever comes + first), then reports the average frame interval. The "CSSOM" variant is + similar, but uses APZ's smooth scrolling mechanism to do compositor + scrolling instead of main-thread scrolling. So it just requests the + final scroll destination and the compositor handles the scrolling and + reports frame intervals. + - **Example Data** + * 0;163.com/www.163.com/index.html;9.73;8.61;7.37;8.17;7.58;7.29;6.88;7.45;6.91;6.61;8.47;7.12 + * 1;56.com/www.56.com/index.html;10.85;10.24;10.75;10.30;10.23;10.10;10.31;10.06;11.10;10.06;9.56;10.30 + * 2;aljazeera.net/aljazeera.net/portal.html;9.23;7.15;7.50;7.26;7.73;7.05;7.14;7.66;7.23;7.93;7.26;7.18 + * 3;amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/507846.html;7.14;6.87;7.18;6.31;6.93;6.71;6.37;7.00;6.59;5.37;7.31;6.13 + * 4;bbc.co.uk/www.bbc.co.uk/news/index.html;7.39;6.33;6.22;7.66;6.67;7.77;6.91;7.74;7.08;6.36;6.03;7.12 + * 5;beatonna.livejournal.com/beatonna.livejournal.com/index.html;5.79;5.79;5.68;5.46;5.55;5.48;5.69;5.83;5.88;5.97;5.93;5.88 + * 6;bild.de/www.bild.de/index.html;8.65;7.63;7.17;6.36;7.44;7.68;8.63;6.71;8.34;7.15;7.82;7.70 + * 7;cgi.ebay.com/cgi.ebay.com/ALL-NEW-KINDLE-3-eBOOK-WIRELESS-READING-DEVICE-W-WIFI-/130496077314@pt=LH_DefaultDomain_0&hash=item1e622c1e02.html;7.12;6.81;7.22;6.98;7.05;5.68;7.15;6.54;7.31;7.18;7.82;7.77 + * 8;chemistry.about.com/chemistry.about.com/index.html;6.76;6.17;6.41;6.88;5.67;5.47;6.83;6.28;6.16;6.81;6.21;6.75 + * 9;chinaz.com/chinaz.com/index.html;10.72;7.99;7.33;7.10;7.85;8.62;8.39;6.72;6.26;6.65;8.14;7.78 + * 10;cnn.com/www.cnn.com/index.html;7.73;6.80;6.08;8.27;9.24;7.81;7.69;7.05;8.17;7.70;7.90;6.81 + * 11;dailymail.co.uk/www.dailymail.co.uk/ushome/index.html;6.37;8.28;7.19;8.00;8.09;7.43;6.90;7.24;7.77;7.29;7.38;6.14 + * 12;dailymotion.com/www.dailymotion.com/us.html;9.53;9.80;9.29;9.03;9.10;8.64;8.62;8.71;8.77;9.81;9.64;8.96 + * 13;digg.com/digg.com/news/story/New_logo_for_Mozilla_Firefox_browser.html;7.72;7.06;7.60;5.67;6.85;7.32;7.80;5.98;8.27;6.68;7.52;8.39 + * 14;ezinearticles.com/ezinearticles.com/index.html@Migraine-Ocular---The-Eye-Migraines&id=4684133.html;7.14;7.11;8.09;7.17;6.87;7.12;7.65;7.74;7.26;7.36;6.91;6.95 + * 15;globo.com/www.globo.com/index.html;6.71;7.91;5.83;7.34;7.75;8.00;7.73;7.85;7.03;6.42;8.43;8.11 + * 16;google.com/www.google.com/search@q=mozilla.html;6.49;6.23;7.96;6.39;7.23;8.19;7.35;7.39;6.94;7.24;7.55;7.62 + * 17;goo.ne.jp/goo.ne.jp/index.html;8.56;7.18;7.15;7.03;6.85;7.62;7.66;6.99;7.84;7.51;7.23;7.18 + * 18;guardian.co.uk/www.guardian.co.uk/index.html;7.32;7.62;8.18;7.62;7.83;8.08;7.60;8.17;8.47;7.54;7.92;8.09 + * 19;homeway.com.cn/www.hexun.com/index.html;10.18;8.75;8.83;8.64;8.98;8.07;7.76;9.29;8.05;7.55;8.91;7.78 + * 20;huffingtonpost.com/www.huffingtonpost.com/index.html;8.38;7.17;7.03;6.83;6.49;6.47;6.69;7.08;6.81;7.29;7.13;7.70 + * 21;ifeng.com/ifeng.com/index.html;12.45;8.65;8.75;7.56;8.26;7.71;8.04;7.45;7.83;7.14;8.38;7.68 + * 22;imdb.com/www.imdb.com/title/tt1099212/index.html;8.53;5.65;6.94;7.18;6.10;7.57;6.26;8.34;8.16;7.29;7.62;8.51 + * 23;imgur.com/imgur.com/gallery/index.html;8.10;7.20;7.50;7.88;7.27;6.97;8.13;7.14;7.59;7.39;8.01;8.82 + * 24;indiatimes.com/www.indiatimes.com/index.html;8.00;6.74;7.37;8.52;7.03;8.45;7.08;8.47;9.26;7.89;7.17;6.74 + * 25;mail.ru/mail.ru/index.html;7.64;9.50;9.47;7.03;6.45;6.24;8.03;6.72;7.18;6.39;6.25;6.25 + * 26;mashable.com/mashable.com/index.html;7.97;8.03;6.10;7.80;7.91;7.26;7.49;7.45;7.60;7.08;7.63;7.36 + * 27;media.photobucket.com/media.photobucket.com/image/funny%20gif/findstuff22/Best%20Images/Funny/funny-gif1.jpg@o=1.html;290.00;195.00;217.00;199.00;204.00;196.00;198.00;206.00;209.00;208.00;192.00;196.00 + * 28;myspace.com/www.myspace.com/albumart.html;14.40;13.45;13.29;13.62;13.42;14.15;13.86;14.34;14.69;14.10;13.82;14.13 + * 29;naver.com/www.naver.com/index.html;9.15;8.31;9.40;9.89;7.29;8.43;8.87;8.77;8.96;8.24;8.16;8.21 + * 30;noimpactman.typepad.com/noimpactman.typepad.com/index.html;7.27;7.14;7.70;7.86;7.43;6.95;7.30;7.58;7.51;7.95;7.43;7.05 + * 31;page.renren.com/page.renren.com/index.html;7.94;8.13;6.76;7.77;6.93;6.60;7.62;7.61;6.88;7.56;7.55;7.48 + * 32;people.com.cn/people.com.cn/index.html;11.92;9.22;8.49;8.55;8.34;8.49;6.91;9.92;8.69;8.63;7.69;9.34 + * 33;rakuten.co.jp/www.rakuten.co.jp/index.html;11.10;7.13;8.68;7.85;8.37;7.91;6.74;8.27;8.55;8.93;7.15;9.02 + * 34;reddit.com/www.reddit.com/index.html;6.38;7.95;6.84;7.04;6.96;7.15;8.05;7.71;8.13;7.13;6.60;7.53 + * 35;reuters.com/www.reuters.com/index.html;7.51;7.25;6.60;6.98;7.41;6.45;7.61;7.46;6.11;7.15;7.05;6.94 + * 36;slideshare.net/www.slideshare.net/jameswillamor/lolcats-in-popular-culture-a-historical-perspective.html;7.20;6.32;6.80;6.87;6.29;6.45;7.18;6.92;6.57;7.41;7.08;6.51 + * 37;sohu.com/www.sohu.com/index.html;11.72;9.64;8.85;7.12;7.96;9.14;7.76;8.19;7.14;7.68;8.08;7.24 + * 38;spiegel.de/www.spiegel.de/index.html;7.24;7.30;6.64;7.01;6.74;6.70;6.36;6.84;7.86;7.08;7.12;7.40 + * 39;stackoverflow.com/stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered.html;7.39;5.88;7.22;6.51;7.12;6.51;6.46;6.53;6.63;6.54;6.48;6.80 + * 40;store.apple.com/store.apple.com/us@mco=Nzc1MjMwNA.html;6.23;7.17;7.39;8.98;7.99;8.03;9.12;8.37;8.56;7.61;8.06;7.55 + * 41;thepiratebay.org/thepiratebay.org/top/201.html;9.08;8.93;8.09;7.49;7.30;7.80;7.54;7.65;7.91;7.53;8.37;8.04 + * 42;tudou.com/www.tudou.com/index.html;10.06;9.38;8.68;7.37;8.57;9.11;8.20;7.91;8.78;9.64;8.11;8.47 + * 43;uol.com.br/www.uol.com.br/index.html;9.04;9.49;9.48;9.31;8.68;8.41;9.16;8.91;9.49;8.37;9.77;8.73 + * 44;w3.org/www.w3.org/standards/webdesign/htmlcss.html;6.62;5.98;6.87;6.47;7.22;6.05;6.42;6.50;7.47;7.18;5.82;7.11 + * 45;wsj.com/online.wsj.com/home-page.html;7.49;8.57;6.84;8.12;7.60;7.24;8.16;8.22;6.81;8.28;8.11;8.58 + * 46;xinhuanet.com/xinhuanet.com/index.html;13.66;9.21;10.09;9.56;8.99;10.29;10.24;8.91;11.23;10.82;9.64;10.11 + * 47;xunlei.com/xunlei.com/index.html;8.99;8.16;8.82;8.37;7.01;8.48;7.98;8.69;8.10;8.10;7.10;6.41 + * 48;yelp.com/www.yelp.com/biz/alexanders-steakhouse-cupertino.html;8.18;7.45;7.01;8.14;7.12;7.82;8.24;7.13;7.00;6.41;6.85;7.31 + * 49;youku.com/www.youku.com/index.html;12.21;10.29;10.37;10.34;8.40;9.82;9.23;9.91;9.64;9.91;8.90;10.23 + * 50;youtube.com/www.youtube.com/music.html;9.90;9.06;9.29;9.17;8.85;8.77;9.83;9.21;9.29;10.09;9.69;8.64 + - **Possible regression causes**: Some examples of things that cause regressions in this test are + * Increased displayport size (which causes a larger display list to be built) + * Slowdown in the building of display list + * Slowdown in rasterization of content + * Slowdown in composite times + tp5o_webext: > + - contact: :mixedpuppy and webextension team + tresize: > + - contact: :gcp and platform integration + - source: `tresize-test.html `__ + - type: Startup_ + - measuring: Time to do XUL resize, in ms (lower is better). + - data: we run the tresize test page 20 times, resulting in 1 set of 20 data points. + - summarization: + * subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 15 data points; `source: + test.py `__ + * suite: same as subtest result + - description: + | A purer form of paint measurement than tpaint. This test opens a single + window positioned at 10,10 and sized to 300,300, then resizes the window + outward \|max\| times measuring the amount of time it takes to repaint + each resize. Dumps the resulting dataset and average to stdout or + logfile. + + In `bug + 1102479 `__ + tresize was rewritten to work in e10s mode which involved a full rewrite + of the test. + - **Example Data** + * [23.2565333333333, 23.763383333333362, 22.58369999999999, 22.802766666666653, 22.304050000000025, 23.010383333333326, 22.865466666666677, 24.233716666666705, 24.110983333333365, 22.21390000000004, 23.910333333333316, 23.409816666666647, 19.873049999999992, 21.103966666666686, 20.389749999999978, 20.777349999999984, 20.326283333333365, 22.341616666666667, 20.29813333333336, 20.769600000000104] + - **Possible regression causes** + * slowdown in the paint pipeline + * resizes also trigger a rendering flush so bugs in the flushing code can manifest as regressions + * introduction of more spurious MozAfterPaint events - see `bug 1471961 `__ + ts_paint: > + - contact: :mconley, Firefox Desktop Front-end team, + - source: `tspaint_test.html `__ + - Perfomatic: "Ts, Paint" + - type: Startup_ + - data: 20 times we start the browser and time how long it takes to + paint the startup test page, resulting in 1 set of 20 data points. + - summarization: + * subtest: identical to suite + * suite: `ignore first`_ data point, then take the `median`_ of the remaining 19 data points; `source: + test.py `__ + - description: + | Starts the browser to display tspaint_test.html with the start time in + the url, waits for `MozAfterPaint and onLoad <#paint>`__ to fire, then + records the end time and calculates the time to startup. + - **Example Data** + * [1666.0, 1195.0, 1139.0, 1198.0, 1248.0, 1224.0, 1213.0, 1194.0, 1229.0, 1196.0, 1191.0, 1230.0, 1247.0, 1169.0, 1217.0, 1184.0, 1196.0, 1192.0, 1224.0, 1192.0] + - **Possible regression causes** + * (and/or maybe tpaint?) will regress if a new element is added to the + browser window (e.g. browser.xul) and it's frame gets created. Fix + this by ensuring it's display:none by default. + ts_paint_heavy: > + - `ts_paint <#ts_paint>`_ test run against a heavy user profile. + - contact: :mconley, Firefox Desktop Front-end team, + ts_paint_webext: > + - contact: :mconley, Firefox Desktop Front-end team, + tscrollx: > + - contact: :jrmuizel and gfx + - source: `scroll.manifest `__ + - type: `Page load`_ + - measuring: Scroll performance + - reporting: Average frame interval (1 ÷ fps). Lower is better. + - data: we load 6 pages 25 times each, collecting 6 sets of 25 data points + - summarization: `Replacing tscroll,tsvg with tscrollx,tsvgx `__ + * subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24; `source: + test.py `__ + * suite: `geometric mean`_ of the 6 subtest results. + - description: + | This test scrolls several pages where each represent a different known + "hard" case to scroll (\* needinfo), and measures the average frames + interval (1/FPS) on each. The ASAP test (tscrollx) iterates in unlimited + frame-rate mode thus reflecting the maximum scroll throughput per page. + To turn on ASAP mode, we set these preferences: + + ``preferences = {'layout.frame_rate': 0, 'docshell.event_starvation_delay_hint': 1}`` + + See also `tp5o_scroll <#tp5o_scroll>`_ which has relevant information for this test. + - **Example Data** + * 0;tiled.html;5.41;5.57;5.34;5.64;5.53;5.48;5.44;5.49;5.50;5.50;5.49;5.66;5.50;5.37;5.57;5.54;5.46;5.31;5.41;5.57;5.50;5.52;5.71;5.31;5.44 + * fixed.html;10.404609053497941;10.47;10.66;10.45;10.73;10.79;10.64;10.64;10.82;10.43;10.92;10.47;10.47;10.64;10.74;10.67;10.40;10.83;10.77;10.54;10.38;10.70;10.44;10.38;10.56 + * downscale.html;5.493209876543211;5.27;5.50;5.50;5.51;5.46;5.58;5.58;5.51;5.49;5.49;5.47;9.09;5.56;5.61;5.50;5.47;5.59;5.47;5.49;5.60;5.61;5.58;5.40;5.43 + * downscale.html;10.676522633744854;10.82;10.79;10.41;10.75;10.91;10.52;10.61;10.50;10.55;10.80;10.17;10.68;10.41;10.42;10.41;10.58;10.28;10.56;10.66;10.68;10.47;10.60;10.61;10.26 + * 4;iframe.svg;13.82;14.87;14.78;14.35;14.73;14.50;14.15;14.46;14.80;14.48;15.10;14.93;14.77;14.52;14.08;15.01;14.58;14.52;15.23;14.35;14.72;14.28;14.30;14.27;14.96 + * 5;reader.htm;10.72;10.62;10.23;10.48;10.42;10.64;10.40;10.40;10.14;10.60;10.51;10.36;10.57;10.41;10.52;10.75;10.19;10.72;10.44;9.75;10.49;10.07;10.54;10.46;10.44 + tsvg_static: > + - contact: :jwatt, :dholbert + - source: `svg_static `__ + - type: `Page load`_ + - data: we load the 5 svg pages 25 times, resulting in 5 sets of 25 data points + - summarization: An svg-only number that measures SVG rendering performance of some complex (but static) SVG content. + * subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 20; `source: + test.py `__ + * suite: `geometric mean`_ of the 5 subtest results. + - **Example Data** + * 0;gearflowers.svg;262;184;184;198;197;187;181;186;177;192;196;194;194;186;195;190;237;193;188;182;188;196;191;194;184 + * 1;composite-scale.svg;69;52;48;49;57;51;52;87;52;49;49;51;58;53;64;57;49;65;67;58;53;59;56;68;50 + * 2;composite-scale-opacity.svg;72;53;91;54;51;58;60;46;51;57;59;58;66;70;57;61;47;51;76;65;52;65;64;64;63 + * 3;composite-scale-rotate.svg;70;76;89;62;62;78;57;77;79;82;74;56;61;79;73;64;75;74;81;82;76;58;77;61;62 + * 4;composite-scale-rotate-opacity.svg;91;60;67;84;62;66;78;69;65;68;62;73;68;63;64;71;79;77;63;80;85;65;82;76;81 + tsvgm: > + - An svg-only number that measures SVG rendering performance for dynamic content only. + - contact: :jwatt, :dholbert + - add test details + tsvgr_opacity: > + - contact: :jwatt, :dholbert + - source: `svg_opacity.manifest `__ + - type: `Page load`_ + - data: we load the 2 svg opacity pages 25 times, resulting in 2 sets of 25 data points + - summarization: `Row Major <#row-major-vs-column-major>`__ and 25 cycles/page. + * subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 20; `source: + test.py `__ + * suite: `geometric mean`_ of the 2 subtest results. + - description: + | Renders many semi-transparent, partially overlapping SVG rectangles, and + measures time to completion of this rendering. + + Note that this test also tends to reflect changes in network efficiency + and navigation bar rendering issues. + - Most of the page load tests measure from before the location is + changed, until onload + mozafterpaint, therefore any changes in + chrome performance from the location change, or network performance + (the pages load from a local web server) would affect page load + times. SVG opacity is rather quick by itself, so any such + chrome/network/etc performance changes would affect this test more + than other page load tests (relatively, in percentages). + - **Example Data** + * 0;big-optimizable-group-opacity-2500.svg;170;171;205;249;249;244;192;252;192;431;182;250;189;249;151;168;209;194;247;250;193;250;255;247;247 + * 1;small-group-opacity-2500.svg;585;436;387;441;512;438;440;380;443;391;450;386;459;383;445;388;450;436;485;443;383;438;528;444;441 + tsvgx: > + - contact: :jwatt, :dholbert + - source: `svgx `__ + - type: `Page load`_ + - data: we load the 7 svg pages 25 times, resulting in 7 sets of 25 data points + - summarization: `Replacing tscroll,tsvg with tscrollx,tsvgx `__ + * subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 20; `source: + test.py `__ + * suite: `geometric mean`_ of the 7 subtest results. + - description: + | An svg-only number that measures SVG rendering performance, with + animations or iterations of rendering. This is an ASAP test --i.e. it + iterates in unlimited frame-rate mode thus reflecting the maximum + rendering throughput of each test. The reported value is the overall + duration the sequence/animation took to complete. To turn on ASAP mode, + we set these preferences: + + ``preferences = {'layout.frame_rate': 0, 'docshell.event_starvation_delay_hint': 1}`` + - **Example Data** + * 0;hixie-001.xml;562;555;508;521;522;520;499;510;492;514;502;504;500;521;510;506;511;505;495;517;520;512;503;504;502 + * 1;hixie-002.xml;510;613;536;530;536;522;498;505;500;504;498;529;498;509;493;512;501;506;504;499;496;505;508;511;503 + * 2;hixie-003.xml;339;248;242;261;250;241;240;248;258;244;235;240;247;248;239;247;241;245;242;245;251;239;241;240;237 + * 3;hixie-004.xml;709;540;538;536;540;536;552;539;535;535;543;533;536;535;545;537;537;537;537;539;538;535;536;538;536 + * 4;hixie-005.xml;3096;3086;3003;3809;3213;3323;3143;3313;3192;3203;3225;3048;3069;3101;3189;3251;3172;3122;3266;3183;3159;3076;3014;3237;3100 + * 5;hixie-006.xml;5586;5668;5565;5666;5668;5728;5886;5534;5484;5607;5678;5577;5745;5753;5532;5585;5506;5516;5648;5778;5894;5994;5794;5852;5810 + * 6;hixie-007.xml;1823;1743;1739;1743;1744;1787;1802;1788;1782;1766;1787;1750;1748;1788;1766;1779;1767;1794;1758;1768;1781;1773;1765;1798;1805 + - **Possible regression causes** + * Did you change the dimensions of the content area? Even a little? The + tsvgx test seems to be sensitive to changes like this. See `bug + 1375479 `__, + for example. Usually, these sorts of "regressions" aren't real + regressions - they just mean that we need to re-baseline our + expectations from the test. + twinopen: > + - contact: :gcp and platform integration + - source: `twinopen `__ + - type: Startup_ + - data: we open a new browser window 20 times, resulting in 1 set of 20 data points. + - summarization: Time from calling OpenBrowserWindow until the chrome of the new window has `painted `__. + * subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 15; `source: + test.py `__ + * suite: identical to subtest + - description: + | Tests the amount of time it takes the open a new window from a currently + open browser. This test does not include startup time. Multiple test + windows are opened in succession, results reported are the average + amount of time required to create and display a window in the running + instance of the browser. (Measures ctrl-n performance.) + - **Example Data** + * [209.219, 222.180, 225.299, 225.970, 228.090, 229.450, 230.625, 236.315, 239.804, 242.795, 244.5, 244.770, 250.524, 251.785, 253.074, 255.349, 264.729, 266.014, 269.399, 326.190] + v8_7: > + - description: + | This is the V8 (version 7) javascript benchmark taken verbatim and slightly modified + to fit into our pageloader extension and talos harness. The previous version of this + test is V8 version 5 which was run on selective branches and operating systems. + - contact: No longer being maintained by any team/individual diff --git a/testing/talos/perfdocs/index.rst b/testing/talos/perfdocs/index.rst new file mode 100644 index 0000000000..472088cbf7 --- /dev/null +++ b/testing/talos/perfdocs/index.rst @@ -0,0 +1,735 @@ +===== +Talos +===== + +Talos is a cross-platform Python performance testing framework that is specifically for +Firefox on desktop. New performance tests should be added to the newer framework +`mozperftest `_ unless there are limitations +there (highly unlikely) that make it absolutely necessary to add them to Talos. Talos is +named after the `bronze automaton from Greek myth `_. + +.. contents:: + :depth: 1 + :local: + +Talos tests are run in a similar manner to xpcshell and mochitests. They are started via +the command :code:`mach talos-test`. A `python script `_ +then launches Firefox, which runs the tests via JavaScript special powers. The test timing +information is recorded in a text log file, e.g. :code:`browser_output.txt`, and then processed +into the `JSON format supported by Perfherder `_. + +Talos bugs can be filed in `Testing::Talos `_. + +Talos infrastructure is still mostly documented `on the Mozilla Wiki `_. +In addition, there are plans to surface all of the individual tests using PerfDocs. +This work is tracked in `Bug 1674220 `_. + +Examples of current Talos runs can be `found in Treeherder by searching for "Talos" `_. +If none are immediately available, then scroll to the bottom of the page and load more test +runs. The tests all share a group symbol starting with a :code:`T`, for example +:code:`T(c d damp g1)` or :code:`T-gli(webgl)`. + +Running Talos Locally +********************* + +Running tests locally is most likely only useful for debugging what is going on in a test, +as the test output is only reported as raw JSON. The CLI is documented via: + +.. code-block:: bash + + ./mach talos-test --help + +To quickly try out the :code:`./mach talos-test` command, the following can be run to do a +single run of the DevTools' simple netmonitor test. + +.. code-block:: bash + + # Run the "simple.netmonitor" test very quickly with 1 cycle, and 1 page cycle. + ./mach talos-test --activeTests damp --subtests simple.netmonitor --cycles 1 --tppagecycles 1 + + +The :code:`--print-suites` and :code:`--print-tests` are two helpful command flags to +figure out what suites and tests are available to run. + +.. code-block:: bash + + # Print out the suites: + ./mach talos-test --print-suites + + # Available suites: + # bcv (basic_compositor_video) + # chromez (about_preferences_basic:tresize) + # dromaeojs (dromaeo_css:kraken) + # ... + + # Run all of the tests in the "bcv" test suite: + ./mach talos-test --suite bcv + + # Print out the tests: + ./mach talos-test --print-tests + + # Available tests: + # ================ + # + # a11yr + # ----- + # This test ensures basic a11y tables and permutations do not cause + # performance regressions. + # + # ... + + # Run the tests in "a11yr" listed above + ./mach talos-test --activeTests a11yr + +Running Talos on Try +******************** + +Talos runs can be generated through the mach try fuzzy finder: + +.. code-block:: bash + + ./mach try fuzzy + +The following is an example output at the time of this writing. Refine the query for the +platform and test suites of your choosing. + +.. code-block:: + + | test-windows10-64-qr/opt-talos-bcv-swr-e10s + | test-linux64-shippable/opt-talos-webgl-e10s + | test-linux64-shippable/opt-talos-other-e10s + | test-linux64-shippable-qr/opt-talos-g5-e10s + | test-linux64-shippable-qr/opt-talos-g4-e10s + | test-linux64-shippable-qr/opt-talos-g3-e10s + | test-linux64-shippable-qr/opt-talos-g1-e10s + | test-windows10-64/opt-talos-webgl-gli-e10s + | test-linux64-shippable/opt-talos-tp5o-e10s + | test-linux64-shippable/opt-talos-svgr-e10s + | test-linux64-shippable/opt-talos-damp-e10s + > test-windows7-32/opt-talos-webgl-gli-e10s + | test-linux64-shippable/opt-talos-bcv-e10s + | test-linux64-shippable/opt-talos-g5-e10s + | test-linux64-shippable/opt-talos-g4-e10s + | test-linux64-shippable/opt-talos-g3-e10s + | test-linux64-shippable/opt-talos-g1-e10s + | test-linux64-qr/opt-talos-bcv-swr-e10s + + For more shortcuts, see mach help try fuzzy and man fzf + select: , accept: , cancel: , select-all: , cursor-up: , cursor-down: + 1379/2967 + > talos + +At a glance +*********** + +- Tests are defined in + `testing/talos/talos/test.py `__ +- Treeherder abbreviations are defined in + `taskcluster/ci/test/talos.yml `__ +- Suites are defined for production in + `testing/talos/talos.json `__ + +Test lifecycle +************** + +- Taskcluster schedules `talos + jobs `__ +- Taskcluster runs a Talos job on a hardware machine when one is + available - this is bootstrapped by + `mozharness `__ + + - mozharness downloads the build, talos.zip (found in + `talos.json `__), + and creates a virtualenv for running the test. + - mozharness `configures the test and runs + it `__ + - After the test is completed the data is uploaded to + `Perfherder `__ + +- Treeherder displays a green (all OK) status and has a link to + `Perfherder `__ +- 13 pushes later, + `analyze_talos.py `__ + is ran which compares your push to the previous 12 pushes and next 12 + pushes to look for a + `regression `__ + + - If a regression is found, it will be posted on `Perfherder + Alerts `__ + +Test types +********** + +There are two different species of Talos tests: + +- Startup_: Start up the browser and wait for either the load event or the paint event and exit, measuring the time +- `Page load`_: Load a manifest of pages + +In addition we have some variations on existing tests: + +- Heavy_: Run tests with the heavy user profile instead of a blank one +- `Web extension`_: Run tests with a web extension to see the perf impact extension have +- `Real-world WebExtensions`_: Run tests with a set of 5 popular real-world WebExtensions installed and enabled. + +Some tests measure different things: + +- Paint_: These measure events from the browser like moz_after_paint, etc. +- ASAP_: These tests go really fast and typically measure how many frames we can render in a time window +- Benchmarks_: These are benchmarks that measure specific items and report a summarized score + +Startup +======= + +`Startup +tests `__ +launch Firefox and measure the time to the onload or paint events. We +run this in a series of cycles (default to 20) to generate a full set of +data. Tests that currently are startup tests are: + +- `ts_paint <#ts_paint>`_ +- tpaint_ +- `tresize <#tresize>`_ +- `sessionrestore <#sessionrestore>`_ +- `sessionrestore_no_auto_restore <#sessionrestore_no_auto_restore>`_ +- `sessionrestore_many_windows <#sessionrestore_many_windows>`_ + +Page load +========= + +Many of the talos tests use the page loader to load a manifest of pages. +These are tests that load a specific page and measure the time it takes +to load the page, scroll the page, draw the page etc. In order to run a +page load test, you need a manifest of pages to run. The manifest is +simply a list of URLs of pages to load, separated by carriage returns, +e.g.: + +.. code-block:: none + + https://www.mozilla.org + https://www.mozilla.com + +Example: +`svgx.manifest `__ + +Manifests may also specify that a test computes its own data by +prepending a ``%`` in front of the line: + +.. code-block:: none + + % https://www.mozilla.org + % https://www.mozilla.com + +Example: +`v8.manifest `__ + +The file you created should be referenced in your test config inside of +`test.py `__. +For example, open test.py, and look for the line referring to the test +you want to run: + +.. code-block:: python + + tpmanifest = '${talos}/page_load_test/svgx/svgx.manifest' + tpcycles = 1 # run a single cycle + tppagecycles = 25 # load each page 25 times before moving onto the next page + +Heavy +===== + +All our testing is done with empty blank profiles, this is not ideal for +finding issues for end users. We recently undertook a task to create a +daily update to a profile so it is modern and relevant. It browses a +variety of web pages, and have history and cache to give us a more +realistic scenario. + +The toolchain is documented on +`github `__ and was added +to Talos in `bug +1407398 `__. + +Currently we have issues with this on windows (takes too long to unpack +the files from the profile), so we have turned this off there. Our goal +is to run this on basic pageload and startup tests. + +Web extension +============= + +Web Extensions are what Firefox has switched to and there are different +code paths and APIs used vs addons. Historically we don't test with +addons (other than our test addons) and are missing out on common +slowdowns. In 2017 we started running some startup and basic pageload +tests with a web extension in the profile (`bug +1398974 `__). We +have updated the Extension to be more real world and will continue to do +that. + +Real-world WebExtensions +======================== + +We've added a variation on our test suite that automatically downloads, +installs and enables 5 popular WebExtensions. This is used to measure +things like the impact of real-world WebExtensions on start-up time. + +Currently, the following extensions are installed: + +- Adblock Plus (3.5.2) +- Cisco Webex Extension (1.4.0) +- Easy Screenshot (3.67) +- NoScript (10.6.3) +- Video DownloadHelper (7.3.6) + +Note that these add-ons and versions are "pinned" by being held in a +compressed file that's hosted in an archive by our test infrastructure +and downloaded at test runtime. To update the add-ons in this set, one +must provide a new ZIP file to someone on the test automation team. See +`this comment in +Bugzilla `__. + +Paint +===== + +Paint tests are measuring the time to receive both the +`MozAfterPaint `__ +and OnLoad event instead of just the OnLoad event. Most tests now look +for this unless they are an ASAP test, or an internal benchmark + +ASAP +==== + +We have a variety of tests which we now run in ASAP mode where we render +as fast as possible (disabling vsync and letting the rendering iterate +as fast as it can using \`requestAnimationFrame`). In fact we have +replaced some original tests with the 'x' versions to make them measure. +We do this with RequestAnimationFrame(). + +ASAP tests are: + +- `basic_compositor_video <#basic_compositor_video>`_ +- `displaylist_mutate <#displaylist_mutate>`_ +- `glterrain <#glterrain>`_ +- `rasterflood_svg <#rasterflood_svg>`_ +- `rasterflood_gradient <#rasterflood_gradient>`_ +- `tsvgx <#tsvgx>`_ +- `tscrollx <#tscrollx>`_ +- `tp5o_scroll <#tp5o_scroll>`_ +- `tabswitch <#tabswitch>`_ +- `tart <#tart>`_ + +Benchmarks +========== + +Many tests have internal benchmarks which we report as accurately as +possible. These are the exceptions to the general rule of calculating +the suite score as a geometric mean of the subtest values (which are +median values of the raw data from the subtests). + +Tests which are imported benchmarks are: + +- `ARES6 <#ares6>`_ +- `dromaeo <#dromaeo>`_ +- `JetStream <#jetstream>`_ +- `kraken <#kraken>`_ +- `motionmark <#motionmark>`_ +- `stylebench <#stylebench>`_ + +Row major vs. column major +========================== + +To get more stable numbers, tests are run multiple times. There are two +ways that we do this: row major and column major. Row major means each +test is run multiple times and then we move to the next test (and run it +multiple times). Column major means that each test is run once one after +the other and then the whole sequence of tests is run again. + +More background information about these approaches can be found in Joel +Maher's `Reducing the Noise in +Talos `__ +blog post. + +Page sets +********* + +We run our tests 100% offline, but serve pages via a webserver. Knowing +this we need to store and make available the offline pages we use for +testing. + +tp5pages +======== + +Some tests make use of a set of 50 "real world" pages, known as the tp5n +set. These pages are not part of the talos repository, but without them +the tests which use them won't run. + +- To add these pages to your local setup, download the latest tp5n zip + from `tooltool `__, and extract + it such that ``tp5n`` ends up as ``testing/talos/talos/tests/tp5n``. + You can also obtain it by running a talos test locally to get the zip + into ``testing/talos/talos/tests/``, i.e ``./mach talos-test --suite damp`` +- see also `tp5o <#tp5o>`_. + +{documentation} + +Extra Talos Tests +***************** + +.. contents:: + :depth: 1 + :local: + +about_newtab_with_snippets +========================== + +.. note:: + + add test details + +File IO +------- + +File IO is tested using the tp5 test set in the `xperf`_ +test. + +Possible regression causes +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **nonmain_startup_fileio opt (with or without e10s) windows7-32** – + `bug + 1274018 `__ + This test seems to consistently report a higher result for + mozilla-central compared to Try even for an identical revision due to + extension signing checks. In other words, if you are comparing Try + and Mozilla-Central you may see a false-positive regression on + perfherder. Graphs: + `non-e10s `__ + `e10s `__ + +Xres (X Resource Monitoring) +---------------------------- + +A memory metric tracked during tp5 test runs. This metric is sampled +every 20 seconds. This metric is collected on linux only. + +`xres man page `__. + +% CPU +----- + +Cpu usage tracked during tp5 test runs. This metric is sampled every 20 +seconds. This metric is collected on windows only. + +Responsiveness +-------------- + +contact: :jimm, :overholt + +Measures the delay for the event loop to process a `tracer +event `__. +For more details, see `bug +631571 `__. + +The score on this benchmark is proportional to the sum of squares of all +event delays that exceed a 20ms threshold. Lower is better. + +We collect 8000+ data points from the browser during the test and apply +`this +formula `__ +to the results: + +.. code-block:: python + + return sum([float(x)*float(x) / 1000000.0 for x in val_list]) + +tpaint +====== + +.. warning:: + + This test no longer exists + +- contact: :davidb +- source: + `tpaint-window.html `__ +- type: Startup_ +- data: we load the tpaint test window 20 times, resulting in 1 set of + 20 data points. +- summarization: + + - subtest: `ignore first`_ **5** data points, then take the `median`_ of the remaining 15; `source: + test.py `__ + - suite: identical to subtest + ++-----------------+---------------------------------------------------+ +| Talos test name | Description | ++-----------------+---------------------------------------------------+ +| tpaint | twinopen but measuring the time after we receive | +| | the `MozAfterPaint and OnLoad event <#paint>`__. | ++-----------------+---------------------------------------------------+ + +Tests the amount of time it takes the open a new window. This test does +not include startup time. Multiple test windows are opened in +succession, results reported are the average amount of time required to +create and display a window in the running instance of the browser. +(Measures ctrl-n performance.) + +**Example Data** + +.. code-block:: none + + [209.219, 222.180, 225.299, 225.970, 228.090, 229.450, 230.625, 236.315, 239.804, 242.795, 244.5, 244.770, 250.524, 251.785, 253.074, 255.349, 264.729, 266.014, 269.399, 326.190] + +Possible regression causes +-------------------------- + +- None listed yet. If you fix a regression for this test and have some + tips to share, this is a good place for them. + +xperf +===== + +- contact: fx-perf@mozilla.com +- source: `xperf + instrumentation `__ +- type: `Page load`_ (tp5n) / Startup_ +- measuring: IO counters from windows (currently, only startup IO is in + scope) +- reporting: Summary of read/write counters for disk, network (lower is + better) + +These tests only run on windows builds. See `this active-data +query `__ +for an updated set of platforms that xperf can be found on. If the query +is not found, use the following on the query page: + +.. code-block:: javascript + + { + "from":"task", + "groupby":["run.name","build.platform"], + "limit":2000, + "where":{"regex":{"run.name":".*xperf.*"}} + } + +Talos will turn orange for 'x' jobs on windows 7 if your changeset +accesses files which are not predefined in the +`allowlist `__ +during startup; specifically, before the +"`sessionstore-windows-restored `__" +Firefox event. If your job turns orange, you will see a list of files in +Treeherder (or in the log file) which have been accessed unexpectedly +(similar to this): + +.. code-block:: none + + TEST-UNEXPECTED-FAIL : xperf: File '{profile}\secmod.db' was accessed and we were not expecting it. DiskReadCount: 6, DiskWriteCount: 0, DiskReadBytes: 16904, DiskWriteBytes: 0 + TEST-UNEXPECTED-FAIL : xperf: File '{profile}\cert8.db' was accessed and we were not expecting it. DiskReadCount: 4, DiskWriteCount: 0, DiskReadBytes: 33288, DiskWriteBytes: 0 + TEST-UNEXPECTED-FAIL : xperf: File 'c:\$logfile' was accessed and we were not expecting it. DiskReadCount: 0, DiskWriteCount: 2, DiskReadBytes: 0, DiskWriteBytes: 32768 + TEST-UNEXPECTED-FAIL : xperf: File '{profile}\secmod.db' was accessed and we were not expecting it. DiskReadCount: 6, DiskWriteCount: 0, DiskReadBytes: 16904, DiskWriteBytes: 0 + TEST-UNEXPECTED-FAIL : xperf: File '{profile}\cert8.db' was accessed and we were not expecting it. DiskReadCount: 4, DiskWriteCount: 0, DiskReadBytes: 33288, DiskWriteBytes: 0 + TEST-UNEXPECTED-FAIL : xperf: File 'c:\$logfile' was accessed and we were not expecting it. DiskReadCount: 0, DiskWriteCount: 2, DiskReadBytes: 0, DiskWriteBytes: 32768 + +In the case that these files are expected to be accessed during startup +by your changeset, then we can add them to the +`allowlist `__. + +Xperf runs tp5 while collecting xperf metrics for disk IO and network +IO. The providers we listen for are: + +- `'PROC_THREAD', 'LOADER', 'HARD_FAULTS', 'FILENAME', 'FILE_IO', + 'FILE_IO_INIT' `__ + +The values we collect during stackwalk are: + +- `'FileRead', 'FileWrite', + 'FileFlush' `__ + +Notes: + +- Currently some runs may `return all-zeros and skew the + results `__ +- Additionally, these runs don't have dedicated hardware and have a + large variability. At least 30 runs are likely to be needed to get + stable statistics (xref `bug + 1616236 `__) + +Build metrics +************* + +These are not part of the Talos code, but like Talos they are benchmarks +that record data using the graphserver and are analyzed by the same +scripts for regressions. + +Number of constructors (num_ctors) +================================== + +This test runs at build time and measures the number of static +initializers in the compiled code. Reducing this number is helpful for +`startup +optimizations `__. + +- https://hg.mozilla.org/build/tools/file/348853aee492/buildfarm/utils/count_ctors.py + + - these are run for linux 32+64 opt and pgo builds. + +Platform microbenchmark +*********************** + +IsASCII and IsUTF8 gtest microbenchmarks +======================================== + +- contact: :hsivonen +- source: + `TestStrings.cpp `__ +- type: Microbench_ +- reporting: intervals in ms (lower is better) +- data: each test is run and measured 5 times +- summarization: take the `median`_ of the 5 data points; `source: + MozGTestBench.cpp `__ + +Test whose name starts with PerfIsASCII test the performance of the +XPCOM string IsASCII function with ASCII inputs if different lengths. + +Test whose name starts with PerfIsUTF8 test the performance of the XPCOM +string IsUTF8 function with ASCII inputs if different lengths. + +Possible regression causes +-------------------------- + +- The --enable-rust-simd accidentally getting turned off in automation. +- Changes to encoding_rs internals. +- LLVM optimizations regressing between updates to the copy of LLVM + included in the Rust compiler. + +Microbench +========== + +- contact: :bholley +- source: + `MozGTestBench.cpp `__ +- type: Custom GTest micro-benchmarking +- data: Time taken for a GTest function to execute +- summarization: Not a Talos test. This suite is provides a way to add + low level platform performance regression tests for things that are + not suited to be tested by Talos. + +PerfStrip Tests +=============== + +- contact: :davidb +- source: + https://dxr.mozilla.org/mozilla-central/source/xpcom/tests/gtest/TestStrings.cpp +- type: Microbench_ +- reporting: execution time in ms (lower is better) for 100k function + calls +- data: each test run and measured 5 times +- summarization: + +PerfStripWhitespace - call StripWhitespace() on 5 different test cases +20k times (each) + +PerfStripCharsWhitespace - call StripChars("\f\t\r\n") on 5 different +test cases 20k times (each) + +PerfStripCRLF - call StripCRLF() on 5 different test cases 20k times +(each) + +PerfStripCharsCRLF() - call StripChars("\r\n") on 5 different test cases +20k times (each) + +Stylo gtest microbenchmarks +=========================== + +- contact: :bholley, :SimonSapin +- source: + `gtest `__ +- type: Microbench_ +- reporting: intervals in ms (lower is better) +- data: each test is run and measured 5 times +- summarization: take the `median`_ of the 5 data points; `source: + MozGTestBench.cpp `__ + +Servo_StyleSheet_FromUTF8Bytes_Bench parses a sample stylesheet 20 times +with Stylo’s CSS parser that is written in Rust. It starts from an +in-memory UTF-8 string, so that I/O or UTF-16-to-UTF-8 conversion is not +measured. + +Gecko_nsCSSParser_ParseSheet_Bench does the same with Gecko’s previous +CSS parser that is written in C++, for comparison. + +Servo_DeclarationBlock_SetPropertyById_Bench parses the string "10px" +with Stylo’s CSS parser and sets it as the value of a property in a +declaration block, a million times. This is similar to animations that +are based on JavaScript code modifying Element.style instead of using +CSS @keyframes. + +Servo_DeclarationBlock_SetPropertyById_WithInitialSpace_Bench is the +same, but with the string " 10px" with an initial space. That initial +space is less typical of JS animations, but is almost always there in +stylesheets or full declarations like "width: 10px". This microbenchmark +was used to test the effect of some specific code changes. Regressions +here may be acceptable if Servo_StyleSheet_FromUTF8Bytes_Bench is not +affected. + +History of tp tests +******************* + +tp +== + +The original tp test created by Mozilla to test browser page load time. +Cycled through 40 pages. The pages were copied from the live web during +November, 2000. Pages were cycled by loading them within the main +browser window from a script that lived in content. + +tp2/tp_js +========= + +The same tp test but loading the individual pages into a frame instead +of the main browser window. Still used the old 40 page, year 2000 web +page test set. + +tp3 +=== + +An update to both the page set and the method by which pages are cycled. +The page set is now 393 pages from December, 2006. The pageloader is +re-built as an extension that is pre-loaded into the browser +chrome/components directories. + +tp4 +=== + +Updated web page test set to 100 pages from February 2009. + +tp4m +==== + +This is a smaller pageset (21 pages) designed for mobile Firefox. This +is a blend of regular and mobile friendly pages. + +We landed on this on April 18th, 2011 in `bug +648307 `__. This +runs for Android and Maemo mobile builds only. + +tp5 +=== + +Updated web page test set to 100 pages from April 8th, 2011. Effort was +made for the pages to no longer be splash screens/login pages/home pages +but to be pages that better reflect the actual content of the site in +question. There are two test page data sets for tp5 which are used in +multiple tests (i.e. awsy, xperf, etc.): (i) an optimized data set +called tp5o, and (ii) the standard data set called tp5n. + +tp6 +=== + +Created June 2017 with recorded pages via mitmproxy using modern google, +amazon, youtube, and facebook. Ideally this will contain more realistic +user accounts that have full content, in addition we would have more +than 4 sites- up to top 10 or maybe top 20. + +These were migrated to Raptor between 2018 and 2019. + +.. _geometric mean: https://wiki.mozilla.org/TestEngineering/Performance/Talos/Data#geometric_mean +.. _ignore first: https://wiki.mozilla.org/TestEngineering/Performance/Talos/Data#ignore_first +.. _median: https://wiki.mozilla.org/TestEngineering/Performance/Talos/Data#median diff --git a/testing/talos/requirements.txt b/testing/talos/requirements.txt new file mode 100644 index 0000000000..729c32e5f1 --- /dev/null +++ b/testing/talos/requirements.txt @@ -0,0 +1,15 @@ +jsonschema>=2.5.1 +mozlog>=6.0 +mozcrash>=2.0 +mozfile>=1.2 +mozinfo>=0.8 +mozprocess>=0.22 +mozversion>=1.3 +mozprofile>=0.25 +mozrunner>=7.1.0 +psutil>=3.1.1 +simplejson>=2.1.1 +requests>=2.9.1 +../tools/wptserve +../tools/wpt_third_party/pywebsocket3 +manifestparser>=2.1.0 diff --git a/testing/talos/setup.py b/testing/talos/setup.py new file mode 100644 index 0000000000..628610f077 --- /dev/null +++ b/testing/talos/setup.py @@ -0,0 +1,68 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os + +from setuptools import find_packages, setup + +try: + here = os.path.dirname(os.path.abspath(__file__)) + description = open(os.path.join(here, "README")).read() +except OSError: + description = "" + +version = "0.0" + +with open(os.path.join(here, "requirements.txt")) as f: + dependencies = f.read().splitlines() + +dependency_links = [] + +setup( + name="talos", + version=version, + description="Performance testing framework for Windows, Mac and Linux.", + long_description=description, + classifiers=[ + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 2 :: Only", + ], + # Get strings from http://www.python.org/pypi?%3Aaction=list_classifiers + author="Mozilla Foundation", + author_email="tools@lists.mozilla.org", + url="https://wiki.mozilla.org/Buildbot/Talos", + license="MPL", + packages=find_packages(exclude=["ez_setup", "examples", "tests"]), + include_package_data=True, + package_data={ + "": [ + "*.config", + "*.css", + "*.gif", + "*.htm", + "*.html", + "*.ico", + "*.js", + "*.json", + "*.manifest", + "*.php", + "*.png", + "*.rdf", + "*.sqlite", + "*.svg", + "*.xml", + "*.xul", + ] + }, + zip_safe=False, + install_requires=dependencies, + dependency_links=dependency_links, + entry_points=""" + # -*- Entry points: -*- + [console_scripts] + talos = talos.run_tests:main + talos-results = talos.results:main + """, + test_suite="tests", +) diff --git a/testing/talos/source_requirements.txt b/testing/talos/source_requirements.txt new file mode 100644 index 0000000000..ec76b196ad --- /dev/null +++ b/testing/talos/source_requirements.txt @@ -0,0 +1,17 @@ +# These dependencies are required for running talos tests from a source checkout + +jsonschema>=2.5.1 +mozlog>=6.0 +mozcrash>=2.0 +mozfile>=1.2 +mozinfo>=0.8 +mozprocess>=0.22 +mozversion>=1.3 +mozprofile>=0.25 +mozrunner>=7.1.0 +psutil>=3.1.1 +simplejson>=2.1.1 +requests>=2.9.1 +../web-platform/tests/tools/wptserve +../web-platform/tests/tools/third_party/pywebsocket3 +manifestparser>=2.1.0 diff --git a/testing/talos/talos.json b/testing/talos/talos.json new file mode 100644 index 0000000000..bec5cd7510 --- /dev/null +++ b/testing/talos/talos.json @@ -0,0 +1,109 @@ +{ + "suites": { + "bcv": { + "tests": ["basic_compositor_video"] + }, + "chromez": { + "tests": ["about_preferences_basic", "tresize"] + }, + "dromaeojs": { + "tests": ["dromaeo_css", "kraken"] + }, + "other": { + "tests": [ + "a11yr", + "ts_paint", + "twinopen", + "sessionrestore", + "sessionrestore_no_auto_restore", + "tabpaint", + "cpstartup", + "startup_about_home_paint", + "pdfpaint", + "cross_origin_pageload", + "startup_about_home_paint_cached" + ] + }, + "sessionrestore-many-windows": { + "tests": ["sessionrestore_many_windows"] + }, + "g1": { + "tests": ["tp5o_scroll"], + "pagesets_name": "tp5n.zip" + }, + "damp": { + "tests": ["damp"], + "pagesets_name": "tp5n.zip", + "extra_prefs": ["talos.damp.suite=all"] + }, + "damp-inspector": { + "tests": ["damp"], + "pagesets_name": "tp5n.zip", + "extra_prefs": ["talos.damp.suite=inspector"] + }, + "damp-webconsole": { + "tests": ["damp"], + "pagesets_name": "tp5n.zip", + "extra_prefs": ["talos.damp.suite=webconsole"] + }, + "damp-other": { + "tests": ["damp"], + "pagesets_name": "tp5n.zip", + "extra_prefs": ["talos.damp.suite=other"] + }, + "tabswitch": { + "tests": ["tabswitch"], + "pagesets_name": "tp5n.zip" + }, + "g3": { + "tests": ["dromaeo_dom"] + }, + "g4": { + "tests": ["displaylist_mutate", "rasterflood_svg", "rasterflood_gradient"] + }, + "g5": { + "tests": ["ts_paint_webext", "tp5o_webext"], + "pagesets_name": "tp5n.zip" + }, + "motionmark": { + "tests": [ + "motionmark_animometer", + "motionmark_htmlsuite", + "JetStream", + "ARES6" + ], + "benchmark_zip": "jetstream.zip" + }, + "svgr": { + "tests": ["tsvgx", "tsvgr_opacity", "tscrollx", "tsvg_static", "tart"] + }, + "perf-reftest": { + "tests": ["perf_reftest"] + }, + "perf-reftest-singletons": { + "tests": ["perf_reftest_singletons"] + }, + "tp5o": { + "tests": ["tp5o"], + "pagesets_name": "tp5n.zip" + }, + "webgl": { + "tests": ["glterrain", "glvideo", "motionmark_webgl"] + }, + "xperf": { + "tests": ["tp5n"], + "pagesets_name": "tp5n.zip", + "talos_options": [ + "--xperf_path", + "\"c:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/xperf.exe\"" + ] + }, + "h1": { + "tests": ["ts_paint_heavy"] + }, + "realworld-webextensions": { + "tests": ["startup_about_home_paint_realworld_webextensions"], + "webextensions_zip": "webextensions.zip" + } + } +} diff --git a/testing/talos/talos/__init__.py b/testing/talos/talos/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testing/talos/talos/allowlist.py b/testing/talos/talos/allowlist.py new file mode 100644 index 0000000000..195d85b6e1 --- /dev/null +++ b/testing/talos/talos/allowlist.py @@ -0,0 +1,184 @@ +# -*- Mode: python; tab-width: 8; indent-tabs-mode: nil -*- +# vim: set ts=8 sts=4 et sw=4 tw=80: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import json +import os +import re + +KEY_XRE = "{xre}" +DEFAULT_DURATION = 100.0 + + +class Allowlist: + # we need to find the root dir of the profile at runtime + PRE_PROFILE = "" + + def __init__( + self, + test_name, + paths, + path_substitutions, + name_substitutions, + event_sources=None, + init_with=None, + ): + self.test_name = test_name + self.listmap = init_with if init_with else {} + self.dependent_libs = ( + self.load_dependent_libs() if init_with and KEY_XRE in paths else {} + ) + self.paths = paths + self.path_substitutions = path_substitutions + self.name_substitutions = name_substitutions + self.expected_event_sources = event_sources or [] + + def load(self, filename): + if not self.load_dependent_libs(): + return False + + try: + with open(filename, "r") as fHandle: + temp = json.load(fHandle) + + for allowlist_name in temp: + self.listmap[allowlist_name.lower()] = temp[allowlist_name] + + except IOError as e: + print("%s: %s" % (e.filename, e.strerror)) + return False + return True + + def sanitize_filename(self, filename): + filename = filename.lower() + filename.replace(" (x86)", "") + + for path, subst in self.path_substitutions.items(): + parts = filename.split(path) + if len(parts) >= 2: + if self.PRE_PROFILE == "" and subst == "{profile}": + fname = self.sanitize_filename(parts[0]) + self.listmap[fname] = {} + # Windows can have {appdata}\local\temp\longnamedfolder + # or {appdata}\local\temp\longna~1 + self.listmap[fname] = {} + if not fname.endswith("~1"): + # parse the longname into longna~1 + dirs = fname.split("\\") + dirs[-1] = "%s~1" % (dirs[-1][:6]) + # now we want to ensure that every parent dir is + # added since we seem to be accessing them sometimes + diter = 2 + while diter < len(dirs): + self.listmap["\\".join(dirs[:diter])] = {} + diter = diter + 1 + self.PRE_PROFILE = fname + + filename = "%s%s" % (subst, path.join(parts[1:])) + + for old_name, new_name in self.name_substitutions.items(): + if isinstance(old_name, re.Pattern): + filename = re.sub(old_name, new_name, filename) + else: + parts = filename.split(old_name) + if len(parts) >= 2: + filename = "%s%s" % (parts[0], new_name) + + return filename.strip("/\\\ \t") + + def check(self, test, file_name_index, event_source_index=None): + errors = {} + for row_key in test.keys(): + filename = self.sanitize_filename(row_key[file_name_index]) + + if filename in self.listmap: + if ( + "ignore" in self.listmap[filename] + and self.listmap[filename]["ignore"] + ): + continue + elif filename in self.dependent_libs: + continue + elif ( + event_source_index is not None + and row_key[event_source_index] in self.expected_event_sources + ): + continue + else: + if filename not in errors: + errors[filename] = [] + errors[filename].append(test[row_key]) + return errors + + def checkDuration(self, test, file_name_index, file_duration_index): + errors = {} + for idx, (row_key, row_value) in enumerate(test.items()): + if row_value[file_duration_index] > DEFAULT_DURATION: + filename = self.sanitize_filename(row_key[file_name_index]) + if ( + filename in self.listmap + and "ignoreduration" in self.listmap[filename] + ): + # we have defined in the json manifest max values + # (max found value * 2) and will ignore it + if ( + row_value[file_duration_index] + <= self.listmap[filename]["ignoreduration"] + ): + continue + + if filename not in errors: + errors[filename] = [] + errors[filename].append( + "Duration %s > %s" % (row_value[file_duration_index]), + DEFAULT_DURATION, + ) + return errors + + def filter(self, test, file_name_index): + for row_key in test.keys(): + filename = self.sanitize_filename(row_key[file_name_index]) + if filename in self.listmap: + if ( + "ignore" in self.listmap[filename] + and self.listmap[filename]["ignore"] + ): + del test[row_key] + continue + elif filename in self.dependent_libs: + del test[row_key] + continue + + @staticmethod + def get_error_strings(errors): + error_strs = [] + for filename, data in errors.items(): + for datum in data: + error_strs.append( + "File '%s' was accessed and we were not" + " expecting it: %r" % (filename, datum) + ) + return error_strs + + def print_errors(self, error_strs): + for error_msg in error_strs: + print("TEST-UNEXPECTED-FAIL | %s | %s" % (self.test_name, error_msg)) + + # Note that we don't store dependent libs in listmap. This makes + # save_baseline cleaner. Since a baseline allowlist should not include + # the dependent_libs, we would need to filter them out if everything was + # stored in the same dict. + def load_dependent_libs(self): + filename = "%s%sdependentlibs.list" % (self.paths[KEY_XRE], os.path.sep) + try: + with open(filename, "r") as f: + libs = f.readlines() + self.dependent_libs = { + "%s%s%s" % (KEY_XRE, os.path.sep, lib.strip()): {"ignore": True} + for lib in libs + } + return True + except IOError as e: + print("%s: %s" % (e.filename, e.strerror)) + return False diff --git a/testing/talos/talos/base_profile/permissions.sqlite b/testing/talos/talos/base_profile/permissions.sqlite new file mode 100644 index 0000000000..d888531d3c Binary files /dev/null and b/testing/talos/talos/base_profile/permissions.sqlite differ diff --git a/testing/talos/talos/bootstrap.js b/testing/talos/talos/bootstrap.js new file mode 100644 index 0000000000..20bd203d13 --- /dev/null +++ b/testing/talos/talos/bootstrap.js @@ -0,0 +1,60 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +/* globals initializeBrowser */ + +// PLEASE NOTE: +// +// The canonical version of this file lives in testing/talos/talos, and +// is duplicated in a number of test add-ons in directories below it. +// Please do not update one withput updating all. + +// Reads the chrome.manifest from a legacy non-restartless extension and loads +// its overlays into the appropriate top-level windows. + +const { AppConstants } = ChromeUtils.importESModule( + "resource://gre/modules/AppConstants.sys.mjs" +); +const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm"); + +const windowTracker = { + init() { + Services.ww.registerNotification(this); + }, + + async observe(window, topic, data) { + if (topic === "domwindowopened") { + await new Promise(resolve => + window.addEventListener("DOMWindowCreated", resolve, { once: true }) + ); + + let { document } = window; + let { documentURI } = document; + + if (documentURI !== AppConstants.BROWSER_CHROME_URL) { + return; + } + initializeBrowser(window); + } + }, +}; + +function readSync(uri) { + let channel = NetUtil.newChannel({ uri, loadUsingSystemPrincipal: true }); + let buffer = NetUtil.readInputStream(channel.open()); + return new TextDecoder().decode(buffer); +} + +function startup(data, reason) { + Services.scriptloader.loadSubScript( + data.resourceURI.resolve("content/initialize_browser.js") + ); + windowTracker.init(); +} + +function shutdown(data, reason) {} +function install(data, reason) {} +function uninstall(data, reason) {} diff --git a/testing/talos/talos/cmanager.py b/testing/talos/talos/cmanager.py new file mode 100644 index 0000000000..8e342c2f5a --- /dev/null +++ b/testing/talos/talos/cmanager.py @@ -0,0 +1,63 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import threading + +import mozinfo + +if mozinfo.os == "linux": + from talos.cmanager_linux import LinuxCounterManager as DefaultCounterManager +elif mozinfo.os == "win": + from talos.cmanager_win32 import WinCounterManager as DefaultCounterManager +else: # mac + from talos.cmanager_mac import MacCounterManager as DefaultCounterManager + + +class CounterManagement(object): + def __init__(self, process_name, counters, resolution): + """ + Public interface to manage counters. + + On creation, create a thread to collect counters. Call :meth:`start` + to start collecting counters with that thread. + + Be sure to call :meth:`stop` to stop the thread. + """ + assert counters + self._raw_counters = counters + self._process_name = process_name + self._counter_results = dict([(counter, []) for counter in self._raw_counters]) + + self._resolution = resolution + self._stop = threading.Event() + self._thread = threading.Thread(target=self._collect) + self._process = None + + def _collect(self): + manager = DefaultCounterManager( + self._process_name, self._process, self._raw_counters + ) + while not self._stop.wait(self._resolution): + # Get the output from all the possible counters + for count_type in self._raw_counters: + val = manager.getCounterValue(count_type) + if val: + self._counter_results[count_type].append(val) + + def start(self, process): + """ + start the counter management thread. + + :param process: a psutil.Process instance representing the browser + process. + """ + self._process = process + self._thread.start() + + def stop(self): + self._stop.set() + self._thread.join() + + def results(self): + assert not self._thread.is_alive() + return self._counter_results diff --git a/testing/talos/talos/cmanager_base.py b/testing/talos/talos/cmanager_base.py new file mode 100644 index 0000000000..2a91c8c48f --- /dev/null +++ b/testing/talos/talos/cmanager_base.py @@ -0,0 +1,28 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + + +class CounterManager(object): + + counterDict = {} + + def __init__(self): + self.allCounters = {} + self.registeredCounters = {} + + def _loadCounters(self): + """Loads all of the counters defined in the counterDict""" + for counter in self.counterDict.keys(): + self.allCounters[counter] = self.counterDict[counter] + + def registerCounters(self, counters): + """Registers a list of counters that will be monitoring. + Only counters whose names are found in allCounters will be added + """ + for counter in counters: + if counter in self.allCounters: + self.registeredCounters[counter] = [self.allCounters[counter], []] + + def getCounterValue(self, counterName): + """Returns the last value of the counter 'counterName'""" diff --git a/testing/talos/talos/cmanager_linux.py b/testing/talos/talos/cmanager_linux.py new file mode 100644 index 0000000000..c0741b2c6a --- /dev/null +++ b/testing/talos/talos/cmanager_linux.py @@ -0,0 +1,183 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import re +import subprocess + +from cmanager_base import CounterManager + + +def xrestop(binary="xrestop"): + """ + python front-end to running xrestop: + http://www.freedesktop.org/wiki/Software/xrestop + + For each monitored process, `xrestop -m 1 -b` produces output like: + + 0 - Thunderbird ( PID: 2035 ): + res_base : 0x1600000 + res_mask : 0x1fffff + windows : 69 + GCs : 35 + fonts : 1 + pixmaps : 175 + pictures : 272 + glyphsets : 73 + colormaps : 0 + passive grabs : 0 + cursors : 9 + unknowns : 42 + pixmap bytes : 4715737 + other bytes : ~13024 + total bytes : ~4728761 + """ + + process_regex = re.compile(r"([0-9]+) - (.*) \( PID: *(.*) *\):") + + args = ["-m", "1", "-b"] + command = [binary] + args + process = subprocess.Popen( + command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True + ) + stdout, stderr = process.communicate() + if process.returncode: + raise Exception( + "Unexpected error executing '%s':\n%s" + % (subprocess.list2cmdline(command), stdout) + ) + + # process output + retval = {} + index = name = pid = None + for line in stdout.strip().splitlines(): + line = line.rstrip() + match = process_regex.match(line) + if match: + index, name, pid = match.groups() + try: + pid = int(pid) + except ValueError: + # ignore processes without PIDs + index = name = pid = None + continue + index = int(index) + retval[pid] = dict(index=index, name=name) + else: + if not pid: + continue + counter, value = line.split(":", 1) + counter = counter.strip() + value = value.strip() + retval[pid][counter] = value + + return retval + + +def GetPrivateBytes(pids): + """Calculate the amount of private, writeable memory allocated to a + process. + This code was adapted from 'pmap.c', part of the procps project. + """ + privateBytes = 0 + for pid in pids: + mapfile = "/proc/%s/maps" % pid + with open(mapfile) as maps: + + private = 0 + + for line in maps: + # split up + (range, line) = line.split(" ", 1) + + (start, end) = range.split("-") + flags = line.split(" ", 1)[0] + + size = int(end, 16) - int(start, 16) + + if flags.find("p") >= 0: + if flags.find("w") >= 0: + private += size + + privateBytes += private + + return privateBytes + + +def GetResidentSize(pids): + """Retrieve the current resident memory for a given process""" + # for some reason /proc/PID/stat doesn't give accurate information + # so we use status instead + + RSS = 0 + for pid in pids: + file = "/proc/%s/status" % pid + + with open(file) as status: + + for line in status: + if line.find("VmRSS") >= 0: + RSS += int(line.split()[1]) * 1024 + + return RSS + + +def GetXRes(pids): + """Returns the total bytes used by X or raises an error if total bytes + is not available""" + XRes = 0 + xres_output = xrestop() + for pid in pids: + if pid in xres_output: + data = xres_output[pid]["total bytes"] + data = data.lstrip("~") # total bytes is like '~4728761' + try: + data = float(data) + XRes += data + except ValueError: + print("Invalid data, not a float") + raise + # Content processes generally won't use X11 after bug 1635451, + # so failing to find the process isn't an error. + return XRes + + +class LinuxCounterManager(CounterManager): + """This class manages the monitoring of a process with any number of + counters. + + A counter can be any function that takes an argument of one pid and + returns a piece of data about that process. + Some examples are: CalcCPUTime, GetResidentSize, and GetPrivateBytes + """ + + counterDict = { + "Private Bytes": GetPrivateBytes, + "RSS": GetResidentSize, + "XRes": GetXRes, + } + + def __init__(self, process_name, process, counters): + """Args: + counters: A list of counters to monitor. Any counters whose name + does not match a key in 'counterDict' will be ignored. + """ + + CounterManager.__init__(self) + self.process = process + + self._loadCounters() + self.registerCounters(counters) + + def getCounterValue(self, counterName): + """Returns the last value of the counter 'counterName'""" + try: + return self.registeredCounters[counterName][0](self.pidList()) + except Exception: + return None + + def pidList(self): + """Updates the list of PIDs we're interested in""" + try: + return [self.process.pid] + [child.pid for child in self.process.children()] + except Exception: + print("WARNING: problem updating child PID's") diff --git a/testing/talos/talos/cmanager_mac.py b/testing/talos/talos/cmanager_mac.py new file mode 100644 index 0000000000..21080c8e96 --- /dev/null +++ b/testing/talos/talos/cmanager_mac.py @@ -0,0 +1,90 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +"""CounterManager for Mac OSX""" +import subprocess +import sys + +from talos.cmanager_base import CounterManager + + +def GetProcessData(pid): + """Runs a ps on the process identified by pid and returns the output line + as a list (pid, vsz, rss) + """ + command = ["ps -o pid,vsize,rss -p" + str(pid)] + try: + handle = subprocess.Popen( + command, stdout=subprocess.PIPE, universal_newlines=True, shell=True + ) + handle.wait() + data = handle.stdout.readlines() + except Exception: + print("Unexpected error executing '%s': %s", (command, sys.exc_info())) + raise + + # First line is header output should look like: + # PID VSZ RSS + # 3210 75964 920 + line = data[1] + line = line.split() + if line[0] == str(pid): + return line + + +def GetPrivateBytes(pid): + """Calculate the amount of private, writeable memory allocated to a + process. + """ + psData = GetProcessData(pid) + return int(psData[1]) * 1024 # convert to bytes + + +def GetResidentSize(pid): + """Retrieve the current resident memory for a given process""" + psData = GetProcessData(pid) + return int(psData[2]) * 1024 # convert to bytes + + +class MacCounterManager(CounterManager): + """This class manages the monitoring of a process with any number of + counters. + + A counter can be any function that takes an argument of one pid and + returns a piece of data about that process. + Some examples are: CalcCPUTime, GetResidentSize, and GetPrivateBytes + """ + + counterDict = {"Private Bytes": GetPrivateBytes, "RSS": GetResidentSize} + + def __init__(self, process_name, process, counters): + """Args: + counters: A list of counters to monitor. Any counters whose name + does not match a key in 'counterDict' will be ignored. + """ + + CounterManager.__init__(self) + + # the last process is the useful one + self.pid = process.pid + + self._loadCounters() + self.registerCounters(counters) + + def getCounterValue(self, counterName): + """Returns the last value of the counter 'counterName'""" + if counterName not in self.registeredCounters: + print( + "Warning: attempting to collect counter %s and it is not" + " registered" % counterName + ) + return + + try: + return self.registeredCounters[counterName][0](self.pid) + except Exception as e: + print( + "Error in collecting counter: %s, pid: %s, exception: %s" + % (counterName, self.pid, e) + ) diff --git a/testing/talos/talos/cmanager_win32.py b/testing/talos/talos/cmanager_win32.py new file mode 100644 index 0000000000..84bab8743d --- /dev/null +++ b/testing/talos/talos/cmanager_win32.py @@ -0,0 +1,267 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import struct +from ctypes import ( + Structure, + Union, + byref, + c_double, + c_longlong, + create_string_buffer, + memmove, + pointer, + windll, +) +from ctypes.wintypes import DWORD, HANDLE, LONG, LPCSTR, LPCWSTR, LPSTR + +import six + +from talos.cmanager_base import CounterManager +from talos.utils import TalosError + +pdh = windll.pdh + +_LONGLONG = c_longlong + + +class _PDH_COUNTER_PATH_ELEMENTS_A(Structure): + _fields_ = [ + ("szMachineName", LPSTR), + ("szObjectName", LPSTR), + ("szInstanceName", LPSTR), + ("szParentInstance", LPSTR), + ("dwInstanceIndex", DWORD), + ("szCounterName", LPSTR), + ] + + +_PDH_MORE_DATA = -2147481646 # the need more space error + + +def _getExpandedCounterPaths(processName, counterName): + """ + Get list of expanded counter paths given a counter name. Returns a + list of strings or None, if no counter paths can be created + """ + pcchPathListLength = DWORD(0) + szWildCardPath = LPSTR("\\process(%s)\\%s" % (processName, counterName)) + if ( + pdh.PdhExpandCounterPathA( + szWildCardPath, LPSTR(None), pointer(pcchPathListLength) + ) + != _PDH_MORE_DATA + ): + return [] + + pathListLength = pcchPathListLength.value + szExpandedPathList = LPCSTR("\0" * pathListLength) + if ( + pdh.PdhExpandCounterPathA( + szWildCardPath, szExpandedPathList, pointer(pcchPathListLength) + ) + != 0 + ): + return [] + buffer = create_string_buffer(pcchPathListLength.value) + memmove(buffer, szExpandedPathList, pcchPathListLength.value) + + paths = [] + i = 0 + path = "" + for j in six.moves.range(0, pcchPathListLength.value): + c = struct.unpack_from("c", buffer, offset=j)[0] + if c == "\0": + if j == i: + # double null: we're done + break + paths.append(path) + path = "" + i = j + 1 + else: + path += c + + return paths + + +class _PDH_Counter_Union(Union): + _fields_ = [ + ("longValue", LONG), + ("doubleValue", c_double), + ("largeValue", _LONGLONG), + ("AnsiStringValue", LPCSTR), + ("WideStringValue", LPCWSTR), + ] + + +class _PDH_FMT_COUNTERVALUE(Structure): + _fields_ = [("CStatus", DWORD), ("union", _PDH_Counter_Union)] + + +_PDH_FMT_LONG = 0x00000100 + + +class WinCounterManager(CounterManager): + def __init__( + self, process_name, process, counters, childProcess="plugin-container" + ): + CounterManager.__init__(self) + self.childProcess = childProcess + self.registeredCounters = {} + self.registerCounters(counters) + # PDH might need to be "refreshed" if it has been queried while the + # browser is closed + pdh.PdhEnumObjectsA(None, None, 0, 1, 0, True) + + for counter in self.registeredCounters: + try: + # Add the counter path for the default process. + self._addCounter(process_name, "process", counter) + except TalosError: + # Assume that this is a memory counter for the system, + # not a process counter + # If we got an error that has nothing to do with that, + # the exception will almost certainly be re-raised + self._addCounter(process_name, "Memory", counter) + + self._updateCounterPathsForChildProcesses(counter) + + def _addCounter(self, processName, counterType, counterName): + pCounterPathElements = _PDH_COUNTER_PATH_ELEMENTS_A( + LPSTR(None), + LPSTR(counterType), + LPSTR(processName), + LPSTR(None), + DWORD(-1), + LPSTR(counterName), + ) + + pcchbufferSize = DWORD(0) + + # First run we just try to get the buffer size so we can allocate a + # string big enough to fill it + if ( + pdh.PdhMakeCounterPathA( + pointer(pCounterPathElements), + LPCSTR(0), + pointer(pcchbufferSize), + DWORD(0), + ) + != _PDH_MORE_DATA + ): + raise TalosError( + "Could not create counter path for counter %s for %s" + % (counterName, processName) + ) + + szFullPathBuffer = LPCSTR("\0" * pcchbufferSize.value) + # Then we run to get the actual value + if ( + pdh.PdhMakeCounterPathA( + pointer(pCounterPathElements), + szFullPathBuffer, + pointer(pcchbufferSize), + DWORD(0), + ) + != 0 + ): + raise TalosError( + "Could not create counter path for counter %s for %s" + % (counterName, processName) + ) + + path = szFullPathBuffer.value + + hq = HANDLE() + if pdh.PdhOpenQuery(None, None, byref(hq)) != 0: + raise TalosError("Could not open win32 counter query") + + hc = HANDLE() + if pdh.PdhAddCounterA(hq, path, 0, byref(hc)) != 0: + raise TalosError("Could not add win32 counter %s" % path) + + self.registeredCounters[counterName] = [hq, [(hc, path)]] + + def registerCounters(self, counters): + # self.registeredCounters[counter][0] is a counter query handle + # self.registeredCounters[counter][1] is a list of tuples, the first + # member of which is a counter handle, the second a counter path + for counter in counters: + # Main_RSS is collected inside of pageloader + if counter.strip() == "Main_RSS": + continue + + # mainthread_io is collected from the browser via environment + # variables + if counter.strip() == "mainthread_io": + continue + + self.registeredCounters[counter] = [] + + def _updateCounterPathsForChildProcesses(self, counter): + # Create a counter path for each instance of the child process that + # is running. If any of these paths are not in our counter list, + # add them to our counter query and append them to the counter list, + # so that we'll begin tracking their statistics. We don't need to + # worry about removing invalid paths from the list, as + # getCounterValue() will generate a value of 0 for those. + hq = self.registeredCounters[counter][0] + oldCounterListLength = len(self.registeredCounters[counter][1]) + + pdh.PdhEnumObjectsA(None, None, 0, 1, 0, True) + + expandedPaths = _getExpandedCounterPaths(self.childProcess, counter) + if not expandedPaths: + return + for expandedPath in expandedPaths: + alreadyInCounterList = False + for singleCounter in self.registeredCounters[counter][1]: + if expandedPath == singleCounter[1]: + alreadyInCounterList = True + if not alreadyInCounterList: + try: + newhc = HANDLE() + if pdh.PdhAddCounterA(hq, expandedPath, 0, byref(newhc)) != 0: + raise TalosError( + "Could not add expanded win32 counter %s" % expandedPath + ) + self.registeredCounters[counter][1].append((newhc, expandedPath)) + except Exception: + continue + + if oldCounterListLength != len(self.registeredCounters[counter][1]): + pdh.PdhCollectQueryData(hq) + + def getCounterValue(self, counter): + # Update counter paths, to catch any new child processes that might + # have been launched since last call. Then iterate through all + # counter paths for this counter, and return a combined value. + if counter not in self.registeredCounters: + return None + + if self.registeredCounters[counter] == []: + return None + + self._updateCounterPathsForChildProcesses(counter) + hq = self.registeredCounters[counter][0] + + # we'll just ignore the return value here, in case no counters + # are valid anymore + pdh.PdhCollectQueryData(hq) + + aggregateValue = 0 + for singleCounter in self.registeredCounters[counter][1]: + hc = singleCounter[0] + dwType = DWORD(0) + value = _PDH_FMT_COUNTERVALUE() + + # if we can't get a value, just assume a value of 0 + if ( + pdh.PdhGetFormattedCounterValue( + hc, _PDH_FMT_LONG, byref(dwType), byref(value) + ) + == 0 + ): + aggregateValue += value.union.longValue + + return aggregateValue diff --git a/testing/talos/talos/cmdline.py b/testing/talos/talos/cmdline.py new file mode 100644 index 0000000000..1ae23167d5 --- /dev/null +++ b/testing/talos/talos/cmdline.py @@ -0,0 +1,327 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. +import argparse +import os + +import six +from mozlog.commandline import add_logging_group + + +class _StopAction(argparse.Action): + def __init__( + self, + option_strings, + dest=argparse.SUPPRESS, + default=argparse.SUPPRESS, + help=None, + ): + super(_StopAction, self).__init__( + option_strings=option_strings, + dest=dest, + default=default, + nargs=0, + help=help, + ) + + +class _ListTests(_StopAction): + def __call__(self, parser, namespace, values, option_string=None): + from talos import test + + print("Available tests:") + print("================\n") + test_class_names = [ + (test_class.name(), test_class.description()) + for test_class in six.itervalues(test.test_dict()) + ] + test_class_names.sort() + for name, description in test_class_names: + print(name) + print("-" * len(name)) + print(description) + print() # Appends a single blank line to the end + parser.exit() + + +class _ListSuite(_StopAction): + def __call__(self, parser, namespace, values, option_string=None): + from talos.config import suites_conf + + print("Available suites:") + conf = suites_conf() + max_suite_name = max([len(s) for s in conf]) + pattern = " %%-%ds (%%s)" % max_suite_name + for name in conf: + print(pattern % (name, ":".join(conf[name]["tests"]))) + print() + parser.exit() + + +def create_parser(mach_interface=False): + parser = argparse.ArgumentParser() + add_arg = parser.add_argument + + if not mach_interface: + add_arg( + "-e", + "--executablePath", + required=True, + dest="browser_path", + help="path to executable we are testing", + ) + add_arg("-t", "--title", default="qm-pxp01", help="Title of the test run") + add_arg( + "--browserWait", + dest="browser_wait", + default=5, + type=int, + help="Amount of time allowed for the browser to cleanly close", + ) + add_arg( + "-a", + "--activeTests", + help="List of tests to run, separated by ':' (ex. damp:tart)", + ) + add_arg("--suite", help="Suite to use (instead of --activeTests)") + add_arg("--subtests", help="Name of the subtest(s) to run (works only on DAMP)") + add_arg( + "--mainthread", + action="store_true", + help="Collect mainthread IO data from the browser by setting" + " an environment variable", + ) + add_arg( + "--mozAfterPaint", + action="store_true", + dest="tpmozafterpaint", + help="wait for MozAfterPaint event before recording the time", + ) + add_arg( + "--firstPaint", + action="store_true", + dest="firstpaint", + help="Also report the first paint value in supported tests", + ) + add_arg( + "--useHero", + action="store_true", + dest="tphero", + help="use Hero elementtiming attribute to record the time", + ) + add_arg( + "--userReady", + action="store_true", + dest="userready", + help="Also report the user ready value in supported tests", + ) + add_arg( + "--spsProfile", + action="store_true", + dest="gecko_profile", + help="(Deprecated - Use --gecko-profile instead.) Profile the " + "run and output the results in $MOZ_UPLOAD_DIR.", + ) + add_arg( + "--spsProfileInterval", + dest="gecko_profile_interval", + type=float, + help="(Deprecated - Use --gecko-profile-interval instead.) How " + "frequently to take samples (ms)", + ) + add_arg( + "--spsProfileEntries", + dest="gecko_profile_entries", + type=int, + help="(Deprecated - Use --gecko-profile-entries instead.) How " + "many samples to take with the profiler", + ) + add_arg( + "--gecko-profile", + action="store_true", + dest="gecko_profile", + help="Profile the run and output the results in $MOZ_UPLOAD_DIR. " + "After talos is finished, profiler.firefox.com will be launched in " + "Firefox so you can analyze the local profiles. To disable " + "auto-launching of profiler.firefox.com set the " + "DISABLE_PROFILE_LAUNCH=1 env var.", + ) + add_arg( + "--gecko-profile-interval", + dest="gecko_profile_interval", + type=float, + help="How frequently to take samples (ms)", + ) + add_arg( + "--gecko-profile-entries", + dest="gecko_profile_entries", + type=int, + help="How many samples to take with the profiler", + ) + add_arg( + "--gecko-profile-features", + dest="gecko_profile_features", + type=str, + help="Comma-separated list of features to enable in the profiler", + ) + add_arg( + "--gecko-profile-threads", + dest="gecko_profile_threads", + type=str, + help="Comma-separated list of threads to sample", + ) + add_arg( + "--extension", + dest="extensions", + action="append", + default=["${talos}/talos-powers"], + help="Extension to install while running", + ) + add_arg("--fast", action="store_true", help="Run tp tests as tp_fast") + add_arg( + "--symbolsPath", + dest="symbols_path", + help="Path to the symbols for the build we are testing", + ) + add_arg("--xperf_path", help="Path to windows performance tool xperf.exe") + add_arg( + "--test_timeout", + type=int, + default=1200, + help="Time to wait for the browser to output to the log file", + ) + add_arg( + "--errorFile", + dest="error_filename", + default=os.path.abspath("browser_failures.txt"), + help="Filename to store the errors found during the test." + " Currently used for xperf only.", + ) + add_arg( + "--setpref", + action="append", + default=[], + dest="extraPrefs", + metavar="PREF=VALUE", + help="Set a browser preference. May be used multiple times.", + ) + add_arg( + "--firstNonBlankPaint", + action="store_true", + dest="fnbpaint", + help="Wait for firstNonBlankPaint event before recording the time", + ) + add_arg( + "--pdfPaint", + action="store_true", + dest="pdfpaint", + help="Wait for the first page of a PDF to be rendered", + ) + add_arg("--webServer", dest="webserver", help="DEPRECATED") + if not mach_interface: + add_arg( + "--develop", + action="store_true", + default=False, + help="useful for running tests on a developer machine." + " Doesn't upload to the graph servers.", + ) + add_arg("--cycles", type=int, help="number of browser cycles to run") + add_arg("--tpmanifest", help="manifest file to test") + add_arg("--tpcycles", type=int, help="number of pageloader cycles to run") + add_arg( + "--tptimeout", + type=int, + help="number of milliseconds to wait for a load event after" + " calling loadURI before timing out", + ) + add_arg( + "--tppagecycles", + type=int, + help="number of pageloader cycles to run for each page in" " the manifest", + ) + add_arg( + "--no-download", + action="store_true", + dest="no_download", + help="Do not download the talos test pagesets", + ) + add_arg( + "--sourcestamp", + help="Specify the hg revision or sourcestamp for the changeset" + " we are testing. This will use the value found in" + " application.ini if it is not specified.", + ) + add_arg( + "--repository", + help="Specify the url for the repository we are testing. " + "This will use the value found in application.ini if" + " it is not specified.", + ) + add_arg( + "--framework", + help="Will post to the specified framework for Perfherder. " + 'Default "talos". Used primarily for experiments on ' + "new platforms", + ) + add_arg("--print-tests", action=_ListTests, help="print available tests") + add_arg("--print-suites", action=_ListSuite, help="list available suites") + add_arg( + "--no-upload-results", + action="store_true", + dest="no_upload_results", + help="If given, it disables uploading of talos results.", + ) + add_arg( + "--profile", + type=str, + default=None, + help="Downloads a profile from TaskCluster and uses it", + ) + debug_options = parser.add_argument_group("Command Arguments for debugging") + debug_options.add_argument( + "--debug", + action="store_true", + help="Enable the debugger. Not specifying a --debugger option will" + "result in the default debugger being used.", + ) + debug_options.add_argument( + "--debugger", default=None, help="Name of debugger to use." + ) + debug_options.add_argument( + "--debugger-args", + default=None, + metavar="params", + help="Command-line arguments to pass to the debugger itself; split" + "as the Bourne shell would.", + ) + add_arg( + "--code-coverage", + action="store_true", + dest="code_coverage", + help="Remove any existing ccov gcda output files after browser" + " initialization but before starting the tests. NOTE:" + " Currently only supported in production.", + ) + add_arg( + "--disable-fission", + action="store_false", + dest="fission", + default=True, + help="Disable Fission (site isolation) in Gecko.", + ) + add_arg( + "--project", + type=str, + default="mozilla-central", + help="The project branch we're running tests on. Used for " + "disabling/skipping tests.", + ) + + add_logging_group(parser) + return parser + + +def parse_args(argv=None): + parser = create_parser() + return parser.parse_args(argv) diff --git a/testing/talos/talos/config.py b/testing/talos/talos/config.py new file mode 100644 index 0000000000..f172c92cad --- /dev/null +++ b/testing/talos/talos/config.py @@ -0,0 +1,399 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. +import copy +import os +import re +import sys + +from mozlog.commandline import setup_logging + +from talos import test, utils +from talos.cmdline import parse_args + + +class ConfigurationError(Exception): + pass + + +DEFAULTS = dict( + # args to pass to browser + extra_args=[], + buildid="testbuildid", + init_url="getInfo.html", + env={"NO_EM_RESTART": "1"}, + # base data for all tests. Note that any None here will end up converted to + # an empty string in useBaseTestDefaults. + basetest=dict( + cycles=1, + profile_path="${talos}/base_profile", + responsiveness=False, + gecko_profile=False, + gecko_profile_interval=1, + gecko_profile_entries=100000, + resolution=1, + mainthread=False, + shutdown=False, + timeout=3600, + tpchrome=True, + tpcycles=10, + tpmozafterpaint=False, + tphero=False, + pdfpaint=True, + fnbpaint=False, + firstpaint=False, + format_pagename=True, + userready=False, + testeventmap=[], + base_vs_ref=False, + tppagecycles=1, + tploadnocache=False, + tpscrolltest=False, + win_counters=[], + w7_counters=[], + linux_counters=[], + mac_counters=[], + xperf_counters=[], + setup=None, + cleanup=None, + preferences={}, + pine=True, + ), +) + + +# keys to generated self.config that are global overrides to tests +GLOBAL_OVERRIDES = ( + "cycles", + "gecko_profile", + "gecko_profile_interval", + "gecko_profile_entries", + "gecko_profile_features", + "gecko_profile_threads", + "tpcycles", + "tppagecycles", + "tpmanifest", + "tptimeout", + "tpmozafterpaint", + "tphero", + "fnbpaint", + "pdfpaint", + "firstpaint", + "userready", +) + + +CONF_VALIDATORS = [] + + +def validator(func): + """ + A decorator that register configuration validators to execute against the + configuration. + + They will be executed in the order of declaration. + """ + CONF_VALIDATORS.append(func) + return func + + +def convert_url(config, url): + webserver = config["webserver"] + if not webserver: + return url + + if "://" in url: + # assume a fully qualified url + return url + + if ".html" in url: + url = "http://%s/%s" % (webserver, url) + + return url + + +@validator +def fix_xperf(config): + # BBB: remove doubly-quoted xperf values from command line + # (needed for buildbot) + # https://bugzilla.mozilla.org/show_bug.cgi?id=704654#c43 + win7_path = "c:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe" + if config["xperf_path"]: + xperf_path = config["xperf_path"] + quotes = ('"', "'") + for quote in quotes: + if xperf_path.startswith(quote) and xperf_path.endswith(quote): + config["xperf_path"] = xperf_path[1:-1] + break + if not os.path.exists(config["xperf_path"]): + # look for old win7 path + if not os.path.exists(win7_path): + raise ConfigurationError( + "xperf.exe cannot be found at the path specified" + ) + config["xperf_path"] = win7_path + + +@validator +def set_webserver(config): + # pick a free port + import socket + + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(("", 0)) + port = sock.getsockname()[1] + sock.close() + + config["webserver"] = "127.0.0.1:%d" % port + + +@validator +def update_prefs(config): + config.setdefault("preferences", {}) + + # update prefs from command line + prefs = config.pop("extraPrefs") + if prefs: + for arg in prefs: + k, v = arg.split("=", 1) + config["preferences"][k] = utils.parse_pref(v) + + +@validator +def fix_init_url(config): + if "init_url" in config: + config["init_url"] = convert_url(config, config["init_url"]) + + +@validator +def determine_local_symbols_path(config): + if "symbols_path" not in config: + return + + # use objdir/dist/crashreporter-symbols for symbolsPath if none provided + if ( + not config["symbols_path"] + and config["develop"] + and "MOZ_DEVELOPER_OBJ_DIR" in os.environ + ): + config["symbols_path"] = os.path.join( + os.environ["MOZ_DEVELOPER_OBJ_DIR"], "dist", "crashreporter-symbols" + ) + + +def get_counters(config): + counters = set() + return counters + + +def get_active_tests(config): + activeTests = config.pop("activeTests").strip().split(":") + + # ensure tests are available + availableTests = test.test_dict() + if not set(activeTests).issubset(availableTests): + missing = [i for i in activeTests if i not in availableTests] + raise ConfigurationError("No definition found for test(s): %s" % missing) + + return activeTests + + +def get_global_overrides(config): + global_overrides = {} + for key in GLOBAL_OVERRIDES: + # get global overrides for all tests + value = config[key] + if value is not None: + global_overrides[key] = value + if key != "gecko_profile": + config.pop(key) + + return global_overrides + + +def get_test_host(manifest_line): + match = re.match(r"^http://localhost/page_load_test/tp5n/([^/]+)/", manifest_line) + host = match.group(1) + return host + "-talos" + + +def build_manifest(config, is_multidomain, manifestName): + # read manifest lines + with open(manifestName, "r") as fHandle: + manifestLines = fHandle.readlines() + + # write modified manifest lines + with open(manifestName + ".develop", "w") as newHandle: + for line in manifestLines: + new_host = get_test_host(line) if is_multidomain else config["webserver"] + newline = line.replace("localhost", new_host) + newline = newline.replace("page_load_test", "tests") + newHandle.write(newline) + + newManifestName = manifestName + ".develop" + + # return new manifest + return newManifestName + + +def get_test(config, global_overrides, counters, test_instance): + mozAfterPaint = getattr(test_instance, "tpmozafterpaint", None) + hero = getattr(test_instance, "tphero", None) + firstPaint = getattr(test_instance, "firstpaint", None) + userReady = getattr(test_instance, "userready", None) + firstNonBlankPaint = getattr(test_instance, "fnbpaint", None) + pdfPaint = getattr(test_instance, "pdfpaint", None) + + test_instance.update(**global_overrides) + + # update original value of mozAfterPaint, this could be 'false', + # so check for None + if mozAfterPaint is not None: + test_instance.tpmozafterpaint = mozAfterPaint + if firstNonBlankPaint is not None: + test_instance.fnbpaint = firstNonBlankPaint + if firstPaint is not None: + test_instance.firstpaint = firstPaint + if userReady is not None: + test_instance.userready = userReady + if hero is not None: + test_instance.tphero = hero + if pdfPaint is not None: + test_instance.pdfpaint = pdfPaint + + # fix up url + url = getattr(test_instance, "url", None) + if url: + test_instance.url = utils.interpolate(convert_url(config, url)) + + # fix up tpmanifest + tpmanifest = getattr(test_instance, "tpmanifest", None) + if tpmanifest: + is_multidomain = getattr(test_instance, "multidomain", False) + test_instance.tpmanifest = build_manifest( + config, is_multidomain, utils.interpolate(tpmanifest) + ) + + # add any counters + if counters: + keys = ( + "linux_counters", + "mac_counters", + "win_counters", + "w7_counters", + "xperf_counters", + ) + for key in keys: + if key not in test_instance.keys: + # only populate attributes that will be output + continue + if not isinstance(getattr(test_instance, key, None), list): + setattr(test_instance, key, []) + _counters = getattr(test_instance, key) + _counters.extend( + [counter for counter in counters if counter not in _counters] + ) + + return dict(test_instance.items()) + + +@validator +def tests(config): + counters = get_counters(config) + global_overrides = get_global_overrides(config) + activeTests = get_active_tests(config) + test_dict = test.test_dict() + + tests = [] + for test_name in activeTests: + test_class = test_dict[test_name] + tests.append(get_test(config, global_overrides, counters, test_class())) + config["tests"] = tests + + +def get_browser_config(config): + required = ( + "extensions", + "browser_path", + "browser_wait", + "extra_args", + "buildid", + "env", + "init_url", + "webserver", + ) + optional = { + "bcontroller_config": "${talos}/bcontroller.json", + "child_process": "plugin-container", + "debug": False, + "debugger": None, + "debugger_args": None, + "develop": False, + "fission": True, + "process": "", + "framework": "talos", + "repository": None, + "sourcestamp": None, + "symbols_path": None, + "test_timeout": 1200, + "xperf_path": None, + "error_filename": None, + "no_upload_results": False, + "subtests": None, + "preferences": {}, + } + browser_config = dict(title=config["title"]) + browser_config.update(dict([(i, config[i]) for i in required])) + browser_config.update(dict([(i, config.get(i, j)) for i, j in optional.items()])) + return browser_config + + +def suites_conf(): + import json + + with open(os.path.join(os.path.dirname(utils.here), "talos.json")) as f: + return json.load(f)["suites"] + + +def get_config(argv=None): + argv = argv or sys.argv[1:] + cli_opts = parse_args(argv=argv) + if cli_opts.suite: + # read the suite config, update the args + try: + suite_conf = suites_conf()[cli_opts.suite] + except KeyError: + raise ConfigurationError("No such suite: %r" % cli_opts.suite) + argv += ["-a", ":".join(suite_conf["tests"])] + # talos_options in the suite config should not override command line + # options, so we prepend argv with talos_options so that, when parsed, + # the command line options will clobber the suite config options. + argv = suite_conf.get("talos_options", []) + argv + # args needs to be reparsed now + elif not cli_opts.activeTests: + raise ConfigurationError("--activeTests or --suite required!") + + cli_opts = parse_args(argv=argv) + setup_logging("talos", cli_opts, {"tbpl": sys.stdout}) + config = copy.deepcopy(DEFAULTS) + config.update(cli_opts.__dict__) + for validate in CONF_VALIDATORS: + validate(config) + # remove None Values + for k, v in config.copy().items(): + if v is None: + del config[k] + return config + + +def get_configs(argv=None): + config = get_config(argv=argv) + browser_config = get_browser_config(config) + return config, browser_config + + +if __name__ == "__main__": + cfgs = get_configs() + print(cfgs[0]) + print() + print(cfgs[1]) diff --git a/testing/talos/talos/ffsetup.py b/testing/talos/talos/ffsetup.py new file mode 100644 index 0000000000..c44535a677 --- /dev/null +++ b/testing/talos/talos/ffsetup.py @@ -0,0 +1,352 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +""" +Set up a browser environment before running a test. +""" +import json +import os +import shutil +import tempfile + +import mozfile +import mozinfo +import mozrunner +import six +from mozlog import get_proxy_logger +from mozprofile.profile import Profile + +from talos import heavy, utils +from talos.gecko_profile import GeckoProfile +from talos.utils import TalosError, run_in_debug_mode + +here = os.path.abspath(os.path.dirname(__file__)) + +LOG = get_proxy_logger() + + +class FFSetup(object): + """ + Initialize the browser environment before running a test. + + This prepares: + - the environment vars for running the test in the browser, + available via the instance member *env*. + - the profile used to run the test, available via the + instance member *profile_dir*. + - Gecko profiling, available via the instance member *gecko_profile* + of type :class:`GeckoProfile` or None if not used. + + Note that the browser will be run once with the profile, to ensure + this is basically working and negate any performance noise with the + real test run (installing the profile the first time takes time). + + This class should be used as a context manager:: + + with FFSetup(browser_config, test_config) as setup: + # setup.env is initialized, and setup.profile_dir created + pass + # here the profile is removed + """ + + def __init__(self, browser_config, test_config): + self.browser_config, self.test_config = browser_config, test_config + self._tmp_dir = tempfile.mkdtemp() + self.env = None + # The profile dir must be named 'profile' because of xperf analysis + # (in etlparser.py). TODO fix that ? + self.profile_dir = os.path.join(self._tmp_dir, "profile") + self.gecko_profile = None + self.debug_mode = run_in_debug_mode(browser_config) + + @property + def profile_data_dir(self): + if "MOZ_DEVELOPER_REPO_DIR" in os.environ: + return os.path.join( + os.environ["MOZ_DEVELOPER_REPO_DIR"], "testing", "profiles" + ) + return os.path.join(here, "profile_data") + + def _init_env(self): + self.env = dict(os.environ) + for k, v in six.iteritems(self.browser_config["env"]): + self.env[k] = str(v) + self.env["MOZ_CRASHREPORTER_NO_REPORT"] = "1" + if self.browser_config["symbols_path"]: + self.env["MOZ_CRASHREPORTER"] = "1" + else: + self.env["MOZ_CRASHREPORTER_DISABLE"] = "1" + + self.env["MOZ_DISABLE_NONLOCAL_CONNECTIONS"] = "1" + + self.env["LD_LIBRARY_PATH"] = os.path.dirname( + self.browser_config["browser_path"] + ) + + def _init_profile(self): + extensions = self.browser_config["extensions"][:] + if self.test_config.get("extensions"): + extensions.extend(self.test_config["extensions"]) + + # downloading a profile instead of using the empty one + if self.test_config["profile"] is not None: + path = heavy.download_profile(self.test_config["profile"]) + self.test_config["profile_path"] = path + + profile_path = os.path.normpath(self.test_config["profile_path"]) + LOG.info("Cloning profile located at %s" % profile_path) + + def _feedback(directory, content): + # Called by shutil.copytree on each visited directory. + # Used here to display info. + # + # Returns the items that should be ignored by + # shutil.copytree when copying the tree, so always returns + # an empty list. + sub = directory.split(profile_path)[-1].lstrip("/") + if sub: + LOG.info("=> %s" % sub) + return [] + + profile = Profile.clone( + profile_path, self.profile_dir, ignore=_feedback, restore=False + ) + + # build pref interpolation context + webserver = self.browser_config["webserver"] + if "://" not in webserver: + webserver = "http://" + webserver + + interpolation = { + "webserver": webserver, + } + + # merge base profiles + with open(os.path.join(self.profile_data_dir, "profiles.json"), "r") as fh: + base_profiles = json.load(fh)["talos"] + + for name in base_profiles: + path = os.path.join(self.profile_data_dir, name) + LOG.info("Merging profile: {}".format(path)) + profile.merge(path, interpolation=interpolation) + + # set test preferences + preferences = self.browser_config.get("preferences", {}).copy() + if self.test_config.get("preferences"): + test_prefs = dict( + [ + (i, utils.parse_pref(j)) + for i, j in self.test_config["preferences"].items() + ] + ) + preferences.update(test_prefs) + + for name, value in preferences.items(): + if type(value) is str: + value = utils.interpolate(value, **interpolation) + preferences[name] = value + profile.set_preferences(preferences) + + # installing addons + LOG.info("Installing Add-ons:") + LOG.info(extensions) + profile.addons.install(extensions) + + # installing webextensions + webextensions_to_install = [] + webextensions_folder = self.test_config.get("webextensions_folder", None) + if isinstance(webextensions_folder, six.string_types): + folder = utils.interpolate(webextensions_folder) + for file in os.listdir(folder): + if file.endswith(".xpi"): + webextensions_to_install.append(os.path.join(folder, file)) + + webextensions = self.test_config.get("webextensions", None) + if isinstance(webextensions, six.string_types): + webextensions_to_install.append(webextensions) + + if webextensions_to_install is not None: + LOG.info("Installing Webextensions:") + for webext in webextensions_to_install: + filename = utils.interpolate(webext) + if mozinfo.os == "win": + filename = filename.replace("/", "\\") + if not filename.endswith(".xpi"): + continue + if not os.path.exists(filename): + continue + LOG.info(filename) + profile.addons.install(filename) + + def _run_profile(self): + runner_cls = mozrunner.runners.get( + mozinfo.info.get("appname", "firefox"), mozrunner.Runner + ) + + args = list(self.browser_config["extra_args"]) + args.append(self.browser_config["init_url"]) + + runner = runner_cls( + profile=self.profile_dir, + binary=self.browser_config["browser_path"], + cmdargs=args, + env=self.env, + ) + + runner.start(outputTimeout=30) + proc = runner.process_handler + LOG.process_start( + proc.pid, "%s %s" % (self.browser_config["browser_path"], " ".join(args)) + ) + + try: + exit_code = proc.wait() + except Exception: + proc.kill() + raise TalosError("Browser Failed to close properly during warmup") + + LOG.process_exit(proc.pid, exit_code) + + def _init_gecko_profile(self): + upload_dir = os.getenv("MOZ_UPLOAD_DIR") + if self.test_config.get("gecko_profile") and not upload_dir: + LOG.critical("Profiling ignored because MOZ_UPLOAD_DIR was not" " set") + if upload_dir and self.test_config.get("gecko_profile"): + self.gecko_profile = GeckoProfile( + upload_dir, self.browser_config, self.test_config + ) + self.gecko_profile.update_env(self.env) + + def clean(self): + try: + mozfile.remove(self._tmp_dir) + except Exception as e: + LOG.info("Exception while removing profile directory: %s" % self._tmp_dir) + LOG.info(e) + + if self.gecko_profile: + self.gecko_profile.clean() + + def collect_or_clean_ccov(self, clean=False): + # NOTE: Currently only supported when running in production + if not self.browser_config.get("develop", False): + # first see if we an find any ccov files at the ccov output dirs + if clean: + LOG.info("Cleaning ccov files before starting the talos test") + else: + LOG.info( + "Collecting ccov files that were generated during the talos test" + ) + gcov_prefix = os.getenv("GCOV_PREFIX", None) + js_ccov_dir = os.getenv("JS_CODE_COVERAGE_OUTPUT_DIR", None) + gcda_archive_folder_name = "gcda-archive" + _gcda_files_found = [] + + for _ccov_env in [gcov_prefix, js_ccov_dir]: + if _ccov_env is not None: + # ccov output dir env vars exist; now search for gcda files to remove + _ccov_path = os.path.abspath(_ccov_env) + if os.path.exists(_ccov_path): + # now walk through and look for gcda files + LOG.info("Recursive search for gcda files in: %s" % _ccov_path) + for root, dirs, files in os.walk(_ccov_path): + for next_file in files: + if next_file.endswith(".gcda"): + # don't want to move or delete files in our 'gcda-archive' + if root.find(gcda_archive_folder_name) == -1: + _gcda_files_found.append( + os.path.join(root, next_file) + ) + else: + LOG.info( + "The ccov env var path doesn't exist: %s" % str(_ccov_path) + ) + + # now clean or collect gcda files accordingly + if clean: + # remove ccov data + LOG.info( + "Found %d gcda files to clean. Deleting..." + % (len(_gcda_files_found)) + ) + for _gcda in _gcda_files_found: + try: + mozfile.remove(_gcda) + except Exception as e: + LOG.info("Exception while removing file: %s" % _gcda) + LOG.info(e) + LOG.info("Finished cleaning ccov gcda files") + else: + # copy gcda files to archive folder to be collected later + gcda_archive_top = os.path.join( + gcov_prefix, gcda_archive_folder_name, self.test_config["name"] + ) + LOG.info( + "Found %d gcda files to collect. Moving to gcda archive %s" + % (len(_gcda_files_found), str(gcda_archive_top)) + ) + if not os.path.exists(gcda_archive_top): + try: + os.makedirs(gcda_archive_top) + except OSError: + LOG.critical( + "Unable to make gcda archive folder %s" % gcda_archive_top + ) + for _gcda in _gcda_files_found: + # want to copy the existing directory strucutre but put it under archive-dir + # need to remove preceeding '/' from _gcda file name so can join the path + gcda_archive_file = os.path.join( + gcov_prefix, + gcda_archive_folder_name, + self.test_config["name"], + _gcda.strip(gcov_prefix + "//"), + ) + gcda_archive_dest = os.path.dirname(gcda_archive_file) + + # create archive folder, mirroring structure + if not os.path.exists(gcda_archive_dest): + try: + os.makedirs(gcda_archive_dest) + except OSError: + LOG.critical( + "Unable to make archive folder %s" % gcda_archive_dest + ) + # now copy the file there + try: + shutil.copy(_gcda, gcda_archive_dest) + except Exception as e: + LOG.info( + "Error copying %s to %s" + % (str(_gcda), str(gcda_archive_dest)) + ) + LOG.info(e) + LOG.info( + "Finished collecting ccov gcda files. Copied to: %s" + % gcda_archive_top + ) + + def __enter__(self): + LOG.info("Initialising browser for %s test..." % self.test_config["name"]) + self._init_env() + self._init_profile() + try: + if not self.debug_mode and not self.test_config["name"].startswith("damp"): + self._run_profile() + except BaseException: + self.clean() + raise + self._init_gecko_profile() + LOG.info("Browser initialized.") + LOG.info("Fission enabled: %s" % self.browser_config.get("fission", True)) + # remove ccov files before actual tests start + if self.browser_config.get("code_coverage", False): + # if the Firefox build was instrumented for ccov, initializing the browser + # will have caused ccov to output some gcda files; in order to have valid + # ccov data for the talos test we want to remove these files before starting + # the actual talos test(s) + self.collect_or_clean_ccov(clean=True) + return self + + def __exit__(self, type, value, tb): + self.clean() diff --git a/testing/talos/talos/filter.py b/testing/talos/talos/filter.py new file mode 100644 index 0000000000..833553139f --- /dev/null +++ b/testing/talos/talos/filter.py @@ -0,0 +1,264 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import math + +import six + +""" +data filters: +takes a series of run data and applies statistical transforms to it + +Each filter is a simple function, but it also have attached a special +`prepare` method that create a tuple with one instance of a +:class:`Filter`; this allow to write stuff like:: + + from talos import filter + filters = filter.ignore_first.prepare(1) + filter.median.prepare() + + for filter in filters: + data = filter(data) + # data is filtered +""" + +_FILTERS = {} + + +class Filter(object): + def __init__(self, func, *args, **kwargs): + """ + Takes a filter function, and save args and kwargs that + should be used when the filter is used. + """ + self.func = func + self.args = args + self.kwargs = kwargs + + def apply(self, data): + """ + Apply the filter on the data, and return the new data + """ + return self.func(data, *self.args, **self.kwargs) + + +def define_filter(func): + """ + decorator to attach the prepare method. + """ + + def prepare(*args, **kwargs): + return (Filter(func, *args, **kwargs),) + + func.prepare = prepare + return func + + +def register_filter(func): + """ + all filters defined in this module + should be registered + """ + global _FILTERS + + _FILTERS[func.__name__] = func + return func + + +def filters(*args): + global _FILTERS + + filters_ = [_FILTERS[filter] for filter in args] + return filters_ + + +def apply(data, filters): + for filter in filters: + data = filter(data) + + return data + + +def parse(string_): + def to_number(string_number): + try: + return int(string_number) + except ValueError: + return float(string_number) + + tokens = string_.split(":") + + func = tokens[0] + digits = [] + if len(tokens) > 1: + digits.extend(tokens[1].split(",")) + digits = [to_number(digit) for digit in digits] + + return [func, digits] + + +# filters that return a scalar + + +@register_filter +@define_filter +def mean(series): + """ + mean of data; needs at least one data point + """ + return sum(series) / float(len(series)) + + +@register_filter +@define_filter +def median(series): + """ + median of data; needs at least one data point + """ + series = sorted(series) + if len(series) % 2: + # odd + return series[int(len(series) / 2)] + else: + # even + middle = int(len(series) / 2) # the higher of the middle 2, actually + return 0.5 * (series[middle - 1] + series[middle]) + + +@register_filter +@define_filter +def variance(series): + """ + variance: http://en.wikipedia.org/wiki/Variance + """ + + _mean = mean(series) + variance = sum([(i - _mean) ** 2 for i in series]) / float(len(series)) + return variance + + +@register_filter +@define_filter +def stddev(series): + """ + standard deviation: http://en.wikipedia.org/wiki/Standard_deviation + """ + return variance(series) ** 0.5 + + +@register_filter +@define_filter +def dromaeo(series): + """ + dromaeo: https://wiki.mozilla.org/Dromaeo, pull the internal calculation + out + * This is for 'runs/s' based tests, not 'ms' tests. + * chunksize: defined in dromaeo: tests/dromaeo/webrunner.js#l8 + """ + means = [] + chunksize = 5 + series = list(dromaeo_chunks(series, chunksize)) + for i in series: + means.append(mean(i)) + return geometric_mean(means) + + +@register_filter +@define_filter +def dromaeo_chunks(series, size): + for i in six.moves.range(0, len(series), size): + yield series[i : i + size] + + +@register_filter +@define_filter +def geometric_mean(series): + """ + geometric_mean: http://en.wikipedia.org/wiki/Geometric_mean + """ + total = 0 + for i in series: + total += math.log(i + 1) + # pylint --py3k W1619 + return math.exp(total / len(series)) - 1 + + +# filters that return a list + + +@register_filter +@define_filter +def ignore_first(series, number=1): + """ + ignore first datapoint + """ + if len(series) <= number: + # don't modify short series + return series + return series[number:] + + +@register_filter +@define_filter +def ignore(series, function): + """ + ignore the first value of a list given by function + """ + if len(series) <= 1: + # don't modify short series + return series + series = series[:] # do not mutate the original series + value = function(series) + series.remove(value) + return series + + +@register_filter +@define_filter +def ignore_max(series): + """ + ignore maximum data point + """ + return ignore(series, max) + + +@register_filter +@define_filter +def ignore_min(series): + """ + ignore minimum data point + """ + return ignore(series, min) + + +@register_filter +@define_filter +def v8_subtest(series, name): + """ + v8 benchmark score - modified for no sub benchmarks. + * removed Crypto and kept Encrypt/Decrypt standalone + * removed EarlyBoyer and kept Earley/Boyer standalone + + this is not 100% in parity but within .3% + """ + reference = { + "Encrypt": 266181.0, + "Decrypt": 266181.0, + "DeltaBlue": 66118.0, + "Earley": 666463.0, + "Boyer": 666463.0, + "NavierStokes": 1484000.0, + "RayTrace": 739989.0, + "RegExp": 910985.0, + "Richards": 35302.0, + "Splay": 81491.0, + } + + # pylint --py3k W1619 + return reference[name] / geometric_mean(series) + + +@register_filter +@define_filter +def responsiveness_Metric(val_list): + return sum([float(x) * float(x) / 1000000.0 for x in val_list]) diff --git a/testing/talos/talos/gecko_profile.py b/testing/talos/talos/gecko_profile.py new file mode 100644 index 0000000000..e4f57d973c --- /dev/null +++ b/testing/talos/talos/gecko_profile.py @@ -0,0 +1,236 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +""" +module to handle Gecko profiling. +""" +import json +import os +import tempfile +import zipfile + +import mozfile +from mozgeckoprofiler import ProfileSymbolicator, save_gecko_profile +from mozlog import get_proxy_logger + +LOG = get_proxy_logger() + + +class GeckoProfile(object): + """ + Handle Gecko profiling. + + This allow to collect Gecko profiling data and to zip results in one file. + """ + + def __init__(self, upload_dir, browser_config, test_config): + self.upload_dir = upload_dir + self.browser_config, self.test_config = browser_config, test_config + self.cleanup = True + + # Create a temporary directory into which the tests can put + # their profiles. These files will be assembled into one big + # zip file later on, which is put into the MOZ_UPLOAD_DIR. + gecko_profile_dir = tempfile.mkdtemp() + + gecko_profile_interval = test_config.get("gecko_profile_interval", 1) + gecko_profile_entries = test_config.get("gecko_profile_entries", 1000000) + gecko_profile_features = test_config.get( + "gecko_profile_features", "js,stackwalk,cpu,screenshots" + ) + gecko_profile_threads = test_config.get( + "gecko_profile_threads", "GeckoMain,Compositor" + ) + gecko_profile_threads += ",WR,Renderer" + + # Make sure no archive already exists in the location where + # we plan to output our profiler archive + # If individual talos is ran (--activeTest) instead of suite (--suite) + # the "suite" key will be empty and we'll name the profile after + # the test name + self.profile_arcname = os.path.join( + self.upload_dir, + "profile_{0}.zip".format(test_config.get("suite", test_config["name"])), + ) + + # We delete the archive if the current test is the first in the suite + if test_config.get("is_first_test", False): + LOG.info("Clearing archive {0}".format(self.profile_arcname)) + mozfile.remove(self.profile_arcname) + + self.symbol_paths = { + "FIREFOX": tempfile.mkdtemp(), + "THUNDERBIRD": tempfile.mkdtemp(), + "WINDOWS": tempfile.mkdtemp(), + } + + LOG.info( + "Activating Gecko Profiling. Temp. profile dir:" + " {0}, interval: {1}, entries: {2}".format( + gecko_profile_dir, gecko_profile_interval, gecko_profile_entries + ) + ) + + self.profiling_info = { + "gecko_profile_interval": gecko_profile_interval, + "gecko_profile_entries": gecko_profile_entries, + "gecko_profile_dir": gecko_profile_dir, + "gecko_profile_features": gecko_profile_features, + "gecko_profile_threads": gecko_profile_threads, + } + + def option(self, name): + return self.profiling_info["gecko_profile_" + name] + + def update_env(self, env): + """ + update the given env to update some env vars if required. + """ + if not self.test_config.get("gecko_profile_startup"): + return + # Set environment variables which will cause profiling to + # start as early as possible. These are consumed by Gecko + # itself, not by Talos JS code. + env.update( + { + "MOZ_PROFILER_STARTUP": "1", + # Temporary: Don't run Base Profiler, see bug 1630448. + # TODO: Remove when fix lands in bug 1648324 or bug 1648325. + "MOZ_PROFILER_STARTUP_NO_BASE": "1", + "MOZ_PROFILER_STARTUP_INTERVAL": str(self.option("interval")), + "MOZ_PROFILER_STARTUP_ENTRIES": str(self.option("entries")), + "MOZ_PROFILER_STARTUP_FEATURES": str(self.option("features")), + "MOZ_PROFILER_STARTUP_FILTERS": str(self.option("threads")), + } + ) + + def _save_gecko_profile( + self, cycle, symbolicator, missing_symbols_zip, profile_path + ): + try: + with open(profile_path, "r", encoding="utf-8") as profile_file: + profile = json.load(profile_file) + symbolicator.dump_and_integrate_missing_symbols( + profile, missing_symbols_zip + ) + symbolicator.symbolicate_profile(profile) + save_gecko_profile(profile, profile_path) + except MemoryError: + LOG.critical( + "Ran out of memory while trying" + " to symbolicate profile {0} (cycle {1})".format(profile_path, cycle), + exc_info=True, + ) + except Exception: + LOG.critical( + "Encountered an exception during profile" + " symbolication {0} (cycle {1})".format(profile_path, cycle), + exc_info=True, + ) + + def symbolicate(self, cycle): + """ + Symbolicate Gecko profiling data for one cycle. + + :param cycle: the number of the cycle of the test currently run. + """ + symbolicator = ProfileSymbolicator( + { + # Trace-level logging (verbose) + "enableTracing": 0, + # Fallback server if symbol is not found locally + "remoteSymbolServer": "https://symbols.mozilla.org/symbolicate/v4", + # Maximum number of symbol files to keep in memory + "maxCacheEntries": 2000000, + # Frequency of checking for recent symbols to + # cache (in hours) + "prefetchInterval": 12, + # Oldest file age to prefetch (in hours) + "prefetchThreshold": 48, + # Maximum number of library versions to pre-fetch + # per library + "prefetchMaxSymbolsPerLib": 3, + # Default symbol lookup directories + "defaultApp": "FIREFOX", + "defaultOs": "WINDOWS", + # Paths to .SYM files, expressed internally as a + # mapping of app or platform names to directories + # Note: App & OS names from requests are converted + # to all-uppercase internally + "symbolPaths": self.symbol_paths, + } + ) + + if self.browser_config["symbols_path"]: + if mozfile.is_url(self.browser_config["symbols_path"]): + symbolicator.integrate_symbol_zip_from_url( + self.browser_config["symbols_path"] + ) + elif os.path.isfile(self.browser_config["symbols_path"]): + symbolicator.integrate_symbol_zip_from_file( + self.browser_config["symbols_path"] + ) + elif os.path.isdir(self.browser_config["symbols_path"]): + sym_path = self.browser_config["symbols_path"] + symbolicator.options["symbolPaths"]["FIREFOX"] = sym_path + self.cleanup = False + + missing_symbols_zip = os.path.join(self.upload_dir, "missingsymbols.zip") + + try: + mode = zipfile.ZIP_DEFLATED + except NameError: + mode = zipfile.ZIP_STORED + + gecko_profile_dir = self.option("dir") + + with zipfile.ZipFile(self.profile_arcname, "a", mode) as arc: + # Collect all individual profiles that the test + # has put into gecko_profile_dir. + for profile_filename in os.listdir(gecko_profile_dir): + testname = profile_filename + if testname.endswith(".profile"): + testname = testname[0:-8] + profile_path = os.path.join(gecko_profile_dir, profile_filename) + self._save_gecko_profile( + cycle, symbolicator, missing_symbols_zip, profile_path + ) + + # Our zip will contain one directory per subtest, + # and each subtest directory will contain one or + # more cycle_i.profile files. For example, with + # test_config['name'] == 'tscrollx', + # profile_filename == 'iframe.svg.profile', i == 0, + # we'll get path_in_zip == + # 'profile_tscrollx/iframe.svg/cycle_0.profile'. + cycle_name = "cycle_{0}.profile".format(cycle) + path_in_zip = os.path.join( + "profile_{0}".format(self.test_config["name"]), testname, cycle_name + ) + LOG.info( + "Adding profile {0} to archive {1}".format( + path_in_zip, self.profile_arcname + ) + ) + try: + arc.write(profile_path, path_in_zip) + except Exception: + LOG.exception( + "Failed to copy profile {0} as {1} to" + " archive {2}".format( + profile_path, path_in_zip, self.profile_arcname + ) + ) + # save the latest gecko profile archive to an env var, so later on + # it can be viewed automatically via the view-gecko-profile tool + os.environ["TALOS_LATEST_GECKO_PROFILE_ARCHIVE"] = self.profile_arcname + + def clean(self): + """ + Clean up temp folders created with the instance creation. + """ + mozfile.remove(self.option("dir")) + if self.cleanup: + for symbol_path in self.symbol_paths.values(): + mozfile.remove(symbol_path) diff --git a/testing/talos/talos/getInfo.html b/testing/talos/talos/getInfo.html new file mode 100644 index 0000000000..0d549b381e --- /dev/null +++ b/testing/talos/talos/getInfo.html @@ -0,0 +1,37 @@ + + + + + + + + shutdown script + + + + + + diff --git a/testing/talos/talos/getinfooffline/api.js b/testing/talos/talos/getinfooffline/api.js new file mode 100644 index 0000000000..819fd6f36f --- /dev/null +++ b/testing/talos/talos/getinfooffline/api.js @@ -0,0 +1,15 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80 filetype=javascript: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +/* globals ExtensionAPI, Services */ + +this.getinfooffline = class extends ExtensionAPI { + onStartup() { + Services.io.offline = true; + } +}; diff --git a/testing/talos/talos/getinfooffline/background.js b/testing/talos/talos/getinfooffline/background.js new file mode 100644 index 0000000000..951cc942ec --- /dev/null +++ b/testing/talos/talos/getinfooffline/background.js @@ -0,0 +1,10 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// We've run once, and hopefully bypassed any network connections that add-ons +// might have tried to make after first install. Now let's uninstall ourselves +// so that subsequent starts run in online mode. + +/* globals browser */ +browser.management.uninstallSelf({}); diff --git a/testing/talos/talos/getinfooffline/manifest.json b/testing/talos/talos/getinfooffline/manifest.json new file mode 100644 index 0000000000..f73e88095f --- /dev/null +++ b/testing/talos/talos/getinfooffline/manifest.json @@ -0,0 +1,27 @@ +{ + "manifest_version": 2, + "name": "Make the getinfo step happen offline for Talos", + "description": "Puts the browser in offline mode during the getinfo step and then uninstalls itself so that the browser runs in online mode for subsequent starts. This is useful when running startup tests that instal add-ons that like to open up network requests after being installed for the first time, which normally would cause the test runner to crash.", + "version": "0.1", + + "browser_specific_settings": { + "gecko": { + "id": "getinfooffline@mozilla.org" + } + }, + + "background": { + "scripts": ["background.js"] + }, + + "experiment_apis": { + "getinfooffline": { + "schema": "schema.json", + "parent": { + "scopes": ["addon_parent"], + "script": "api.js", + "events": ["startup"] + } + } + } +} diff --git a/testing/talos/talos/getinfooffline/schema.json b/testing/talos/talos/getinfooffline/schema.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/testing/talos/talos/getinfooffline/schema.json @@ -0,0 +1 @@ +[] diff --git a/testing/talos/talos/heavy.py b/testing/talos/talos/heavy.py new file mode 100644 index 0000000000..982a08f05a --- /dev/null +++ b/testing/talos/talos/heavy.py @@ -0,0 +1,146 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +""" +Downloads Heavy profiles from TaskCluster. +""" +import datetime +import functools +import os +import tarfile +from email.utils import parsedate + +import requests +from mozlog import get_proxy_logger +from requests.adapters import HTTPAdapter + +LOG = get_proxy_logger() +TC_LINK = ( + "https://index.taskcluster.net/v1/task/garbage.heavyprofile/" + "artifacts/public/today-%s.tgz" +) + + +class ProgressBar(object): + def __init__(self, size, template="\r%d%%"): + self.size = size + self.current = 0 + self.tens = 0 + self.template = template + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + return False + + def incr(self): + if self.current == self.size: + return + percent = float(self.current) / float(self.size) * 100 + tens, __ = divmod(percent, 10) + if tens > self.tens: + LOG.info(self.template % percent) + self.tens = tens + + self.current += 1 + + +def follow_redirects(url, max=3): + location = url + current = 0 + page = requests.head(url) + while page.status_code == 303 and current < max: + current += 1 + location = page.headers["Location"] + page = requests.head(location) + if page.status_code == 303 and current == max: + raise ValueError("Max redirects Reached") + + last_modified = page.headers.get("Last-Modified", None) + if last_modified is not None: + last_modified = datetime.datetime(*parsedate(last_modified)[:6]) + return location, last_modified + + +def _recursive_mtime(path): + max = os.path.getmtime(path) + for root, dirs, files in os.walk(path): + for element in dirs + files: + age = os.path.getmtime(os.path.join(root, element)) + if age > max: + max = age + return max + + +def profile_age(profile_dir, last_modified=None): + if last_modified is None: + last_modified = datetime.datetime.now() + + profile_ts = _recursive_mtime(profile_dir) + profile_ts = datetime.datetime.fromtimestamp(profile_ts) + return (last_modified - profile_ts).days + + +def download_profile(name, profiles_dir=None): + if profiles_dir is None: + profiles_dir = os.path.join(os.path.expanduser("~"), ".mozilla", "profiles") + profiles_dir = os.path.abspath(profiles_dir) + if not os.path.exists(profiles_dir): + os.makedirs(profiles_dir) + + target = os.path.join(profiles_dir, name) + url = TC_LINK % name + cache_dir = os.path.join(profiles_dir, ".cache") + if not os.path.exists(cache_dir): + os.makedirs(cache_dir) + + archive_file = os.path.join(cache_dir, "today-%s.tgz" % name) + + url, last_modified = follow_redirects(url) + if os.path.exists(target): + age = profile_age(target, last_modified) + if age < 7: + # profile is not older than a week, we're good + LOG.info("Local copy of %r is fresh enough" % name) + LOG.info("%d days old" % age) + return target + + LOG.info("Downloading from %r" % url) + session = requests.Session() + session.mount("https://", HTTPAdapter(max_retries=5)) + req = session.get(url, stream=True, timeout=20) + req.raise_for_status() + + total_length = int(req.headers.get("content-length")) + + # XXX implement Range to resume download on disconnects + template = "Download progress %d%%" + with open(archive_file, "wb") as f: + iter = req.iter_content(chunk_size=1024) + # pylint --py3k W1619 + size = total_length / 1024 + 1 + with ProgressBar(size=size, template=template) as bar: + for chunk in iter: + if chunk: + f.write(chunk) + bar.incr() + + LOG.info("Extracting profile in %r" % target) + template = "Extraction progress %d%%" + + with tarfile.open(archive_file, "r:gz") as tar: + LOG.info("Checking the tarball content...") + size = len(list(tar)) + with ProgressBar(size=size, template=template) as bar: + + def _extract(self, *args, **kw): + bar.incr() + return self.old(*args, **kw) + + tar.old = tar.extract + tar.extract = functools.partial(_extract, tar) + tar.extractall(target) + LOG.info("Profile downloaded.") + return target diff --git a/testing/talos/talos/mainthreadio.py b/testing/talos/talos/mainthreadio.py new file mode 100644 index 0000000000..4c3ac19913 --- /dev/null +++ b/testing/talos/talos/mainthreadio.py @@ -0,0 +1,189 @@ +# -*- Mode: python; tab-width: 8; indent-tabs-mode: nil -*- +# vim: set ts=8 sts=4 et sw=4 tw=80: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import os +import re +from collections import OrderedDict + +from talos import allowlist + +SCRIPT_DIR = os.path.abspath(os.path.realpath(os.path.dirname(__file__))) + +STAGE_STARTUP = 0 +STAGE_STRINGS = ("startup", "normal", "shutdown") + +LENGTH_IO_ENTRY = 5 +LENGTH_NEXT_STAGE_ENTRY = 2 +TOKEN_NEXT_STAGE = "NEXT-STAGE" + +INDEX_OPERATION = 1 +INDEX_DURATION = 2 +INDEX_EVENT_SOURCE = 3 +INDEX_FILENAME = 4 + +KEY_COUNT = "Count" +KEY_DURATION = "Duration" +KEY_NO_FILENAME = "(not available)" +KEY_RUN_COUNT = "RunCount" + +LEAKED_SYMLINK_PREFIX = "::\\{" + +PATH_SUBSTITUTIONS = OrderedDict( + [ + ("profile", "{profile}"), + ("firefox", "{xre}"), + ("desktop", "{desktop}"), + ("fonts", "{fonts}"), + ("appdata", " {appdata}"), + ] +) +NAME_SUBSTITUTIONS = OrderedDict( + [ + ("installtime", "{time}"), + ("prefetch", "{prefetch}"), + ("thumbnails", "{thumbnails}"), + # {appdata}\locallow\mozilla\temp-{*} + ("temp-{", "{temp}"), + ("cltbld.", "{cltbld}"), + ("windows media player", "{media_player}"), + # regex order matters + (re.compile(r"{\w{8}-\w{4}-\w{4}-\w{4}-\w{12}}"), "{uuid}"), + (re.compile(r"{uuid}\.\d+\.ver\w+\.db"), "{uuid-db}"), + ] +) + +TUPLE_EVENT_SOURCE_INDEX = 1 +TUPLE_FILENAME_INDEX = 2 +ALLOWLIST_FILENAME = os.path.join(SCRIPT_DIR, "mtio-allowlist.json") + + +def parse(logfilename, data): + try: + with open(logfilename, "r") as logfile: + if not logfile: + return False + stage = STAGE_STARTUP + for line in logfile: + prev_filename = str() + entries = line.strip().split(",") + if len(entries) == LENGTH_IO_ENTRY: + if stage == STAGE_STARTUP: + continue + if entries[INDEX_FILENAME] == KEY_NO_FILENAME: + continue + # Format 1: I/O entry + + # Temporary hack: logs are leaking Windows NT symlinks. + # We need to ignore those. + if entries[INDEX_FILENAME].startswith(LEAKED_SYMLINK_PREFIX): + continue + + # We'll key each entry on (stage, event source, + # filename, operation) + key_tuple = ( + STAGE_STRINGS[stage], + entries[INDEX_EVENT_SOURCE], + entries[INDEX_FILENAME], + entries[INDEX_OPERATION], + ) + if key_tuple not in data: + data[key_tuple] = { + KEY_COUNT: 1, + KEY_RUN_COUNT: 1, + KEY_DURATION: float(entries[INDEX_DURATION]), + } + else: + if prev_filename != entries[INDEX_FILENAME]: + data[key_tuple][KEY_RUN_COUNT] += 1 + data[key_tuple][KEY_COUNT] += 1 + data[key_tuple][KEY_DURATION] += float(entries[INDEX_DURATION]) + prev_filename = entries[INDEX_FILENAME] + elif ( + len(entries) == LENGTH_NEXT_STAGE_ENTRY + and entries[1] == TOKEN_NEXT_STAGE + ): + # Format 2: next stage + stage = stage + 1 + return True + except IOError as e: + print("%s: %s" % (e.filename, e.strerror)) + return False + + +def write_output(outfilename, data): + # Write the data out so that we can track it + try: + with open(outfilename, "w") as outfile: + outfile.write("[\n") + for idx, (key, value) in enumerate(data.items()): + output = ' ["%s", "%s", "%s", "%s", %d, %d, %f]' % ( + key[0], + key[1], + key[2], + key[3], + value[KEY_COUNT], + value[KEY_RUN_COUNT], + value[KEY_DURATION], + ) + outfile.write(output) + if idx >= 0: + outfile.write(",\n") + else: + outfile.write("\n") + outfile.write("]\n") + return True + except IOError as e: + print("%s: %s" % (e.filename, e.strerror)) + return False + + +def main(argv): + if len(argv) < 4: + print("Usage: %s " % argv[0]) + return 1 + if not os.path.exists(argv[3]): + print('XRE Path "%s" does not exist' % argv[3]) + return 1 + data = {} + if not parse(argv[1], data): + print("Log parsing failed") + return 1 + + wl = allowlist.Allowlist( + test_name="mainthreadio", + paths={"{xre}": argv[3]}, + path_substitutions=PATH_SUBSTITUTIONS, + name_substitutions=NAME_SUBSTITUTIONS, + event_sources=["PoisonIOInterposer"], + ) + if not wl.load(ALLOWLIST_FILENAME): + print("Failed to load allowlist") + return 1 + + wl.filter(data, TUPLE_FILENAME_INDEX) + + if not write_output(argv[2], data): + return 1 + + # Disabled until we enable TBPL oranges + # search for unknown filenames + errors = wl.check(data, TUPLE_FILENAME_INDEX, TUPLE_EVENT_SOURCE_INDEX) + if errors: + strs = wl.get_error_strings(errors) + wl.print_errors(strs) + + # search for duration > 1.0 + errors = wl.checkDuration(data, TUPLE_FILENAME_INDEX, "Duration") + if errors: + strs = wl.get_error_strings(errors) + wl.print_errors(strs) + + return 0 + + +if __name__ == "__main__": + import sys + + sys.exit(main(sys.argv)) diff --git a/testing/talos/talos/mtio-allowlist.json b/testing/talos/talos/mtio-allowlist.json new file mode 100644 index 0000000000..f677ad5594 --- /dev/null +++ b/testing/talos/talos/mtio-allowlist.json @@ -0,0 +1,166 @@ +{ + "c:\\program files\\nvidia corporation\\3d vision": {}, + "c:\\program files\\nvidia corporation\\3d vision\\npnv3dv.dll": {}, + "c:\\program files\\nvidia corporation\\3d vision\\npnv3dvstreaming.dll": {}, + "c:\\program files\\{media_player}": {}, + "c:\\programdata": {}, + "c:\\programdata\\microsoft": {}, + "c:\\programdata\\microsoft\\desktop.ini": {}, + "c:\\programdata\\microsoft\\windows": {}, + "c:\\users": {}, + "c:\\users\\cltbld": {}, + "c:\\users\\cltbld\\appdata": {}, + "c:\\users\\cltbld\\appdata\\local": {}, + "c:\\users\\desktop.ini": {}, + "c:\\users\\public": {}, + "c:\\users\\public\\desktop.ini": {}, + "c:\\users\\{cltbld}": {}, + "c:\\windows\\system32\\en-us\\kernelbase.dll.mui": {}, + "c:\\windows\\system32\\propsys.dll": {}, + "{appdata}": {}, + "{appdata}\\local": {}, + "{appdata}\\local\\microsoft\\windows\\caches": {}, + "{appdata}\\local\\microsoft\\windows\\caches\\cversions.1.db": {}, + "{appdata}\\local\\microsoft\\windows\\caches\\{uuid-db}": {}, + "{appdata}\\local\\temp": {}, + "{appdata}\\locallow\\mozilla": {}, + "{appdata}\\locallow\\mozilla\\{temp}": {}, + "{appdata}\\roaming": {}, + "{appdata}\\roaming\\microsoft": {}, + "{appdata}\\roaming\\microsoft\\desktop.ini": {}, + "{appdata}\\roaming\\microsoft\\windows": {}, + "{appdata}\\roaming\\mozilla": {}, + "{appdata}\\roaming\\mozilla\\extensions\\{uuid}": {}, + "{appdata}\\roaming\\mozilla\\plugins": {}, + "{appdata}\\roaming\\temp": {}, + "{desktop}\\desktop.ini": {}, + "{fonts}\\arial.ttf": {}, + "{fonts}\\arialbd.ttf": {}, + "{fonts}\\arialbi.ttf": {}, + "{fonts}\\ariali.ttf": {}, + "{fonts}\\ariblk.ttf": {}, + "{fonts}\\consola.ttf": {}, + "{fonts}\\corbel.ttf": {}, + "{fonts}\\corbelb.ttf": {}, + "{fonts}\\cour.ttf": {}, + "{fonts}\\courbd.ttf": {}, + "{fonts}\\gautami.ttf": {}, + "{fonts}\\georgia.ttf": {}, + "{fonts}\\georgiab.ttf": {}, + "{fonts}\\georgiai.ttf": {}, + "{fonts}\\georgiaz.ttf": {}, + "{fonts}\\gulim.ttc": {}, + "{fonts}\\impact.ttf": {}, + "{fonts}\\iskpota.ttf": {}, + "{fonts}\\kalinga.ttf": {}, + "{fonts}\\kartika.ttf": {}, + "{fonts}\\l_10646.ttf": {}, + "{fonts}\\latha.ttf": {}, + "{fonts}\\lucon.ttf": {}, + "{fonts}\\mangal.ttf": {}, + "{fonts}\\mangalb.ttf": {}, + "{fonts}\\meiryo.ttc": {}, + "{fonts}\\meiryob.ttc": {}, + "{fonts}\\micross.ttf": {}, + "{fonts}\\mingliu.ttc": {}, + "{fonts}\\mingliub.ttc": {}, + "{fonts}\\msgothic.ttc": {}, + "{fonts}\\msmincho.ttc": {}, + "{fonts}\\msuighur.ttf": {}, + "{fonts}\\msyh.ttf": {}, + "{fonts}\\msyhbd.ttf": {}, + "{fonts}\\pala.ttf": {}, + "{fonts}\\palab.ttf": {}, + "{fonts}\\raavi.ttf": {}, + "{fonts}\\segoeui.ttf": {}, + "{fonts}\\segoeuib.ttf": {}, + "{fonts}\\segoeuii.ttf": {}, + "{fonts}\\segoeuil.ttf": {}, + "{fonts}\\segoeuiz.ttf": {}, + "{fonts}\\seguisym.ttf": {}, + "{fonts}\\shruti.ttf": {}, + "{fonts}\\simhei.ttf": {}, + "{fonts}\\simkai.ttf": {}, + "{fonts}\\simsun.ttc": {}, + "{fonts}\\simsunb.ttf": {}, + "{fonts}\\sylfaen.ttf": {}, + "{fonts}\\tahoma.ttf": {}, + "{fonts}\\tahomabd.ttf": {}, + "{fonts}\\timesbd.ttf": {}, + "{fonts}\\timesbi.ttf": {}, + "{fonts}\\timesi.ttf": {}, + "{fonts}\\trebuc.ttf": {}, + "{fonts}\\trebucbd.ttf": {}, + "{fonts}\\trebucbi.ttf": {}, + "{fonts}\\trebucit.ttf": {}, + "{fonts}\\tunga.ttf": {}, + "{fonts}\\verdana.ttf": {}, + "{fonts}\\verdanab.ttf": {}, + "{fonts}\\verdanai.ttf": {}, + "{fonts}\\verdanaz.ttf": {}, + "{fonts}\\vrinda.ttf": {}, + "{profile}": {}, + "{profile}\\": {}, + "{profile}\\_cache_clean_": {}, + "{profile}\\addons.sqlite": {}, + "{profile}\\blocklist.xml": {}, + "{profile}\\cache2\\index": {}, + "{profile}\\cache2\\index.log": {}, + "{profile}\\cache2\\index.tmp": {}, + "{profile}\\cache\\_cache_001_": {}, + "{profile}\\cache\\_cache_002_": {}, + "{profile}\\cache\\_cache_003_": {}, + "{profile}\\cache\\_cache_map_": {}, + "{profile}\\cert8.db": {}, + "{profile}\\cookies.sqlite": {}, + "{profile}\\cookies.sqlite-journal": {}, + "{profile}\\cookies.sqlite-shm": {}, + "{profile}\\cookies.sqlite-wal": {}, + "{profile}\\extensions\\pageloader@mozilla.org": {}, + "{profile}\\extensions\\pageloader@mozilla.org\\chrome\\profiler.js": {}, + "{profile}\\extensions\\pageloader@mozilla.org\\chrome\\talos-content.js": {}, + "{profile}\\extensions\\pageloader@mozilla.org\\chrome\\tscroll.js": {}, + "{profile}\\extensions\\pageloader@mozilla.org\\install.rdf": {}, + "{profile}\\extensions\\pageloader@mozilla.org\\plugins": {}, + "{profile}\\extensions\\pageloader@mozilla.org\\searchplugins": {}, + "{profile}\\extensions\\talos-powers@mozilla.org": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\bootstrap.js": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\chrome.manifest": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\chrome\\talos-powers-content.js": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\components\\talospowersservice.js": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\install.rdf": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\plugins": {}, + "{profile}\\extensions\\talos-powers@mozilla.org\\searchplugins": {}, + "{profile}\\favicons.sqlite": {}, + "{profile}\\favicons.sqlite-journal": {}, + "{profile}\\favicons.sqlite-shm": {}, + "{profile}\\favicons.sqlite-wal": {}, + "{profile}\\key3.db": {}, + "{profile}\\places.sqlite": {}, + "{profile}\\places.sqlite-journal": {}, + "{profile}\\places.sqlite-shm": {}, + "{profile}\\places.sqlite-wal": {}, + "{profile}\\pluginreg.dat": {}, + "{profile}\\pluginreg.dat.tmp": {}, + "{profile}\\plugins": {}, + "{profile}\\prefs-1.js": {}, + "{profile}\\prefs.js": {}, + "{profile}\\searchplugins": {}, + "{profile}\\secmod.db": {}, + "{profile}\\startupcache": {}, + "{profile}\\startupcache\\startupcache.4.little": {}, + "{profile}\\telemetry.shutdowntime.txt.tmp": {}, + "{profile}\\{thumbnails}": {}, + "{xre}\\browser\\plugins": {}, + "{xre}\\browser\\searchplugins": {}, + "{xre}\\browser\\searchplugins\\amazondotcom.xml": {}, + "{xre}\\browser\\searchplugins\\bing.xml": {}, + "{xre}\\browser\\searchplugins\\ddg.xml": {}, + "{xre}\\browser\\searchplugins\\ebay.xml": {}, + "{xre}\\browser\\searchplugins\\google.xml": {}, + "{xre}\\browser\\searchplugins\\twitter.xml": {}, + "{xre}\\browser\\searchplugins\\wikipedia.xml": {}, + "{xre}\\browser\\searchplugins\\yahoo.xml": {}, + "{xre}\\distribution\\searchplugins": {}, + "{xre}\\pingsender.exe": {} +} diff --git a/testing/talos/talos/output.py b/testing/talos/talos/output.py new file mode 100644 index 0000000000..3b3b491f8b --- /dev/null +++ b/testing/talos/talos/output.py @@ -0,0 +1,355 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +"""output formats for Talos""" +# NOTE: we have a circular dependency with output.py when we import results +import simplejson as json +from mozlog import get_proxy_logger + +from talos import filter, utils + +LOG = get_proxy_logger() + + +class Output(object): + """abstract base class for Talos output""" + + @classmethod + def check(cls, urls): + """check to ensure that the urls are valid""" + + def __init__(self, results, tsresult_class): + """ + - results : TalosResults instance + - tsresult_class : Results class + """ + self.results = results + self.tsresult_class = tsresult_class + + def __call__(self): + suites = [] + test_results = { + "application": { + "name": self.results.results[0].browser_name.lower(), + "version": self.results.results[0].browser_version, + }, + "framework": { + "name": self.results.results[0].framework, + }, + "suites": suites, + } + + for test in self.results.results: + # serialize test results + tsresult = None + if not test.using_xperf: + subtests = [] + suite = { + "name": test.name(), + "extraOptions": self.results.extra_options or [], + "subtests": subtests, + "shouldAlert": test.test_config.get("suite_should_alert", True), + } + + suites.append(suite) + vals = [] + replicates = {} + + # TODO: counters!!!! we don't have any, but they suffer the same + for result in test.results: + # XXX this will not work for manifests which list + # the same page name twice. It also ignores cycles + for page, val in result.raw_values(): + if page == "NULL": + page = test.name() + if tsresult is None: + tsresult = r = self.tsresult_class() + r.results = [ + {"index": 0, "page": test.name(), "runs": val} + ] + else: + r = tsresult.results[0] + if r["page"] == test.name(): + r["runs"].extend(val) + replicates.setdefault(page, []).extend(val) + + tresults = [tsresult] if tsresult else test.results + + # Merge results for the same page when using cycle > 1 + merged_results = {} + for result in tresults: + results = [] + for r in result.results: + page = r["page"] + if page in merged_results: + merged_results[page]["runs"].extend(r["runs"]) + else: + merged_results[page] = r + results.append(r) + # override the list of page results for each run + result.results = results + + for result in tresults: + filtered_results = result.values( + suite["name"], test.test_config["filters"] + ) + vals.extend([[i["value"], j] for i, j in filtered_results]) + subtest_index = 0 + for val, page in filtered_results: + if page == "NULL": + # no real subtests + page = test.name() + subtest = { + "name": page, + "value": val["filtered"], + "replicates": replicates[page], + } + # if results are from a comparison test i.e. perf-reftest, it will also + # contain replicates for 'base' and 'reference'; we wish to keep those + # to reference; actual results were calculated as the difference of those + base_runs = result.results[subtest_index].get("base_runs", None) + ref_runs = result.results[subtest_index].get("ref_runs", None) + if base_runs and ref_runs: + subtest["base_replicates"] = base_runs + subtest["ref_replicates"] = ref_runs + + subtests.append(subtest) + subtest_index += 1 + + if test.test_config.get("lower_is_better") is not None: + subtest["lowerIsBetter"] = test.test_config[ + "lower_is_better" + ] + if test.test_config.get("alert_threshold") is not None: + subtest["alertThreshold"] = test.test_config[ + "alert_threshold" + ] + if test.test_config.get("subtest_alerts") is not None: + subtest["shouldAlert"] = test.test_config["subtest_alerts"] + if test.test_config.get("alert_threshold") is not None: + subtest["alertThreshold"] = test.test_config[ + "alert_threshold" + ] + if test.test_config.get("unit"): + subtest["unit"] = test.test_config["unit"] + + # if there is only one subtest, carry alerting setting from the suite + if len(subtests) == 1: + subtests[0]["shouldAlert"] = suite["shouldAlert"] + # if there is more than one subtest, calculate a summary result + elif len(subtests) > 1: + suite["value"] = self.construct_results(vals, testname=test.name()) + if test.test_config.get("lower_is_better") is not None: + suite["lowerIsBetter"] = test.test_config["lower_is_better"] + if test.test_config.get("alert_threshold") is not None: + suite["alertThreshold"] = test.test_config["alert_threshold"] + + # counters results_aux data + counter_subtests = [] + for cd in test.all_counter_results: + for name, vals in cd.items(): + # We want to add the xperf data as talos_counters + # exclude counters whose values are tuples (bad for + # graphserver) + if len(vals) > 0 and isinstance(vals[0], list): + continue + + # mainthread IO is a list of filenames and accesses, we do + # not report this as a counter + if "mainthreadio" in name: + continue + + # responsiveness has it's own metric, not the mean + # TODO: consider doing this for all counters + if "responsiveness" == name: + subtest = { + "name": name, + "value": filter.responsiveness_Metric(vals), + } + counter_subtests.append(subtest) + continue + + subtest = { + "name": name, + "value": 0.0, + } + counter_subtests.append(subtest) + + if test.using_xperf: + if len(vals) > 0: + subtest["value"] = vals[0] + else: + # calculate mean value + if len(vals) > 0: + varray = [float(v) for v in vals] + subtest["value"] = filter.mean(varray) + if counter_subtests: + suites.append( + { + "name": test.name(), + "extraOptions": self.results.extra_options or [], + "subtests": counter_subtests, + "shouldAlert": test.test_config.get("suite_should_alert", True), + } + ) + return test_results + + def output(self, results, results_url): + """output to the a file if results_url starts with file:// + - results : json instance + - results_url : file:// URL + """ + + # parse the results url + results_url_split = utils.urlsplit(results_url) + results_scheme, results_server, results_path, _, _ = results_url_split + + if results_scheme in ("http", "https"): + self.post(results, results_server, results_path, results_scheme) + elif results_scheme == "file": + with open(results_path, "w") as f: + for result in results: + f.write("%s\n" % result) + else: + raise NotImplementedError( + "%s: %s - only http://, https://, and file:// supported" + % (self.__class__.__name__, results_url) + ) + + # This is the output that treeherder expects to find when parsing the + # log file + if "gecko-profile" in self.results.extra_options: + LOG.info("gecko-profile enabled") + + for suite in results["suites"]: + suite["shouldAlert"] = False + for subtest in suite["subtests"]: + subtest["shouldAlert"] = False + + LOG.info("PERFHERDER_DATA: %s" % json.dumps(results, ignore_nan=True)) + + if results_scheme in ("file"): + json.dump( + results, + open(results_path, "w"), + indent=2, + sort_keys=True, + ignore_nan=True, + ) + + def post(self, results, server, path, scheme): + raise NotImplementedError("Abstract base class") + + @classmethod + def shortName(cls, name): + """short name for counters""" + names = {"% Processor Time": "%cpu", "XRes": "xres"} + return names.get(name, name) + + @classmethod + def isMemoryMetric(cls, resultName): + """returns if the result is a memory metric""" + memory_metric = ["xres"] # measured in bytes + return bool([i for i in memory_metric if i in resultName]) + + @classmethod + def v8_Metric(cls, val_list): + results = [i for i, j in val_list] + score = 100 * filter.geometric_mean(results) + return score + + @classmethod + def JS_Metric(cls, val_list): + """v8 benchmark score""" + results = [i for i, j in val_list] + return sum(results) + + @classmethod + def benchmark_score(cls, val_list): + """ + benchmark_score: ares6/jetstream self reported as 'geomean' + """ + results = [i for i, j in val_list if j == "geomean"] + return filter.mean(results) + + @classmethod + def stylebench_score(cls, val_list): + """ + stylebench_score: https://bug-172968-attachments.webkit.org/attachment.cgi?id=319888 + """ + correctionFactor = 3 + results = [i for i, j in val_list] + + # stylebench has 5 tests, each of these are made of up 5 subtests + # + # * Adding classes. + # * Removing classes. + # * Mutating attributes. + # * Adding leaf elements. + # * Removing leaf elements. + # + # which are made of two subtests each (sync/async) and repeated 5 times + # each, thus, the list here looks like: + # + # [Test name/Adding classes - 0/ Sync; ] + # [Test name/Adding classes - 0/ Async; ] + # [Test name/Adding classes - 0; + ] + # [Test name/Removing classes - 0/ Sync; ] + # [Test name/Removing classes - 0/ Async; ] + # [Test name/Removing classes - 0; + ] + # ... + # [Test name/Adding classes - 1 / Sync; ] + # [Test name/Adding classes - 1 / Async; ] + # [Test name/Adding classes - 1 ; + ] + # ... + # [Test name/Removing leaf elements - 4; + ] + # [Test name; ] <- This is what we want. + # + # So, 5 (subtests) * + # 5 (repetitions) * + # 3 (entries per repetition (sync/async/sum)) = + # 75 entries for test before the sum. + # + # We receive 76 entries per test, which ads up to 380. We want to use + # the 5 test entries, not the rest. + if len(results) != 380: + raise Exception( + "StyleBench requires 380 entries, found: %s instead" % len(results) + ) + + results = results[75::76] + # pylint --py3k W1619 + score = 60 * 1000 / filter.geometric_mean(results) / correctionFactor + return score + + @classmethod + def damp_score(cls, val_list): + """ + damp_score: damp is only interested in the value of subtests and will + aggregate data from several suites. + Use a hardcoded value for the suite to avoid inconsistencies. + """ + return 100 + + def construct_results(self, vals, testname): + if "responsiveness" in testname: + return filter.responsiveness_Metric([val for (val, page) in vals]) + elif testname.startswith("v8_7"): + return self.v8_Metric(vals) + elif testname.startswith("kraken"): + return self.JS_Metric(vals) + elif testname.startswith("ares6"): + return self.benchmark_score(vals) + elif testname.startswith("jetstream"): + return self.benchmark_score(vals) + elif testname.startswith("speedometer"): + return self.speedometer_score(vals) + elif testname.startswith("stylebench"): + return self.stylebench_score(vals) + elif testname.startswith("damp"): + return self.damp_score(vals) + elif len(vals) > 1: + return filter.geometric_mean([i for i, j in vals]) + else: + return filter.mean([i for i, j in vals]) diff --git a/testing/talos/talos/pageloader/README b/testing/talos/talos/pageloader/README new file mode 100644 index 0000000000..0035138b11 --- /dev/null +++ b/testing/talos/talos/pageloader/README @@ -0,0 +1,63 @@ +Pageload Test Component +======================= + +Pageloader tests are defined by tp.manifest, the location of which is +provided in the preference talos.tpmanifest. If that preference is not +set (ie, for startup tests), this extension has no effect. + + +Manifest file format +==================== + +Comments in the manifest file start with a #. Each line may be: + +* a URL (absolute or relative to the manifest) + +This URL is added to the list of tests. + +* one or more flags, followed by whitespace, followed by a URL + +The only flag supported currently is '%', which indicates that +a test will do its own timing. (See Self-timing Tests below.) + +* "include" followed by whitespace, followed by a URL + +Parse the given manifest file. + +Self-timing Tests +================= + +Most timing tests are interested in timing how long it takes the page +to load; that is, from the start of page loading until the 'load' +event is dispatched. By default, this is what the pageloader will +time. However, if a test URL has the % flag, the test is expected to +report its own timing. For this purpose, the pageloader will provide +a function named "tpRecordTime" in the test's global object that it +should call once it has performed whatever timing it wants to do. +The given value will be used as the timing result for this test. + +Output format +============= + +The result is a dump to stdout via dump() -- +browser.dom.window.dump.enabled must be set to true in the profile. + +Sample output: + +__start_tp_report +_x_x_mozilla_page_load,778.5,NaN,NaN +_x_x_mozilla_page_load_details,avgmedian|778.5|average|766.75|minimum|NaN|maximum|NaN|stddev|NaN|0;file:///c:/proj/mozilla-cvs/perf/tp2/base/www.cnn.com/index.html;778.5;766.75;722;1027;1027;788;777;722;780|... +__end_tp_report + +Note that the minimum, maximum, stddev are not calculated; they're +always reported as NaN. (They were the minimum and maximum values of +any sampled value, and the standard deviation across all sampled +values -- not very useful.) + +TODO +==== + +* Command line option to choose whether to run with or without browser chrome. Currently runs without. + +* Tinderbox-dropping style output + * better yet would be to teach tinderbox about JSON diff --git a/testing/talos/talos/pageloader/api.js b/testing/talos/talos/pageloader/api.js new file mode 100644 index 0000000000..7a88d0e62c --- /dev/null +++ b/testing/talos/talos/pageloader/api.js @@ -0,0 +1,136 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is DOM Inspector. + * + * The Initial Developer of the Original Code is + * Christopher A. Aillon . + * Portions created by the Initial Developer are Copyright (C) 2003 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Christopher A. Aillon + * L. David Baron, Mozilla Corporation (modified for reftest) + * Vladimir Vukicevic, Mozilla Corporation (modified for tp) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* globals AppConstants, Services, XPCOMUtils */ + +const { setTimeout } = ChromeUtils.importESModule( + "resource://gre/modules/Timer.sys.mjs" +); + +XPCOMUtils.defineLazyServiceGetter( + this, + "aomStartup", + "@mozilla.org/addons/addon-manager-startup;1", + "amIAddonManagerStartup" +); + +async function talosStart() { + // Tests are driven from pageloader.xhtml. We need to be careful to open + // pageloader.xhtml before dismissing the default browser window or we + // may inadvertently cause the browser to exit before the pageloader.xhtml + // window is opened. Start by finding or waiting for the default window. + let defaultWin = Services.wm.getMostRecentWindow("navigator:browser"); + if (!defaultWin) { + defaultWin = await new Promise(resolve => { + const listener = { + onOpenWindow(win) { + if ( + win.docShell.domWindow.location.href == + AppConstants.BROWSER_CHROME_URL + ) { + Services.wm.removeListener(listener); + resolve(win); + } + }, + }; + Services.wm.addListener(listener); + }); + } + + // Wwe've got the default window, it is time for pageloader to take over. + // Open pageloader.xhtml in a new window and then close the default window. + let chromeURL = "chrome://pageloader/content/pageloader.xhtml"; + + let args = {}; + args.wrappedJSObject = args; + let newWin = Services.ww.openWindow( + null, + chromeURL, + "_blank", + "chrome,dialog=no,all", + args + ); + + await new Promise(resolve => { + newWin.addEventListener("load", resolve); + }); + defaultWin.close(); +} + +/* globals ExtensionAPI */ +this.pageloader = class extends ExtensionAPI { + onStartup() { + const manifestURI = Services.io.newURI( + "manifest.json", + null, + this.extension.rootURI + ); + this.chromeHandle = aomStartup.registerChrome(manifestURI, [ + ["content", "pageloader", "chrome/"], + ]); + + if (Services.env.exists("MOZ_USE_PAGELOADER")) { + // TalosPowers is a separate WebExtension that may or may not already have + // finished loading. tryLoad is used to wait for TalosPowers to be around + // before continuing. + async function tryLoad() { + try { + ChromeUtils.importESModule( + "resource://talos-powers/TalosParentProfiler.sys.mjs" + ); + } catch (err) { + await new Promise(resolve => setTimeout(resolve, 500)); + return tryLoad(); + } + + return null; + } + + // talosStart is async but we're deliberately not await-ing or return-ing + // it here since it doesn't block extension startup. + tryLoad().then(() => { + talosStart(); + }); + } + } + + onShutdown() { + this.chromeHandle.destruct(); + } +}; diff --git a/testing/talos/talos/pageloader/chrome/MozillaFileLogger.js b/testing/talos/talos/pageloader/chrome/MozillaFileLogger.js new file mode 100644 index 0000000000..3da728ef67 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/MozillaFileLogger.js @@ -0,0 +1,95 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * MozillaFileLogger, a log listener that can write to a local file. + */ + +// double logging to account for normal mode and ipc mode (mobile_profile only) +// Ideally we would remove the dump() and just do ipc logging +function dumpLog(msg) { + dump(msg); + MozillaFileLogger.log(msg); +} + +const FOSTREAM_CID = "@mozilla.org/network/file-output-stream;1"; +const LF_CID = "@mozilla.org/file/local;1"; + +// File status flags. It is a bitwise OR of the following bit flags. +// Only one of the first three flags below may be used. +const PR_READ_ONLY = 0x01; // Open for reading only. +const PR_WRITE_ONLY = 0x02; // Open for writing only. +const PR_READ_WRITE = 0x04; // Open for reading and writing. + +// If the file does not exist, the file is created. +// If the file exists, this flag has no effect. +const PR_CREATE_FILE = 0x08; + +// The file pointer is set to the end of the file prior to each write. +const PR_APPEND = 0x10; + +// If the file exists, its length is truncated to 0. +const PR_TRUNCATE = 0x20; + +// If set, each write will wait for both the file data +// and file status to be physically updated. +const PR_SYNC = 0x40; + +// If the file does not exist, the file is created. If the file already +// exists, no action and NULL is returned. +const PR_EXCL = 0x80; + +/** Init the file logger with the absolute path to the file. + It will create and append if the file already exists **/ +var MozillaFileLogger = {}; + +MozillaFileLogger.init = function (path) { + MozillaFileLogger._file = Cc[LF_CID].createInstance(Ci.nsIFile); + MozillaFileLogger._file.initWithPath(path); + MozillaFileLogger._foStream = Cc[FOSTREAM_CID].createInstance( + Ci.nsIFileOutputStream + ); + MozillaFileLogger._foStream.init( + this._file, + PR_WRITE_ONLY | PR_CREATE_FILE | PR_APPEND, + 0o664, + 0 + ); +}; + +MozillaFileLogger.getLogCallback = function () { + return function (msg) { + var data = msg.num + " " + msg.level + " " + msg.info.join(" ") + "\n"; + if (MozillaFileLogger._foStream) { + MozillaFileLogger._foStream.write(data, data.length); + } + + if (data.includes("SimpleTest FINISH")) { + MozillaFileLogger.close(); + } + }; +}; + +// This is only used from chrome space by the reftest harness +MozillaFileLogger.log = function (msg) { + try { + if (MozillaFileLogger._foStream) { + MozillaFileLogger._foStream.write(msg, msg.length); + } + } catch (ex) {} +}; + +MozillaFileLogger.close = function () { + if (MozillaFileLogger._foStream) { + MozillaFileLogger._foStream.close(); + } + + MozillaFileLogger._foStream = null; + MozillaFileLogger._file = null; +}; + +try { + var filename = Services.prefs.getCharPref("talos.logfile"); + MozillaFileLogger.init(filename); +} catch (ex) {} // pref does not exist, return empty string diff --git a/testing/talos/talos/pageloader/chrome/Profiler.js b/testing/talos/talos/pageloader/chrome/Profiler.js new file mode 100644 index 0000000000..da7e66c0fc --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/Profiler.js @@ -0,0 +1,206 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +// - NOTE: This file is duplicated verbatim at: +// - talos/pageloader/chrome/Profiler.js +// - talos/tests/tart/addon/content/Profiler.js +// - talos/startup_test/tresize/addon/content/Profiler.js +// +// - Please keep these copies in sync. +// - Please make sure your changes apply cleanly to all use cases. + +// Finer grained profiler control +// +// Use this object to pause and resume the profiler so that it only profiles the +// relevant parts of our tests. +var Profiler; + +(function () { + var _profiler; + + // If this script is loaded in a framescript context, there won't be a + // document object, so just use a fallback value in that case. + var test_name = this.document ? this.document.location.pathname : "unknown"; + + // Whether Profiler has been initialized. Until that happens, most calls + // will be ignored. + var enabled = false; + + // The subtest name that beginTest() was called with. + var currentTest = ""; + + // Profiling settings. + var profiler_interval, + profiler_entries, + profiler_threadsArray, + profiler_featuresArray, + profiler_dir; + + try { + // eslint-disable-next-line mozilla/use-services + _profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler); + } catch (ex) { + (typeof dumpLog == "undefined" ? dump : dumpLog)(ex + "\n"); + } + + // Parses an url query string into a JS object. + function searchToObject(locationSearch) { + var pairs = locationSearch.substring(1).split("&"); + var result = {}; + + for (var i in pairs) { + if (pairs[i] !== "") { + var pair = pairs[i].split("="); + result[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ""); + } + } + + return result; + } + + Profiler = { + /** + * Initialize the profiler using profiler settings supplied in a JS object. + * The following properties on the object are respected: + * - gecko_profile_interval + * - gecko_profile_entries + * - gecko_profile_features + * - gecko_profile_threads + * - gecko_profile_dir + */ + initFromObject: function Profiler__initFromObject(obj) { + if ( + obj && + "gecko_profile_dir" in obj && + typeof obj.gecko_profile_dir == "string" && + "gecko_profile_interval" in obj && + Number.isFinite(obj.gecko_profile_interval * 1) && + "gecko_profile_entries" in obj && + Number.isFinite(obj.gecko_profile_entries * 1) && + "gecko_profile_features" in obj && + typeof obj.gecko_profile_features == "string" && + "gecko_profile_threads" in obj && + typeof obj.gecko_profile_threads == "string" + ) { + profiler_interval = obj.gecko_profile_interval; + profiler_entries = obj.gecko_profile_entries; + profiler_featuresArray = obj.gecko_profile_features.split(","); + profiler_threadsArray = obj.gecko_profile_threads.split(","); + profiler_dir = obj.gecko_profile_dir; + enabled = true; + } + }, + initFromURLQueryParams: function Profiler__initFromURLQueryParams( + locationSearch + ) { + this.initFromObject(searchToObject(locationSearch)); + }, + beginTest: function Profiler__beginTest(testName) { + currentTest = testName; + if (_profiler && enabled) { + _profiler.StartProfiler( + profiler_entries, + profiler_interval, + profiler_featuresArray, + profiler_threadsArray + ); + _profiler.PauseSampling(); + } + }, + finishTest: function Profiler__finishTest() { + if (_profiler && enabled) { + _profiler.Pause(); + _profiler.dumpProfileToFile( + profiler_dir + "/" + currentTest + ".profile" + ); + _profiler.StopProfiler(); + } + }, + finishTestAsync: function Profiler__finishTest() { + if (!(_profiler && enabled)) { + return undefined; + } + return new Promise((resolve, reject) => { + Services.profiler.getProfileDataAsync().then( + profile => { + let profileFile = profiler_dir + "/" + currentTest + ".profile"; + + const { NetUtil } = ChromeUtils.import( + "resource://gre/modules/NetUtil.jsm" + ); + const { FileUtils } = ChromeUtils.importESModule( + "resource://gre/modules/FileUtils.sys.mjs" + ); + + var file = Cc["@mozilla.org/file/local;1"].createInstance( + Ci.nsIFile + ); + file.initWithPath(profileFile); + + var ostream = FileUtils.openSafeFileOutputStream(file); + + var converter = Cc[ + "@mozilla.org/intl/scriptableunicodeconverter" + ].createInstance(Ci.nsIScriptableUnicodeConverter); + converter.charset = "UTF-8"; + var istream = converter.convertToInputStream( + JSON.stringify(profile) + ); + + // The last argument (the callback) is optional. + NetUtil.asyncCopy(istream, ostream, function (status) { + if (!Components.isSuccessCode(status)) { + reject(); + return; + } + + resolve(); + }); + }, + error => { + console.error("Failed to gather profile: " + error); + reject(); + } + ); + }); + }, + finishStartupProfiling: function Profiler__finishStartupProfiling() { + if (_profiler && enabled) { + _profiler.Pause(); + _profiler.dumpProfileToFile(profiler_dir + "/startup.profile"); + _profiler.StopProfiler(); + } + }, + resume: function Profiler__resume(name, explicit) { + if (_profiler) { + if (_profiler.ResumeSampling) { + _profiler.ResumeSampling(); + } + ChromeUtils.addProfilerMarker( + explicit ? name : 'Start of test "' + (name || test_name) + '"', + { category: "Test" } + ); + } + }, + pause: function Profiler__pause(name, explicit) { + if (_profiler) { + ChromeUtils.addProfilerMarker( + explicit ? name : 'End of test "' + (name || test_name) + '"', + { category: "Test" } + ); + _profiler.PauseSampling(); + } + }, + mark: function Profiler__mark(marker, explicit) { + if (_profiler) { + ChromeUtils.addProfilerMarker( + explicit ? marker : 'Profiler: "' + (marker || test_name) + '"', + { category: "Test" } + ); + } + }, + }; +})(); diff --git a/testing/talos/talos/pageloader/chrome/a11y.js b/testing/talos/talos/pageloader/chrome/a11y.js new file mode 100644 index 0000000000..3541076ee7 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/a11y.js @@ -0,0 +1,66 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +(function () { + let gAccService = 0; + + function initAccessibility() { + if (!gAccService) { + var service = Cc["@mozilla.org/accessibilityService;1"]; + if (service) { + // fails if build lacks accessibility module + gAccService = Cc["@mozilla.org/accessibilityService;1"].getService( + Ci.nsIAccessibilityService + ); + } + } + return !!gAccService; + } + + function getAccessible(aNode) { + try { + return gAccService.getAccessibleFor(aNode); + } catch (e) {} + + return null; + } + + function ensureAccessibleTreeForNode(aNode) { + var acc = getAccessible(aNode); + + ensureAccessibleTreeForAccessible(acc); + } + + function ensureAccessibleTreeForAccessible(aAccessible) { + var child = aAccessible.firstChild; + while (child) { + ensureAccessibleTreeForAccessible(child); + try { + child = child.nextSibling; + } catch (e) { + child = null; + } + } + } + + // Walk accessible tree of the given identifier to ensure tree creation + function ensureAccessibleTreeForId(aID) { + var node = content.document.getElementById(aID); + if (!node) { + return; + } + ensureAccessibleTreeForNode(node); + } + + addEventListener("DOMContentLoaded", e => { + Cu.exportFunction(initAccessibility, content, { + defineAs: "initAccessibility", + }); + Cu.exportFunction(ensureAccessibleTreeForId, content, { + defineAs: "ensureAccessibleTreeForId", + }); + }); +})(); diff --git a/testing/talos/talos/pageloader/chrome/lh_dummy.js b/testing/talos/talos/pageloader/chrome/lh_dummy.js new file mode 100644 index 0000000000..134efd4ef1 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/lh_dummy.js @@ -0,0 +1,11 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +function _dummy() { + sendAsyncMessage("PageLoader:LoadEvent", {}); +} + +addEventListener("load", contentLoadHandlerCallback(_dummy), true); // eslint-disable-line no-undef diff --git a/testing/talos/talos/pageloader/chrome/lh_fnbpaint.js b/testing/talos/talos/pageloader/chrome/lh_fnbpaint.js new file mode 100644 index 0000000000..5ef0066ad2 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/lh_fnbpaint.js @@ -0,0 +1,45 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +var gErr = + "Abort: firstNonBlankPaint value is not available after loading the page"; +var gRetryCounter = 0; + +function _contentFNBPaintHandler() { + var x = content.window.performance.timing.timeToNonBlankPaint; + if (typeof x == "undefined") { + sendAsyncMessage("PageLoader:Error", { msg: gErr }); + } + if (x > 0) { + dump("received fnbpaint value\n"); + sendAsyncMessage("PageLoader:LoadEvent", { time: x, name: "fnbpaint" }); + gRetryCounter = 0; + } else { + gRetryCounter += 1; + if (gRetryCounter <= 10) { + dump( + "\nfnbpaint is not yet available (0), retry number " + + gRetryCounter + + "...\n" + ); + content.setTimeout(_contentFNBPaintHandler, 100); + } else { + dump( + "\nunable to get a value for fnbpaint after " + + gRetryCounter + + " retries\n" + ); + sendAsyncMessage("PageLoader:Error", { msg: gErr }); + } + } +} + +addEventListener( + "load", + // eslint-disable-next-line no-undef + contentLoadHandlerCallback(_contentFNBPaintHandler), + true +); diff --git a/testing/talos/talos/pageloader/chrome/lh_hero.js b/testing/talos/talos/pageloader/chrome/lh_hero.js new file mode 100644 index 0000000000..6705b6d53c --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/lh_hero.js @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +function _contentHeroHandler(isload) { + var obs = null; + var el = content.window.document.querySelector("[elementtiming]"); + if (el) { + function callback(entries, observer) { + entries.forEach(entry => { + sendAsyncMessage("PageLoader:LoadEvent", { + time: content.window.performance.now(), + name: "tphero", + }); + obs.disconnect(); + }); + } + // we want the element 100% visible on the viewport + var options = { root: null, rootMargin: "0px", threshold: [1] }; + try { + obs = new content.window.IntersectionObserver(callback, options); + obs.observe(el); + } catch (err) { + sendAsyncMessage("PageLoader:Error", { msg: err.message }); + } + } else if (isload) { + // If the hero element is added from a settimeout handler, it might not run before 'load' + content.setTimeout(function () { + _contentHeroHandler(false); + }, 5000); + } else { + var err = "Could not find a tag with an elmenttiming attr on the page"; + sendAsyncMessage("PageLoader:Error", { msg: err }); + } + return obs; +} + +function _contentHeroLoadHandler() { + _contentHeroHandler(true); +} + +addEventListener( + "load", + // eslint-disable-next-line no-undef + contentLoadHandlerCallback(_contentHeroLoadHandler), + true +); diff --git a/testing/talos/talos/pageloader/chrome/lh_moz.js b/testing/talos/talos/pageloader/chrome/lh_moz.js new file mode 100644 index 0000000000..46d4a74a7c --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/lh_moz.js @@ -0,0 +1,28 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +function _contentPaintHandler() { + var utils = content.windowUtils; + if (utils.isMozAfterPaintPending) { + addEventListener( + "MozAfterPaint", + function afterpaint(e) { + removeEventListener("MozAfterPaint", afterpaint, true); + sendAsyncMessage("PageLoader:LoadEvent", {}); + }, + true + ); + } else { + sendAsyncMessage("PageLoader:LoadEvent", {}); + } +} + +addEventListener( + "load", + // eslint-disable-next-line no-undef + contentLoadHandlerCallback(_contentPaintHandler), + true +); diff --git a/testing/talos/talos/pageloader/chrome/lh_pdfpaint.js b/testing/talos/talos/pageloader/chrome/lh_pdfpaint.js new file mode 100644 index 0000000000..0f1eff6da9 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/lh_pdfpaint.js @@ -0,0 +1,26 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +function _pdfPaintHandler() { + content.window.addEventListener( + "pagerendered", + e => { + if (e.detail.pageNumber !== 1) { + sendAsyncMessage("PageLoader:Error", { + msg: `Error: Expected page 1 got ${e.detail.pageNumber}`, + }); + return; + } + sendAsyncMessage("PageLoader:LoadEvent", { + time: e.detail.timestamp, + name: "pdfpaint", + }); + }, + { once: true } + ); +} + +addEventListener("DOMContentLoaded", _pdfPaintHandler, true); diff --git a/testing/talos/talos/pageloader/chrome/pageloader.js b/testing/talos/talos/pageloader/chrome/pageloader.js new file mode 100644 index 0000000000..19043a01a8 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/pageloader.js @@ -0,0 +1,1114 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* import-globals-from report.js */ + +var { AppConstants } = ChromeUtils.importESModule( + "resource://gre/modules/AppConstants.sys.mjs" +); +var { E10SUtils } = ChromeUtils.importESModule( + "resource://gre/modules/E10SUtils.sys.mjs" +); +ChromeUtils.defineESModuleGetters(this, { + TalosParentProfiler: "resource://talos-powers/TalosParentProfiler.sys.mjs", +}); + +var NUM_CYCLES = 5; +var numPageCycles = 1; + +var numRetries = 0; +var maxRetries = 3; + +var pageFilterRegexp = null; +var winWidth = 1024; +var winHeight = 768; + +var pages; +var pageIndex; +var start_time; +var cycle; +var pageCycle; +var report; +var timeout = -1; +var delay = 250; +var running = false; +var forceCC = true; + +var useMozAfterPaint = false; +var useFNBPaint = false; +var isFNBPaintPending = false; +var usePDFPaint = false; +var isPDFPaintPending = false; +var useHero = false; +var gPaintWindow = window; +var gPaintListener = false; +var loadNoCache = false; +var scrollTest = false; +var profilingInfo = false; +var baseVsRef = false; +var useBrowserChrome = false; +var useA11y = false; + +var isIdleCallbackPending = false; + +// when TEST_DOES_OWN_TIMING, we need to store the time from the page as MozAfterPaint can be slower than pageload +var gTime = -1; +var gStartTime = -1; +var gReference = -1; + +var gBrowser; + +// These are binary flags. Use 1/2/4/8/... +var TEST_DOES_OWN_TIMING = 1; +var EXECUTE_SCROLL_TEST = 2; + +var browserWindow = null; + +var recordedName = null; +var pageUrls; + +/** + * SingleTimeout class. Allow to register one and only one callback using + * setTimeout at a time. + */ +var SingleTimeout = function () { + this.timeoutEvent = undefined; +}; + +/** + * Register a callback with the given timeout. + * + * If timeout is < 0, this is a no-op. + * + * If a callback was previously registered and has not been called yet, it is + * first cleared with clear(). + */ +SingleTimeout.prototype.register = function (callback, timeout) { + if (timeout >= 0) { + if (this.timeoutEvent !== undefined) { + this.clear(); + } + var that = this; + this.timeoutEvent = setTimeout(function () { + that.timeoutEvent = undefined; + callback(); + }, timeout); + } +}; + +/** + * Clear a registered callback. + */ +SingleTimeout.prototype.clear = function () { + if (this.timeoutEvent !== undefined) { + clearTimeout(this.timeoutEvent); + this.timeoutEvent = undefined; + } +}; + +var failTimeout = new SingleTimeout(); + +async function plInit() { + if (running) { + return; + } + running = true; + + cycle = 0; + pageCycle = 1; + + try { + /* + * Desktop firefox: + * non-chrome talos runs - tp-cmdline will create and load pageloader + * into the main window of the app which displays and tests content. + * chrome talos runs - tp-cmdline does the same however pageloader + * creates a new chromed browser window below for content. + */ + + var manifestURI = Services.prefs.getCharPref("talos.tpmanifest", null); + if (manifestURI.length == null) { + dumpLine("tp abort: talos.tpmanifest browser pref is not set"); + plStop(true); + } + + NUM_CYCLES = Services.prefs.getIntPref("talos.tpcycles", 1); + numPageCycles = Services.prefs.getIntPref("talos.tppagecycles", 1); + timeout = Services.prefs.getIntPref("talos.tptimeout", -1); + useMozAfterPaint = Services.prefs.getBoolPref( + "talos.tpmozafterpaint", + false + ); + useHero = Services.prefs.getBoolPref("talos.tphero", false); + useFNBPaint = Services.prefs.getBoolPref("talos.fnbpaint", false); + usePDFPaint = Services.prefs.getBoolPref("talos.pdfpaint", false); + loadNoCache = Services.prefs.getBoolPref("talos.tploadnocache", false); + scrollTest = Services.prefs.getBoolPref("talos.tpscrolltest", false); + useBrowserChrome = Services.prefs.getBoolPref("talos.tpchrome", false); + useA11y = Services.prefs.getBoolPref("talos.a11y", false); + + // for pageloader tests the profiling info is found in an env variable + // because it is not available early enough to set it as a browser pref + if (Services.env.exists("TPPROFILINGINFO")) { + profilingInfo = Services.env.get("TPPROFILINGINFO"); + if (profilingInfo !== null) { + TalosParentProfiler.initFromObject(JSON.parse(profilingInfo)); + } + } + + if (forceCC && !window.windowUtils.garbageCollect) { + forceCC = false; + } + + var fileURI = Services.io.newURI(manifestURI); + pages = plLoadURLsFromURI(fileURI); + + if (!pages) { + dumpLine("tp: could not load URLs, quitting"); + plStop(true); + } + + if (!pages.length) { + dumpLine("tp: no pages to test, quitting"); + plStop(true); + } + + pageUrls = pages.map(function (p) { + return p.url.spec.toString(); + }); + report = new Report(); + + pageIndex = 0; + if (profilingInfo) { + TalosParentProfiler.beginTest(getCurrentPageShortName()); + } + + // Create a new chromed browser window for content + var blank = Cc["@mozilla.org/supports-string;1"].createInstance( + Ci.nsISupportsString + ); + blank.data = "about:blank"; + + let toolbars = "all"; + if (!useBrowserChrome) { + toolbars = "titlebar,resizable"; + } + + browserWindow = Services.ww.openWindow( + null, + AppConstants.BROWSER_CHROME_URL, + "_blank", + `chrome,${toolbars},dialog=no,width=${winWidth},height=${winHeight}`, + blank + ); + + gPaintWindow = browserWindow; + // get our window out of the way + window.resizeTo(10, 10); + + await new Promise(resolve => { + browserWindow.addEventListener("load", resolve, { + capture: true, + once: true, + }); + }); + + // do this half a second after load, because we need to be + // able to resize the window and not have it get clobbered + // by the persisted values + await new Promise(resolve => setTimeout(resolve, 500)); + + browserWindow.resizeTo(winWidth, winHeight); + browserWindow.moveTo(0, 0); + browserWindow.focus(); + // This is hacky but pageloader has worked like this for a while... + // eslint-disable-next-line no-global-assign + gBrowser = browserWindow.gBrowser; + + // Since bug 1261842, the initial browser is remote unless it attempts + // to browse to a URI that should be non-remote (landed at bug 1047603). + // + // However, when it loads a URI that requires a different remote type, + // we lose the load listener and the injected tpRecordTime.remote, + // + // This listener will listen for when one of these process switches has + // happened, and re-install these listeners and injected methods into + // the new browser tab. + // + // It also probably means that per test (or, in fact, per pageloader browser + // instance which adds the load listener and injects tpRecordTime), all the + // pages should be able to load in the same mode as the initial page - due + // to this reinitialization on the switch. + let tab = gBrowser.selectedTab; + tab.addEventListener("TabRemotenessChange", function (evt) { + loadFrameScripts(tab.linkedBrowser); + }); + loadFrameScripts(tab.linkedBrowser); + + // Ensure that any webextensions that need to do setup have a chance + // to do so. e.g. the 'tabswitch' talos test registers a about:tabswitch + // handler during initialization, and if we don't wait for that, then + // attempting to load that URL will result in an error and hang the + // test. + for (let extension of WebExtensionPolicy.getActiveExtensions()) { + await extension.readyPromise; + } + plLoadPage(); + } catch (e) { + dumpLine("pageloader exception: " + e); + plStop(true); + } +} + +function plPageFlags() { + return pages[pageIndex].flags; +} + +var ContentListener = { + receiveMessage(message) { + switch (message.name) { + case "PageLoader:LoadEvent": + return plLoadHandlerMessage(message); + case "PageLoader:Error": + return plErrorMessage(message); + case "PageLoader:RecordTime": + return plRecordTimeMessage(message); + case "PageLoader:IdleCallbackSet": + return plIdleCallbackSet(); + case "PageLoader:IdleCallbackReceived": + return plIdleCallbackReceived(); + } + return undefined; + }, +}; + +// load the current page, start timing +var removeLastAddedMsgListener = null; +function plLoadPage() { + if (profilingInfo) { + TalosParentProfiler.beginTest( + getCurrentPageShortName() + "_pagecycle_" + pageCycle + ); + } + + var pageURL = pages[pageIndex].url; + + if (removeLastAddedMsgListener) { + removeLastAddedMsgListener(); + removeLastAddedMsgListener = null; + } + + let tab = gBrowser.selectedTab; + tab.addEventListener("TabRemotenessChange", evt => { + addMsgListeners(tab.linkedBrowser); + }); + addMsgListeners(tab.linkedBrowser); + + failTimeout.register(loadFail, timeout); + // record which page we are about to open + TalosParentProfiler.mark("Opening " + pages[pageIndex].url.pathQueryRef); + + if (useFNBPaint) { + isFNBPaintPending = true; + } + + if (usePDFPaint) { + isPDFPaintPending = true; + } + + startAndLoadURI(pageURL); +} + +function addMsgListeners(browser) { + let mm = browser.messageManager; + // messages to watch for page load + mm.addMessageListener("PageLoader:LoadEvent", ContentListener); + mm.addMessageListener("PageLoader:RecordTime", ContentListener); + mm.addMessageListener("PageLoader:IdleCallbackSet", ContentListener); + mm.addMessageListener("PageLoader:IdleCallbackReceived", ContentListener); + mm.addMessageListener("PageLoader:Error", ContentListener); + + removeLastAddedMsgListener = function () { + mm.removeMessageListener("PageLoader:LoadEvent", ContentListener); + mm.removeMessageListener("PageLoader:RecordTime", ContentListener); + mm.removeMessageListener("PageLoader:IdleCallbackSet", ContentListener); + mm.removeMessageListener( + "PageLoader:IdleCallbackReceived", + ContentListener + ); + mm.removeMessageListener("PageLoader:Error", ContentListener); + }; +} + +function loadFrameScripts(browser) { + let mm = browser.messageManager; + + // Load our frame scripts. + mm.loadFrameScript("chrome://pageloader/content/utils.js", false, true); + + // pick the right load handler + if (useFNBPaint) { + mm.loadFrameScript( + "chrome://pageloader/content/lh_fnbpaint.js", + false, + true + ); + } else if (useMozAfterPaint) { + mm.loadFrameScript("chrome://pageloader/content/lh_moz.js", false, true); + } else if (useHero) { + mm.loadFrameScript("chrome://pageloader/content/lh_hero.js", false, true); + } else if (usePDFPaint) { + mm.loadFrameScript( + "chrome://pageloader/content/lh_pdfpaint.js", + false, + true + ); + } else { + mm.loadFrameScript("chrome://pageloader/content/lh_dummy.js", false, true); + } + mm.loadFrameScript("chrome://pageloader/content/talos-content.js", false); + mm.loadFrameScript( + "resource://talos-powers/TalosContentProfiler.js", + false, + true + ); + mm.loadFrameScript("chrome://pageloader/content/tscroll.js", false, true); + mm.loadFrameScript("chrome://pageloader/content/Profiler.js", false, true); + if (useA11y) { + mm.loadFrameScript("chrome://pageloader/content/a11y.js", false, true); + } +} + +function startAndLoadURI(pageURL) { + if (!(plPageFlags() & TEST_DOES_OWN_TIMING)) { + // Resume the profiler because we're really measuring page load time. + // If the test is doing its own timing, it'll also need to do its own + // profiler pausing / resuming. + TalosParentProfiler.resume("Starting to load URI " + pageURL.spec); + } + + start_time = window.performance.now(); + if (loadNoCache) { + gBrowser.loadURI(pageURL, { + triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), + flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE, + }); + } else { + gBrowser.loadURI(pageURL, { + triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), + }); + } +} + +function getTestName() { + // returns tp5n + var pageName = pages[pageIndex].url.spec; + let parts = pageName.split("/"); + if (parts.length > 4) { + return parts[4]; + } + return "pageloader"; +} + +function getCurrentPageShortName() { + // this is also used by gecko profiling for the profile + // file name; so ensure it is valid on Windows/Linux/OSX + var pageName = pages[pageIndex].url.spec; + let parts = pageName.split("/"); + if (parts.length > 5) { + // Tear off the first parts and concatenate the rest into a name. + let remainingParts = parts.slice(5); + let remainingAsString = remainingParts.join("_"); + if (remainingAsString.includes("?")) { + // page name is something like 'tpaint.html?auto=1' + remainingAsString = remainingAsString.split("?")[0]; + } + return remainingAsString; + } + return "page_" + pageIndex; +} + +function loadFail() { + var pageName = pages[pageIndex].url.spec; + numRetries++; + + if (numRetries >= maxRetries) { + dumpLine("__FAILTimeout in " + getTestName() + "__FAIL"); + dumpLine( + "__FAILTimeout (" + + numRetries + + "/" + + maxRetries + + ") exceeded on " + + pageName + + "__FAIL" + ); + TalosParentProfiler.finishTest().then(() => { + plStop(true); + }); + } else { + dumpLine( + "__WARNTimeout (" + + numRetries + + "/" + + maxRetries + + ") exceeded on " + + pageName + + "__WARN" + ); + // TODO: make this a cleaner cleanup + pageCycle--; + gBrowser.removeEventListener("load", plLoadHandler, true); + gBrowser.removeEventListener("load", plLoadHandlerCapturing, true); + gBrowser.removeEventListener("MozAfterPaint", plPaintedCapturing, true); + gBrowser.removeEventListener("MozAfterPaint", plPainted, true); + gPaintWindow.removeEventListener("MozAfterPaint", plPaintedCapturing, true); + gPaintWindow.removeEventListener("MozAfterPaint", plPainted, true); + removeLastAddedMsgListener = null; + gPaintListener = false; + + // TODO: consider adding a tab and removing the old tab?!? + setTimeout(plLoadPage, delay); + } +} + +var plNextPage = async function () { + var doNextPage = false; + + // ensure we've receive idle-callback before proceeding + if (isIdleCallbackPending) { + dumpLine("Waiting for idle-callback"); + await waitForIdleCallback(); + } + + if (useFNBPaint) { + // don't move to next page until we've received fnbpaint + if (isFNBPaintPending) { + dumpLine("Waiting for fnbpaint"); + await waitForFNBPaint(); + } + } + + if (usePDFPaint) { + // don't move to next page until we've received pdfpaint + if (isPDFPaintPending) { + dumpLine("Waiting for pdfpaint"); + await waitForPDFPaint(); + } + } + + if (profilingInfo) { + await TalosParentProfiler.finishTest(); + } + + if (pageCycle < numPageCycles) { + pageCycle++; + doNextPage = true; + } else if (pageIndex < pages.length - 1) { + pageIndex++; + recordedName = null; + pageCycle = 1; + doNextPage = true; + } + + if (doNextPage) { + if (forceCC) { + var tccstart = window.performance.now(); + window.windowUtils.garbageCollect(); + var tccend = window.performance.now(); + report.recordCCTime(tccend - tccstart); + + // Now asynchronously trigger GC / CC in the content process + await forceContentGC(); + } + + setTimeout(plLoadPage, delay); + } else { + plStop(false); + } +}; + +function waitForIdleCallback() { + return new Promise(resolve => { + function checkForIdleCallback() { + if (!isIdleCallbackPending) { + resolve(); + } else { + setTimeout(checkForIdleCallback, 5); + } + } + checkForIdleCallback(); + }); +} + +function plIdleCallbackSet() { + if (!scrollTest) { + isIdleCallbackPending = true; + } +} + +function plIdleCallbackReceived() { + isIdleCallbackPending = false; +} + +function waitForFNBPaint() { + return new Promise(resolve => { + function checkForFNBPaint() { + if (!isFNBPaintPending) { + resolve(); + } else { + setTimeout(checkForFNBPaint, 200); + } + } + checkForFNBPaint(); + }); +} + +function waitForPDFPaint() { + return new Promise(resolve => { + function checkForPDFPaint() { + if (!isPDFPaintPending) { + resolve(); + } else { + setTimeout(checkForPDFPaint, 200); + } + } + checkForPDFPaint(); + }); +} + +function forceContentGC() { + return new Promise(resolve => { + let mm = browserWindow.gBrowser.selectedBrowser.messageManager; + mm.addMessageListener( + "Talos:ForceGC:OK", + function onTalosContentForceGC(msg) { + mm.removeMessageListener("Talos:ForceGC:OK", onTalosContentForceGC); + resolve(); + } + ); + mm.sendAsyncMessage("Talos:ForceGC"); + }); +} + +function plRecordTime(time) { + var pageName = pages[pageIndex].url.spec; + var i = pageIndex; + if (i < pages.length - 1) { + i++; + } else { + i = 0; + } + var nextName = pages[i].url.spec; + if (!recordedName) { + // when doing base vs ref type of test, add pre 'base' or 'ref' to reported page name; + // this is necessary so that if multiple subtests use same reference page, results for + // each ref page run will be kept separate for each base vs ref run, and not grouped + // into just one set of results values for everytime that reference page was loaded + if (baseVsRef) { + recordedName = pages[pageIndex].pre + pageUrls[pageIndex]; + } else { + recordedName = pageUrls[pageIndex]; + } + } + if (typeof time == "string") { + var times = time.split(","); + var names = recordedName.split(","); + for (var t = 0; t < times.length; t++) { + if (names.length == 1) { + report.recordTime(names, times[t]); + } else { + report.recordTime(names[t], times[t]); + } + } + } else { + report.recordTime(recordedName, time); + } + dumpLine( + "Cycle " + + (cycle + 1) + + "(" + + pageCycle + + "): loaded " + + pageName + + " (next: " + + nextName + + ")" + ); +} + +function plLoadHandlerCapturing(evt) { + // make sure we pick up the right load event + if (evt.type != "load" || evt.originalTarget.defaultView.frameElement) { + return; + } + + // set the tpRecordTime function (called from test pages we load) to store a global time. + gBrowser.contentWindow.wrappedJSObject.tpRecordTime = function ( + time, + startTime, + testName + ) { + gTime = time; + gStartTime = startTime; + recordedName = testName; + setTimeout(plWaitForPaintingCapturing, 0); + }; + + gBrowser.contentWindow.wrappedJSObject.plGarbageCollect = function () { + window.windowUtils.garbageCollect(); + }; + + gBrowser.removeEventListener("load", plLoadHandlerCapturing, true); + + setTimeout(plWaitForPaintingCapturing, 0); +} + +// Shim function this is really defined in tscroll.js +function sendScroll() { + const SCROLL_TEST_STEP_PX = 10; + const SCROLL_TEST_NUM_STEPS = 100; + // The page doesn't really use tpRecordTime. Instead, we trigger the scroll test, + // and the scroll test will call tpRecordTime which will take us to the next page + let details = { + target: "content", + stepSize: SCROLL_TEST_STEP_PX, + opt_numSteps: SCROLL_TEST_NUM_STEPS, + }; + let mm = gBrowser.selectedBrowser.messageManager; + mm.sendAsyncMessage("PageLoader:ScrollTest", { details }); +} + +function plWaitForPaintingCapturing() { + if (gPaintListener) { + return; + } + + var utils = gPaintWindow.windowUtils; + + if (utils.isMozAfterPaintPending && useMozAfterPaint) { + if (!gPaintListener) { + gPaintWindow.addEventListener("MozAfterPaint", plPaintedCapturing, true); + } + gPaintListener = true; + return; + } + + _loadHandlerCapturing(); +} + +function plPaintedCapturing() { + gPaintWindow.removeEventListener("MozAfterPaint", plPaintedCapturing, true); + gPaintListener = false; + _loadHandlerCapturing(); +} + +function _loadHandlerCapturing() { + failTimeout.clear(); + + if (!(plPageFlags() & TEST_DOES_OWN_TIMING)) { + dumpLine( + "tp: Capturing onload handler used with page that doesn't do its own timing?" + ); + plStop(true); + } + + if (useMozAfterPaint) { + if (gStartTime != null && gStartTime >= 0) { + gTime = + window.performance.timing.navigationStart + + window.performance.now() - + gStartTime; + gStartTime = -1; + } + } + + if (gTime !== -1) { + plRecordTime(gTime); + TalosParentProfiler.mark("Talos - capturing load handler fired"); + TalosParentProfiler.pause(); + gTime = -1; + recordedName = null; + setTimeout(plNextPage, delay); + } +} + +// the onload handler +function plLoadHandler(evt) { + // make sure we pick up the right load event + if (evt.type != "load" || evt.originalTarget.defaultView.frameElement) { + return; + } + + gBrowser.removeEventListener("load", plLoadHandler, true); + setTimeout(waitForPainted, 0); +} + +// This is called after we have received a load event, now we wait for painted +function waitForPainted() { + var utils = gPaintWindow.windowUtils; + + if (!utils.isMozAfterPaintPending || !useMozAfterPaint) { + _loadHandler(); + return; + } + + if (!gPaintListener) { + gPaintWindow.addEventListener("MozAfterPaint", plPainted, true); + } + gPaintListener = true; +} + +function plPainted() { + gPaintWindow.removeEventListener("MozAfterPaint", plPainted, true); + gPaintListener = false; + _loadHandler(); +} + +function _loadHandler(paint_time = 0) { + failTimeout.clear(); + var end_time = 0; + + if (paint_time !== 0) { + // window.performance.timing.timeToNonBlankPaint is a timestamp + // this may have a value for hero element (also a timestamp) + + let minDate = new Date("2001"); + + if (paint_time < minDate) { + //paint_time is a performance.now() value + end_time = paint_time; + } else { + //paint_time is a UNIX timestamp + end_time = paint_time - window.performance.timing.navigationStart; + } + } else { + end_time = window.performance.now(); + } + + var duration; + if (usePDFPaint) { + // PDF paint uses performance.now(), so the time does not need to be + // adjusted from the start time. + duration = end_time; + } else { + duration = end_time - start_time; + } + TalosParentProfiler.pause("Bubbling load handler fired."); + + // does this page want to do its own timing? + // if so, we shouldn't be here + if (plPageFlags() & TEST_DOES_OWN_TIMING) { + dumpLine( + "tp: Bubbling onload handler used with page that does its own timing?" + ); + plStop(true); + } + + plRecordTime(duration); + plNextPage(); +} + +// the core handler +function plLoadHandlerMessage(message) { + let paint_time = 0; + // XXX message.json.name contains the name + // of the load handler, so in future versions + // we can record several times per load. + if (message.json.time !== undefined) { + paint_time = message.json.time; + if (message.json.name == "fnbpaint") { + // we've received fnbpaint; no longer pending for this current pageload + isFNBPaintPending = false; + } else if (message.json.name == "pdfpaint") { + isPDFPaintPending = false; + } + } + + failTimeout.clear(); + + if (plPageFlags() & EXECUTE_SCROLL_TEST) { + // Let the page settle down after its load event, then execute the scroll test. + setTimeout(sendScroll, 500); + } else if (plPageFlags() & TEST_DOES_OWN_TIMING) { + var time; + + if (typeof gStartTime != "number") { + gStartTime = Date.parse(gStartTime); + } + if (gTime !== -1) { + if (useMozAfterPaint && gStartTime >= 0) { + time = window.performance.now() - gStartTime; + gStartTime = -1; + } else if (!useMozAfterPaint) { + time = gTime; + } + gTime = -1; + } + + if (time !== undefined) { + plRecordTime(time); + plNextPage(); + } + } else { + _loadHandler(paint_time); + } +} + +// the record time handler +function plRecordTimeMessage(message) { + gTime = message.json.time; + gStartTime = message.json.startTime; + recordedName = message.json.testName; + + if (useMozAfterPaint) { + gStartTime = message.json.startTime; + } + _loadHandlerCapturing(); +} + +// error +function plErrorMessage(message) { + if (message.json.msg) { + dumpLine(message.json.msg); + } + plStop(true); +} + +function plStop(force) { + plStopAll(force); +} + +function plStopAll(force) { + try { + if (!force) { + pageIndex = 0; + pageCycle = 1; + if (cycle < NUM_CYCLES - 1) { + cycle++; + recordedName = null; + setTimeout(plLoadPage, delay); + return; + } + + /* output report */ + dumpLine(report.getReport()); + dumpLine(report.getReportSummary()); + } + } catch (e) { + dumpLine(e); + } + + if (gBrowser) { + gBrowser.removeEventListener("load", plLoadHandlerCapturing, true); + gBrowser.removeEventListener("load", plLoadHandler, true); + + if (useMozAfterPaint) { + gBrowser.removeEventListener("MozAfterPaint", plPaintedCapturing, true); + gBrowser.removeEventListener("MozAfterPaint", plPainted, true); + } + + let mm = gBrowser.selectedBrowser.messageManager; + mm.removeMessageListener("PageLoader:LoadEvent", ContentListener); + mm.removeMessageListener("PageLoader:RecordTime", ContentListener); + mm.removeMessageListener("PageLoader:Error", ContentListener); + + if (isIdleCallbackPending) { + mm.removeMessageListener("PageLoader:IdleCallbackSet", ContentListener); + mm.removeMessageListener( + "PageLoader:IdleCallbackReceived", + ContentListener + ); + } + mm.loadFrameScript( + "data:,removeEventListener('load', _contentLoadHandler, true);", + false, + true + ); + } + + if (MozillaFileLogger && MozillaFileLogger._foStream) { + MozillaFileLogger.close(); + } + + goQuitApplication(); +} + +/* Returns array */ +function plLoadURLsFromURI(manifestUri) { + var fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance( + Ci.nsIFileInputStream + ); + + var uriFile = manifestUri.QueryInterface(Ci.nsIFileURL); + + if (uriFile.file.isFile() === false) { + dumpLine("tp: invalid file: %s" % uriFile.file); + return null; + } + + try { + fstream.init(uriFile.file, -1, 0, 0); + } catch (ex) { + dumpLine("tp: the file %s doesn't exist" % uriFile.file); + return null; + } + + var lstream = fstream.QueryInterface(Ci.nsILineInputStream); + + var url_array = []; + + var lineNo = 0; + var line = { value: null }; + var baseVsRefIndex = 0; + var more; + do { + lineNo++; + more = lstream.readLine(line); + var s = line.value; + + // strip comments (only leading ones) + s = s.replace(/^#.*/, ""); + + // strip leading and trailing whitespace + s = s.replace(/^\s*/, "").replace(/\s*$/, ""); + + if (!s) { + continue; + } + + var flags = 0; + var urlspec = s; + baseVsRefIndex += 1; + + // split on whitespace, and figure out if we have any flags + var items = s.split(/\s+/); + if (items[0] == "include") { + if (items.length != 2) { + dumpLine( + "tp: Error on line " + + lineNo + + " in " + + manifestUri.spec + + ": include must be followed by the manifest to include!" + ); + return null; + } + + var subManifest = Services.io.newURI(items[1], null, manifestUri); + if (subManifest == null) { + dumpLine( + "tp: invalid URI on line " + + manifestUri.spec + + ":" + + lineNo + + " : '" + + line.value + + "'" + ); + return null; + } + + var subItems = plLoadURLsFromURI(subManifest); + if (subItems == null) { + return null; + } + url_array = url_array.concat(subItems); + } else { + // For scrollTest flag, we accept "normal" pages but treat them as TEST_DOES_OWN_TIMING + // together with EXECUTE_SCROLL_TEST which makes us run the scroll test on load. + // We do this by artificially "injecting" the TEST_DOES_OWN_TIMING flag ("%") to the item + // and then let the default flow for this flag run without further modifications + // (other than calling the scroll test once the page is loaded). + // Note that if we have the scrollTest flag but the item already has "%", then we do + // nothing (the scroll test will not execute, and the page will report with its + // own tpRecordTime and not the one from the scroll test). + if (scrollTest && items.length == 1) { + // scroll enabled and no "%" + items.unshift("%"); + flags |= EXECUTE_SCROLL_TEST; + } + + if (items.length == 2) { + if (items[0].includes("%")) { + flags |= TEST_DOES_OWN_TIMING; + } + + urlspec = items[1]; + } else if (items.length == 3) { + // base vs ref type of talos test + // expect each manifest line to be in the format of: + // & http://localhost/tests/perf-reftest/base-page.html, http://localhost/tests/perf-reftest/reference-page.html + // test will run with the base page, then with the reference page; and ultimately the actual test results will + // be the comparison values of those two pages; more than one line will result in base vs ref subtests + if (items[0].includes("&")) { + baseVsRef = true; + flags |= TEST_DOES_OWN_TIMING; + // for the base, must remove the comma on the end of the actual url + var urlspecBase = items[1].slice(0, -1); + var urlspecRef = items[2]; + } else { + dumpLine( + "tp: Error on line " + + lineNo + + " in " + + manifestUri.spec + + ": unknown manifest format!" + ); + return null; + } + } else if (items.length != 1) { + dumpLine( + "tp: Error on line " + + lineNo + + " in " + + manifestUri.spec + + ": whitespace must be %-escaped!" + ); + return null; + } + + var url; + + if (!baseVsRef) { + url = Services.io.newURI(urlspec, null, manifestUri); + + if (pageFilterRegexp && !pageFilterRegexp.test(url.spec)) { + continue; + } + + url_array.push({ url, flags }); + } else { + // base vs ref type of talos test + // we add a 'pre' prefix here indicating that this particular page is a base page or a reference + // page; later on this 'pre' is used when recording the actual time value/result; because in + // the results we use the url as the results key; but we might use the same test page as a reference + // page in the same test suite, so we need to add a prefix so this results key is always unique + url = Services.io.newURI(urlspecBase, null, manifestUri); + if (pageFilterRegexp && !pageFilterRegexp.test(url.spec)) { + continue; + } + var pre = "base_page_" + baseVsRefIndex + "_"; + url_array.push({ url, flags, pre }); + + url = Services.io.newURI(urlspecRef, null, manifestUri); + if (pageFilterRegexp && !pageFilterRegexp.test(url.spec)) { + continue; + } + pre = "ref_page_" + baseVsRefIndex + "_"; + url_array.push({ url, flags, pre }); + } + } + } while (more); + + return url_array; +} + +function dumpLine(str) { + if (MozillaFileLogger && MozillaFileLogger._foStream) { + MozillaFileLogger.log(str + "\n"); + } + dump(str); + dump("\n"); +} diff --git a/testing/talos/talos/pageloader/chrome/pageloader.xhtml b/testing/talos/talos/pageloader/chrome/pageloader.xhtml new file mode 100644 index 0000000000..177502a57d --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/pageloader.xhtml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + diff --git a/testing/talos/talos/pageloader/chrome/quit.js b/testing/talos/talos/pageloader/chrome/quit.js new file mode 100644 index 0000000000..0261295c1c --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/quit.js @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is The Original Code is Mozilla Automated Testing Code + * + * The Initial Developer of the Original Code is + * Mozilla Corporation. + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): Bob Clary + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + From mozilla/toolkit/content + These files did not have a license +*/ + +/* import-globals-from pageloader.js */ + +function canQuitApplication() { + try { + var cancelQuit = Cc["@mozilla.org/supports-PRBool;1"].createInstance( + Ci.nsISupportsPRBool + ); + Services.obs.notifyObservers(cancelQuit, "quit-application-requested"); + + // Something aborted the quit process. + if (cancelQuit.data) { + return false; + } + } catch (ex) {} + return true; +} + +function goQuitApplication() { + if (!canQuitApplication()) { + return false; + } + + try { + Services.startup.quit(Ci.nsIAppStartup.eForceQuit); + } catch (ex) { + throw new Error("goQuitApplication: " + ex); + } + + return true; +} diff --git a/testing/talos/talos/pageloader/chrome/report.js b/testing/talos/talos/pageloader/chrome/report.js new file mode 100644 index 0000000000..7f5d61922a --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/report.js @@ -0,0 +1,195 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// given an array of strings, finds the longest common prefix +function findCommonPrefixLength(strs) { + if (strs.length < 2) { + // only one page in the manifest + // i.e. http://localhost/tests/perf-reftest/bloom-basic.html + var place = strs[0].lastIndexOf("/"); + if (place < 0) { + place = 0; + } + return place; + } + + var len = 0; + do { + var newlen = len + 1; + var newprefix = null; + var failed = false; + for (var i = 0; i < strs.length; i++) { + if (newlen > strs[i].length) { + failed = true; + break; + } + + var s = strs[i].substr(0, newlen); + if (newprefix == null) { + newprefix = s; + } else if (newprefix != s) { + failed = true; + break; + } + } + + if (failed) { + break; + } + + len++; + } while (true); + return len; +} + +// Constructor +function Report() { + this.timeVals = {}; + this.totalCCTime = 0; + this.showTotalCCTime = false; +} + +Report.prototype.pageNames = function () { + var retval = []; + for (var page in this.timeVals) { + retval.push(page); + } + return retval; +}; + +Report.prototype.getReport = function () { + var report; + var pages = this.pageNames(); + var prefixLen = findCommonPrefixLength(pages); + + report = "__start_tp_report\n"; + report += "_x_x_mozilla_page_load\n"; + report += "_x_x_mozilla_page_load_details\n"; + report += "|i|pagename|runs|\n"; + + for (var i = 0; i < pages.length; i++) { + // don't report any measurements that were reported for about:blank + // some tests (like about-preferences) use it as a dummy test page + if (pages[i] == "about:blank") { + continue; + } + report += + "|" + + i + + ";" + + pages[i].substr(prefixLen) + + ";" + + this.timeVals[pages[i]].join(";") + + "\n"; + } + report += "__end_tp_report\n"; + + if (this.showTotalCCTime) { + report += "__start_cc_report\n"; + report += "_x_x_mozilla_cycle_collect," + this.totalCCTime + "\n"; + report += "__end_cc_report\n"; + } + var now = window.performance.now(); + report += "__startTimestamp" + now + "__endTimestamp\n"; // timestamp for determning shutdown time, used by talos + + return report; +}; + +Report.prototype.getReportSummary = function () { + function average(arr) { + var sum = 0; + for (var i in arr) { + sum += arr[i]; + } + return sum / (arr.length || 1); + } + + function median(arr) { + if (!arr.length) { + return 0; + } // As good indication for "not available" as any other value. + + var sorted = arr.slice(0).sort(); + var mid = Math.floor(arr.length / 2); + + if (sorted.length % 2) { + return sorted[mid]; + } + + return average(sorted.slice(mid, mid + 2)); + } + + // We use sample stddev and not population stddev because + // well.. it's a sample and we can't collect all/infinite number of values. + function stddev(arr) { + if (arr.length <= 1) { + return 0; + } + var avg = average(arr); + + var squareDiffArr = arr.map(function (v) { + return Math.pow(v - avg, 2); + }); + var sum = squareDiffArr.reduce(function (a, b) { + return a + b; + }); + var rv = Math.sqrt(sum / (arr.length - 1)); + return rv; + } + + var report = ""; + var pages = this.pageNames(); + var prefixLen = findCommonPrefixLength(pages); + + report += "------- Summary: start -------\n"; + report += "Number of tests: " + pages.length + "\n"; + + for (var i = 0; i < pages.length; i++) { + var results = this.timeVals[pages[i]].map(function (v) { + return Number(v); + }); + + report += + "\n[#" + + i + + "] " + + pages[i].substr(prefixLen) + + " Cycles:" + + results.length + + " Average:" + + average(results).toFixed(2) + + " Median:" + + median(results).toFixed(2) + + " stddev:" + + stddev(results).toFixed(2) + + " (" + + ((100 * stddev(results)) / median(results)).toFixed(1) + + "%)" + + (results.length < 5 + ? "" + : " stddev-sans-first:" + stddev(results.slice(1)).toFixed(2)) + + "\nValues: " + + results + .map(function (v) { + return v.toFixed(1); + }) + .join(" ") + + "\n"; + } + report += "-------- Summary: end --------\n"; + + return report; +}; + +Report.prototype.recordTime = function (pageName, ms) { + if (this.timeVals[pageName] == undefined) { + this.timeVals[pageName] = []; + } + this.timeVals[pageName].push(ms); +}; + +Report.prototype.recordCCTime = function (ms) { + this.totalCCTime += ms; + this.showTotalCCTime = true; +}; diff --git a/testing/talos/talos/pageloader/chrome/talos-content.js b/testing/talos/talos/pageloader/chrome/talos-content.js new file mode 100644 index 0000000000..ca21388c2c --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/talos-content.js @@ -0,0 +1,24 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +const TalosContent = { + init() { + addMessageListener("Talos:ForceGC", this); + }, + + receiveMessage(msg) { + if (msg.name == "Talos:ForceGC") { + this.forceGC(); + } + }, + + forceGC() { + content.windowUtils.garbageCollect(); + sendAsyncMessage("Talos:ForceGC:OK"); + }, +}; + +TalosContent.init(); diff --git a/testing/talos/talos/pageloader/chrome/tscroll.js b/testing/talos/talos/pageloader/chrome/tscroll.js new file mode 100644 index 0000000000..948c04cb11 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/tscroll.js @@ -0,0 +1,324 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +// Note: This file is used at both tscrollx and tp5o_scroll. With the former as +// unprivileged code. +// - Please make sure that any changes apply cleanly to all use cases. + +function testScroll(target, stepSize, opt_reportFunc, opt_numSteps) { + var win; + if (target == "content") { + target = content.wrappedJSObject; + win = content; + } else { + win = window; + } + + var result = { + names: [], + values: [], + }; + // We report multiple results, so we base the name on the path. + // Everything after '/tp5n/' if exists (for tp5o_scroll), or the file name at + // the path if non-empty (e.g. with tscrollx), or the last dir otherwise (e.g. + // 'mydir' for 'http://my.domain/dir1/mydir/'). + var href = win.location.href; + var testBaseName = + href.split("/tp5n/")[1] || + href.split("/").pop() || + href.split("/").splice(-2, 1)[0] || + "REALLY_WEIRD_URI"; + + // Verbatim copy from talos-powers/content/TalosPowersContent.js + // If the origin changes, this copy should be updated. + TalosPowersParent = { + replyId: 1, + + // dispatch an event to the framescript and register the result/callback event + exec(commandName, arg, callback, opt_custom_window) { + let win = opt_custom_window || window; + let replyEvent = "TalosPowers:ParentExec:ReplyEvent:" + this.replyId++; + if (callback) { + win.addEventListener( + replyEvent, + function (e) { + callback(e.detail); + }, + { once: true } + ); + } + win.dispatchEvent( + new win.CustomEvent("TalosPowers:ParentExec:QueryEvent", { + bubbles: true, + detail: { + command: { + name: commandName, + data: arg, + }, + listeningTo: replyEvent, + }, + }) + ); + }, + }; + // End of code from talos-powers + + var report; + /** + * Sets up the value of 'report' as a function for reporting the test result[s]. + * Chooses between the "usual" tpRecordTime which the pageloader addon injects + * to pages, or a custom function in case we're a framescript which pageloader + * added to the tested page, or a debug tpRecordTime from talos-debug.js if + * running in a plain browser. + * + * @returns Promise + */ + function P_setupReportFn() { + return new Promise(function (resolve) { + report = opt_reportFunc || win.tpRecordTime; + if (report == "PageLoader:RecordTime") { + report = function (duration, start, name) { + var msg = { time: duration, startTime: start, testName: name }; + sendAsyncMessage("PageLoader:RecordTime", msg); + }; + resolve(); + return; + } + + // Not part of the test and does nothing if we're within talos. + // Provides an alternative tpRecordTime (with some stats display) if running in a browser. + if (!report && document.head) { + var imported = document.createElement("script"); + imported.addEventListener("load", function () { + report = tpRecordTime; + resolve(); + }); + + imported.src = + "../../scripts/talos-debug.js?dummy=" + win.performance.now(); // For some browsers to re-read + document.head.appendChild(imported); + return; + } + + resolve(); + }); + } + + function FP_wait(ms) { + return function () { + return new Promise(function (resolve) { + win.setTimeout(resolve, ms); + }); + }; + } + + function rAF(fn) { + return win.requestAnimationFrame(fn); + } + + function P_rAF() { + return new Promise(function (resolve) { + rAF(resolve); + }); + } + + function P_MozAfterPaint() { + return new Promise(function (resolve) { + win.addEventListener("MozAfterPaint", () => resolve(), { once: true }); + }); + } + + var isWindow = target.self === target; + + var getPos = isWindow + ? function () { + return target.pageYOffset; + } + : function () { + return target.scrollTop; + }; + + var gotoTop = isWindow + ? function () { + target.scroll(0, 0); + ensureScroll(); + } + : function () { + target.scrollTop = 0; + ensureScroll(); + }; + + var doScrollTick = isWindow + ? function () { + target.scrollBy(0, stepSize); + ensureScroll(); + } + : function () { + target.scrollTop += stepSize; + ensureScroll(); + }; + + var setSmooth = isWindow + ? function () { + target.document.scrollingElement.style.scrollBehavior = "smooth"; + } + : function () { + target.style.scrollBehavior = "smooth"; + }; + + var gotoBottom = isWindow + ? function () { + target.scrollTo(0, target.scrollMaxY); + } + : function () { + target.scrollTop = target.scrollHeight; + }; + + function ensureScroll() { + // Ensure scroll by reading computed values. screenY is for X11. + if (!this.dummyEnsureScroll) { + this.dummyEnsureScroll = 1; + } + this.dummyEnsureScroll += win.screenY + getPos(); + } + + // For reference, rAF should fire on vsync, but Gecko currently doesn't use vsync. + // Instead, it uses 1000/layout.frame_rate + // (with 60 as default value when layout.frame_rate == -1). + function P_syncScrollTest() { + return new Promise(function (resolve) { + // We should be at the top of the page now. + var start = win.performance.now(); + var lastScrollPos = getPos(); + var lastScrollTime = start; + var durations = []; + + function tick() { + var now = win.performance.now(); + var duration = now - lastScrollTime; + lastScrollTime = now; + + durations.push(duration); + doScrollTick(); + + /* stop scrolling if we can't scroll more, or if we've reached requested number of steps */ + if ( + getPos() == lastScrollPos || + (opt_numSteps && durations.length >= opt_numSteps + 2) + ) { + let profilerPaused = Promise.resolve(); + if (typeof TalosContentProfiler !== "undefined") { + profilerPaused = TalosContentProfiler.pause(testBaseName, true); + } + + profilerPaused.then(() => { + // Note: The first (1-5) intervals WILL be longer than the rest. + // First interval might include initial rendering and be extra slow. + // Also requestAnimationFrame needs to sync (optimally in 1 frame) after long frames. + // Suggested: Ignore the first 5 intervals. + + durations.pop(); // Last step was 0. + durations.pop(); // and the prev one was shorter and with end-of-page logic, ignore both. + + if (win.talosDebug) { + win.talosDebug.displayData = true; + } // In a browser: also display all data points. + + // For analysis (otherwise, it's too many data points for talos): + var sum = 0; + for (var i = 0; i < durations.length; i++) { + sum += Number(durations[i]); + } + + // Report average interval or (failsafe) 0 if no intervls were recorded + result.values.push(durations.length ? sum / durations.length : 0); + result.names.push(testBaseName); + resolve(); + }); + return; + } + + lastScrollPos = getPos(); + P_MozAfterPaint().then(tick); + } + + if (typeof TalosContentProfiler !== "undefined") { + TalosContentProfiler.resume(testBaseName, true).then(() => { + rAF(tick); + }); + } + }); + } + + function P_testAPZScroll() { + var APZ_MEASURE_MS = 1000; + + function startFrameTimeRecording(cb) { + TalosPowersParent.exec("startFrameTimeRecording", null, cb, win); + } + + function stopFrameTimeRecording(handle, cb) { + TalosPowersParent.exec("stopFrameTimeRecording", handle, cb, win); + } + + return new Promise(function (resolve, reject) { + setSmooth(); + + var handle = -1; + startFrameTimeRecording(function (rv) { + handle = rv; + }); + + // Get the measurements after APZ_MEASURE_MS of scrolling + win.setTimeout(function () { + stopFrameTimeRecording(handle, function (intervals) { + function average(arr) { + var sum = 0; + for (var i = 0; i < arr.length; i++) { + sum += arr[i]; + } + return arr.length ? sum / arr.length : 0; + } + + // remove two frames on each side of the recording to get a cleaner result + result.values.push(average(intervals.slice(2, intervals.length - 2))); + result.names.push("CSSOM." + testBaseName); + + resolve(); + }); + }, APZ_MEASURE_MS); + + gotoBottom(); // trigger the APZ scroll + }); + } + + P_setupReportFn() + .then(FP_wait(260)) + .then(gotoTop) + .then(P_rAF) + .then(P_syncScrollTest) + .then(gotoTop) + .then(FP_wait(260)) + .then(P_testAPZScroll) + .then(function () { + report(result.values.join(","), 0, result.names.join(",")); + }); +} + +// This code below here is unique to tscroll.js inside of pageloader +try { + function handleMessageFromChrome(message) { + var payload = message.data.details; + testScroll( + payload.target, + payload.stepSize, + "PageLoader:RecordTime", + payload.opt_numSteps + ); + } + + addMessageListener("PageLoader:ScrollTest", handleMessageFromChrome); +} catch (e) {} diff --git a/testing/talos/talos/pageloader/chrome/utils.js b/testing/talos/talos/pageloader/chrome/utils.js new file mode 100644 index 0000000000..e326f6c6a4 --- /dev/null +++ b/testing/talos/talos/pageloader/chrome/utils.js @@ -0,0 +1,34 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +var idleCallbackHandle; + +function _idleCallbackHandler() { + content.window.cancelIdleCallback(idleCallbackHandle); + sendAsyncMessage("PageLoader:IdleCallbackReceived", {}); +} + +function setIdleCallback() { + idleCallbackHandle = content.window.requestIdleCallback(_idleCallbackHandler); + sendAsyncMessage("PageLoader:IdleCallbackSet", {}); +} + +function contentLoadHandlerCallback(cb) { + function _handler(e) { + if (e.originalTarget.defaultView == content) { + content.wrappedJSObject.tpRecordTime = Cu.exportFunction((t, s, n) => { + sendAsyncMessage("PageLoader:RecordTime", { + time: t, + startTime: s, + testName: n, + }); + }, content); + content.setTimeout(cb, 0); + content.setTimeout(setIdleCallback, 0); + } + } + return _handler; +} diff --git a/testing/talos/talos/pageloader/manifest.json b/testing/talos/talos/pageloader/manifest.json new file mode 100644 index 0000000000..bd01bca519 --- /dev/null +++ b/testing/talos/talos/pageloader/manifest.json @@ -0,0 +1,23 @@ +{ + "manifest_version": 2, + "name": "PageLoader extension", + "description": "Cycles through pages and measures load times", + "version": "1.1", + + "browser_specific_settings": { + "gecko": { + "id": "pageloader@mozilla.org" + } + }, + + "experiment_apis": { + "pageloader": { + "schema": "schema.json", + "parent": { + "scopes": ["addon_parent"], + "script": "api.js", + "events": ["startup"] + } + } + } +} diff --git a/testing/talos/talos/pageloader/schema.json b/testing/talos/talos/pageloader/schema.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/testing/talos/talos/pageloader/schema.json @@ -0,0 +1 @@ +[] diff --git a/testing/talos/talos/results.py b/testing/talos/talos/results.py new file mode 100755 index 0000000000..73ebd56ed3 --- /dev/null +++ b/testing/talos/talos/results.py @@ -0,0 +1,558 @@ +#!/usr/bin/env python + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +""" +objects and methods for parsing and serializing Talos results +see https://wiki.mozilla.org/Buildbot/Talos/DataFormat +""" +import csv +import json +import os +import re + +import six + +from talos import filter, output, utils + + +class TalosResults(object): + """Container class for Talos results""" + + def __init__(self): + self.results = [] + self.extra_options = [] + + def add(self, test_results): + self.results.append(test_results) + + def add_extra_option(self, extra_option): + self.extra_options.append(extra_option) + + def has_results(self): + return len(self.results) > 0 + + def output(self, output_formats): + """ + output all results to appropriate URLs + - output_formats: a dict mapping formats to a list of URLs + """ + try: + + for key, urls in output_formats.items(): + _output = output.Output(self, Results) + results = _output() + for url in urls: + _output.output(results, url) + except utils.TalosError as e: + # print to results.out + try: + _output = output.GraphserverOutput(self) + results = _output() + _output.output( + "file://%s" % os.path.join(os.getcwd(), "results.out"), results + ) + except Exception: + pass + print("\nFAIL: %s" % str(e).replace("\n", "\nRETURN:")) + raise e + + +class TestResults(object): + """container object for all test results across cycles""" + + def __init__(self, test_config, global_counters=None, framework=None): + self.results = [] + self.test_config = test_config + self.format = None + self.global_counters = global_counters or {} + self.all_counter_results = [] + self.framework = framework + self.using_xperf = False + + def name(self): + return self.test_config["name"] + + def mainthread(self): + return self.test_config["mainthread"] + + def add(self, results, counter_results=None): + """ + accumulate one cycle of results + - results : TalosResults instance or path to browser log + - counter_results : counters accumulated for this cycle + """ + + # convert to a results class via parsing the browser log + format_pagename = True + if not self.test_config["format_pagename"]: + format_pagename = False + + browserLog = BrowserLogResults( + results, + format_pagename=format_pagename, + counter_results=counter_results, + global_counters=self.global_counters, + ) + results = browserLog.results() + + self.using_xperf = browserLog.using_xperf + # ensure the results format matches previous results + if self.results: + if not results.format == self.results[0].format: + raise utils.TalosError("Conflicting formats for results") + else: + self.format = results.format + + self.results.append(results) + + if counter_results: + self.all_counter_results.append(counter_results) + + +class Results(object): + def filter(self, testname, filters): + """ + filter the results set; + applies each of the filters in order to the results data + filters should be callables that take a list + the last filter should return a scalar (float or int) + returns a list of [[data, page], ...] + """ + retval = [] + for result in self.results: + page = result["page"] + data = result["runs"] + remaining_filters = [] + + # ignore* functions return a filtered set of data + for f in filters: + if f.func.__name__.startswith("ignore"): + data = f.apply(data) + else: + remaining_filters.append(f) + + # apply the summarization filters + for f in remaining_filters: + if f.func.__name__ == "v8_subtest": + # for v8_subtest we need to page for reference data + data = filter.v8_subtest(data, page) + else: + data = f.apply(data) + + summary = { + "filtered": data, # backward compatibility with perfherder + "value": data, + } + + retval.append([summary, page]) + + return retval + + def raw_values(self): + return [(result["page"], result["runs"]) for result in self.results] + + def values(self, testname, filters): + """return filtered (value, page) for each value""" + return [ + [val, page] + for val, page in self.filter(testname, filters) + if val["filtered"] > -1 + ] + + +class TsResults(Results): + """ + results for Ts tests + """ + + format = "tsformat" + + def __init__(self, string, counter_results=None, format_pagename=True): + self.counter_results = counter_results + + string = string.strip() + lines = string.splitlines() + + # gather the data + self.results = [] + index = 0 + + # Case where one test iteration may report multiple event values i.e. ts_paint + if string.startswith("{"): + jsonResult = json.loads(string) + result = {"runs": {}} + result["index"] = index + result["page"] = "NULL" + + for event_label in jsonResult: + result["runs"][str(event_label)] = [jsonResult[event_label]] + self.results.append(result) + + # Case where we support a pagename in the results + if not self.results: + for line in lines: + result = {} + r = line.strip().split(",") + r = [i for i in r if i] + if len(r) <= 1: + continue + result["index"] = index + result["page"] = r[0] + # note: if we have len(r) >1, then we have pagename,raw_results + result["runs"] = [float(i) for i in r[1:]] + self.results.append(result) + index += 1 + + # Original case where we just have numbers and no pagename + if not self.results: + result = {} + result["index"] = index + result["page"] = "NULL" + result["runs"] = [float(val) for val in string.split("|")] + self.results.append(result) + + +class PageloaderResults(Results): + """ + results from a browser_dump snippet + https://wiki.mozilla.org/Buildbot/Talos/DataFormat#browser_output.txt + """ + + format = "tpformat" + + def __init__(self, string, counter_results=None, format_pagename=True): + """ + - string : string of relevent part of browser dump + - counter_results : counter results dictionary + """ + + self.counter_results = counter_results + + string = string.strip() + lines = string.splitlines() + + # currently we ignore the metadata on top of the output (e.g.): + # _x_x_mozilla_page_load + # _x_x_mozilla_page_load_details + # |i|pagename|runs| + lines = [line for line in lines if ";" in line] + + # gather the data + self.results = [] + prev_line = "" + for line in lines: + result = {} + + # Bug 1562883 - Determine what is causing a single line to get + # written on multiple lines. + if prev_line: + line = prev_line + line + prev_line = "" + + r = line.strip("|").split(";") + r = [i for i in r if i] + + if len(r) <= 2: + prev_line = line + continue + + result["index"] = int(r[0]) + result["page"] = r[1] + result["runs"] = [float(i) for i in r[2:]] + + # fix up page + if format_pagename: + result["page"] = self.format_pagename(result["page"]) + + self.results.append(result) + + def format_pagename(self, page): + """ + fix up the page for reporting + """ + page = page.rstrip("/") + if "/" in page: + if "base_page" in page or "ref_page" in page: + # for base vs ref type test, the page name is different format, i.e. + # base_page_1_http://localhost:53309/tests/perf-reftest/bloom-basic.html + page = page.split("/")[-1] + else: + page = page.split("/")[0] + return page + + +class BrowserLogResults(object): + """parse the results from the browser log output""" + + # tokens for the report types + report_tokens = [ + ("tsformat", ("__start_report", "__end_report")), + ("tpformat", ("__start_tp_report", "__end_tp_report")), + ] + + # tokens for timestamps, in order (attribute, (start_delimeter, + # end_delimter)) + time_tokens = [ + ("startTime", ("__startTimestamp", "__endTimestamp")), + ( + "beforeLaunchTime", + ("__startBeforeLaunchTimestamp", "__endBeforeLaunchTimestamp"), + ), + ( + "endTime", + ("__startAfterTerminationTimestamp", "__endAfterTerminationTimestamp"), + ), + ] + + # regular expression for failure case if we can't parse the tokens + RESULTS_REGEX_FAIL = re.compile("__FAIL(.*?)__FAIL", re.DOTALL | re.MULTILINE) + + # regular expression for responsiveness results + RESULTS_RESPONSIVENESS_REGEX = re.compile( + "MOZ_EVENT_TRACE\ssample\s\d*?\s(\d*\.?\d*)$", re.DOTALL | re.MULTILINE + ) + + # classes for results types + classes = {"tsformat": TsResults, "tpformat": PageloaderResults} + + # If we are using xperf, we do not upload the regular results, only + # xperf counters + using_xperf = False + + def __init__( + self, + results_raw, + format_pagename=True, + counter_results=None, + global_counters=None, + ): + """ + - shutdown : whether to record shutdown results or not + """ + + self.counter_results = counter_results + self.global_counters = global_counters + self.format_pagename = format_pagename + self.results_raw = results_raw + + # parse the results + try: + match = self.RESULTS_REGEX_FAIL.search(self.results_raw) + if match: + self.error(match.group(1)) + raise utils.TalosError(match.group(1)) + + self.parse() + except utils.TalosError: + # TODO: consider investigating this further or adding additional + # information + raise # reraise failing exception + + # accumulate counter results + self.counters(self.counter_results, self.global_counters) + + def error(self, message): + """raise a TalosError for bad parsing of the browser log""" + raise utils.TalosError(message) + + def parse(self): + position = -1 + + # parse the report + for format, tokens in self.report_tokens: + report, position = self.get_single_token(*tokens) + if report is None: + continue + self.browser_results = report + self.format = format + previous_tokens = tokens + break + else: + self.error( + "Could not find report in browser output: %s" % self.report_tokens + ) + + # parse the timestamps + for attr, tokens in self.time_tokens: + + # parse the token contents + value, _last_token = self.get_single_token(*tokens) + + # check for errors + if not value: + self.error( + "Could not find %s in browser output: (tokens: %s)" % (attr, tokens) + ) + try: + value = int(float(value)) + except ValueError: + self.error("Could not cast %s to an integer: %s" % (attr, value)) + if _last_token < position: + self.error( + "%s [character position: %s] found before %s" + " [character position: %s]" + % (tokens, _last_token, previous_tokens, position) + ) + + # process + setattr(self, attr, value) + position = _last_token + previous_tokens = tokens + + def get_single_token(self, start_token, end_token): + """browser logs should only have a single instance of token pairs""" + try: + parts, last_token = utils.tokenize(self.results_raw, start_token, end_token) + except AssertionError as e: + self.error(str(e)) + if not parts: + return None, -1 # no match + if len(parts) != 1: + self.error("Multiple matches for %s,%s" % (start_token, end_token)) + return parts[0], last_token + + def results(self): + """return results instance appropriate to the format detected""" + + if self.format not in self.classes: + raise utils.TalosError( + "Unable to find a results class for format: %s" % repr(self.format) + ) + + return self.classes[self.format]( + self.browser_results, format_pagename=self.format_pagename + ) + + # methods for counters + + def counters(self, counter_results=None, global_counters=None): + """accumulate all counters""" + + if global_counters is not None: + if "responsiveness" in global_counters: + global_counters["responsiveness"].extend(self.responsiveness()) + self.xperf(global_counters) + + def xperf(self, counter_results): + """record xperf counters in counter_results dictionary""" + + session_store_counter = "time_to_session_store_window_restored_ms" + + counters = [ + "main_startup_fileio", + "main_startup_netio", + "main_normal_fileio", + "main_normal_netio", + "nonmain_startup_fileio", + "nonmain_normal_fileio", + "nonmain_normal_netio", + session_store_counter, + ] + + mainthread_counter_keys = ["readcount", "readbytes", "writecount", "writebytes"] + mainthread_counters = [ + "_".join(["mainthread", counter_key]) + for counter_key in mainthread_counter_keys + ] + + self.mainthread_io(counter_results) + + if ( + not set(counters) + .union(set(mainthread_counters)) + .intersection(counter_results.keys()) + ): + # no xperf counters to accumulate + return + + filename = "etl_output_thread_stats.csv" + if not os.path.exists(filename): + raise utils.TalosError( + "Error: we are looking for xperf results file %s," + " and didn't find it" % filename + ) + + contents = open(filename).read() + lines = contents.splitlines() + reader = csv.reader(lines) + header = None + for row in reader: + # Read CSV + row = [i.strip() for i in row] + if not header: + # We are assuming the first row is the header and all other + # data is counters + header = row + continue + values = dict(six.moves.zip(header, row)) + + # Format for talos + thread = values["thread"] + counter = values["counter"].rsplit("_io_bytes", 1)[0] + counter_name = "%s_%s_%sio" % (thread, values["stage"], counter) + value = float(values["value"]) + + # Accrue counter + if counter_name in counter_results: + counter_results.setdefault(counter_name, []).append(value) + self.using_xperf = True + + if set(mainthread_counters).intersection(counter_results.keys()): + filename = "etl_output.csv" + if not os.path.exists(filename): + raise utils.TalosError( + "Error: we are looking for xperf results file" + " %s, and didn't find it" % filename + ) + + contents = open(filename).read() + lines = contents.splitlines() + reader = csv.reader(lines) + header = None + for row in reader: + row = [i.strip() for i in row] + if not header: + # We are assuming the first row is the header and all + # other data is counters + header = row + continue + values = dict(six.moves.zip(header, row)) + for i, mainthread_counter in enumerate(mainthread_counters): + if int(values[mainthread_counter_keys[i]]) > 0: + counter_results.setdefault(mainthread_counter, []).append( + [ + int(values[mainthread_counter_keys[i]]), + values["filename"], + ] + ) + + if session_store_counter in counter_results.keys(): + filename = "etl_output_session_restore_stats.csv" + # This file is a csv but it only contains one field, so we'll just + # obtain the value by converting the second line in the file. + with open(filename, "r") as contents: + lines = contents.read().splitlines() + if len(lines) > 1: + value = float(lines[1].strip()) + counter_results.setdefault(session_store_counter, []).append(value) + + def mainthread_io(self, counter_results): + """record mainthread IO counters in counter_results dictionary""" + + # we want to measure mtio on xperf runs. + # this will be shoved into the xperf results as we ignore those + SCRIPT_DIR = os.path.abspath(os.path.realpath(os.path.dirname(__file__))) + filename = os.path.join(SCRIPT_DIR, "mainthread_io.json") + try: + contents = open(filename).read() + counter_results.setdefault("mainthreadio", []).append(contents) + self.using_xperf = True + except Exception: + # silent failure is fine here as we will only see this on tp5n runs + pass + + def responsiveness(self): + return self.RESULTS_RESPONSIVENESS_REGEX.findall(self.results_raw) diff --git a/testing/talos/talos/run_tests.py b/testing/talos/talos/run_tests.py new file mode 100755 index 0000000000..d1c7299429 --- /dev/null +++ b/testing/talos/talos/run_tests.py @@ -0,0 +1,541 @@ +#!/usr/bin/env python + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import copy +import os +import sys +import time +import traceback + +import mozinfo +import mozversion +import six +from mozgeckoprofiler import view_gecko_profile +from mozlog import get_proxy_logger +from wptserve import server +from wptserve.handlers import handler + +from talos import utils +from talos.config import ConfigurationError, get_configs +from talos.results import TalosResults +from talos.ttest import TTest +from talos.utils import TalosError, TalosRegression + +# directory of this file +here = os.path.dirname(os.path.realpath(__file__)) +LOG = get_proxy_logger() + + +def useBaseTestDefaults(base, tests): + for test in tests: + for item in base: + if item not in test: + test[item] = base[item] + if test[item] is None: + test[item] = "" + return tests + + +def set_tp_preferences(test, browser_config): + # sanity check pageloader values + # mandatory options: tpmanifest, tpcycles + if test["tpcycles"] not in six.moves.range(1, 1000): + raise TalosError("pageloader cycles must be int 1 to 1,000") + if "tpmanifest" not in test: + raise TalosError("tpmanifest not found in test: %s" % test) + + # if profiling is on, override tppagecycles to prevent test hanging + if test["gecko_profile"]: + LOG.info( + "Gecko profiling is enabled so talos is reducing the number " + "of cycles, please disregard reported numbers" + ) + for cycle_var in ["tppagecycles", "tpcycles", "cycles"]: + if test[cycle_var] > 2: + test[cycle_var] = 2 + + CLI_bool_options = [ + "tpchrome", + "tphero", + "tpmozafterpaint", + "tploadnocache", + "tpscrolltest", + "fnbpaint", + "pdfpaint", + "a11y", + ] + CLI_options = ["tpcycles", "tppagecycles", "tptimeout", "tpmanifest"] + for key in CLI_bool_options: + _pref_name = "talos.%s" % key + if key in test: + test["preferences"][_pref_name] = test.get(key) + else: + # current test doesn't use this setting, remove it from our prefs + if _pref_name in test["preferences"]: + del test["preferences"][_pref_name] + + for key in CLI_options: + value = test.get(key) + _pref_name = "talos.%s" % key + if value: + test["preferences"][_pref_name] = value + else: + # current test doesn't use this setting, remove it from our prefs + if _pref_name in test["preferences"]: + del test["preferences"][_pref_name] + + +def setup_webserver(webserver): + """Set up a new web server with wptserve.""" + LOG.info("starting webserver on %r" % webserver) + + @handler + def tracemonkey_pdf_handler(request, response): + """Handler for the talos pdfpaint test.""" + headers = [("Content-Type", "application/pdf")] + with open("%s/tests/pdfpaint/tracemonkey.pdf" % here, "rb") as file: + content = file.read() + return headers, content + + host, port = webserver.split(":") + httpd = server.WebTestHttpd(host=host, port=int(port), doc_root=here) + httpd.router.register( + "GET", "tests/pdfpaint/tracemonkey.pdf", tracemonkey_pdf_handler + ) + return httpd + + +def skip_test(test_instance_dict, config): + # Determines if a test should be skipped, and returns + # a message with a reason why or None if it doesn't need + # to be skipped + if not test_instance_dict.get("pine", True) and config.get( + "project", "" + ).startswith("pine"): + return "Broken on the pine branch" + return None + + +def run_tests(config, browser_config): + """Runs the talos tests on the given configuration and generates a report.""" + # get the test data + tests = config["tests"] + tests = useBaseTestDefaults(config.get("basetest", {}), tests) + paths = ["profile_path", "tpmanifest", "extensions", "setup", "cleanup"] + + for test_index, test in enumerate(tests): + if config.get("suite", False): + test["suite"] = config["suite"] + if test_index == 0: + test["is_first_test"] = True + # Check for profile_path, tpmanifest and interpolate based on Talos + # root https://bugzilla.mozilla.org/show_bug.cgi?id=727711 + # Build command line from config + for path in paths: + if test.get(path): + if path == "extensions": + for _index, _ext in enumerate(test["extensions"]): + test["extensions"][_index] = utils.interpolate(_ext) + else: + test[path] = utils.interpolate(test[path]) + if test.get("tpmanifest"): + test["tpmanifest"] = os.path.normpath( + "file:/%s" + % (six.moves.urllib.parse.quote(test["tpmanifest"], "/\\t:\\")) + ) + test["preferences"]["talos.tpmanifest"] = test["tpmanifest"] + + # if using firstNonBlankPaint, set test preference for it + # so that the browser pref will be turned on (in ffsetup) + if test.get("fnbpaint", False): + LOG.info("Test is using firstNonBlankPaint, browser pref will be turned on") + test["preferences"][ + "dom.performance.time_to_non_blank_paint.enabled" + ] = True + + test["setup"] = utils.interpolate(test["setup"]) + test["cleanup"] = utils.interpolate(test["cleanup"]) + + if not test.get("profile", False): + test["profile"] = config.get("profile") + + if mozinfo.os == "win": + browser_config["extra_args"] = ["-wait-for-browser", "-no-deelevate"] + else: + browser_config["extra_args"] = [] + + # pass --no-remote to firefox launch, if --develop is specified + # we do that to allow locally the user to have another running firefox + # instance + if browser_config["develop"]: + browser_config["extra_args"].append("--no-remote") + + # Pass subtests filter argument via a preference + if browser_config["subtests"]: + browser_config["preferences"]["talos.subtests"] = browser_config["subtests"] + + if not browser_config.get("fission", True): + browser_config["preferences"]["fission.autostart"] = False + + browser_config["preferences"]["network.proxy.type"] = 2 + browser_config["preferences"]["network.proxy.autoconfig_url"] = ( + """data:text/plain, +function FindProxyForURL(url, host) { + if (url.startsWith('http')) { + return 'PROXY %s'; + } + return 'DIRECT'; +}""" + % browser_config["webserver"] + ) + + # If --code-coverage files are expected, set flag in browser config so ffsetup knows + # that it needs to delete any ccov files resulting from browser initialization + # NOTE: This is only supported in production; local setup of ccov folders and + # data collection not supported yet, so if attempting to run with --code-coverage + # flag locally, that is not supported yet + if config.get("code_coverage", False): + if browser_config["develop"]: + raise TalosError( + "Aborting: talos --code-coverage flag is only " + "supported in production" + ) + else: + browser_config["code_coverage"] = True + + # set defaults + testdate = config.get("testdate", "") + + # get the process name from the path to the browser + if not browser_config["process"]: + browser_config["process"] = os.path.basename(browser_config["browser_path"]) + + # fix paths to substitute + # `os.path.dirname(os.path.abspath(__file__))` for ${talos} + # https://bugzilla.mozilla.org/show_bug.cgi?id=705809 + browser_config["extensions"] = [ + utils.interpolate(i) for i in browser_config["extensions"] + ] + browser_config["bcontroller_config"] = utils.interpolate( + browser_config["bcontroller_config"] + ) + + # normalize browser path to work across platforms + browser_config["browser_path"] = os.path.normpath(browser_config["browser_path"]) + + binary = browser_config["browser_path"] + version_info = mozversion.get_version(binary=binary) + browser_config["browser_name"] = version_info["application_name"] + browser_config["browser_version"] = version_info["application_version"] + browser_config["buildid"] = version_info["application_buildid"] + try: + browser_config["repository"] = version_info["application_repository"] + browser_config["sourcestamp"] = version_info["application_changeset"] + except KeyError: + if not browser_config["develop"]: + print("Abort: unable to find changeset or repository: %s" % version_info) + sys.exit(1) + else: + browser_config["repository"] = "develop" + browser_config["sourcestamp"] = "develop" + + # get test date in seconds since epoch + if testdate: + date = int(time.mktime(time.strptime(testdate, "%a, %d %b %Y %H:%M:%S GMT"))) + else: + date = int(time.time()) + LOG.debug("using testdate: %d" % date) + LOG.debug("actual date: %d" % int(time.time())) + + # results container + talos_results = TalosResults() + + # results links + if not browser_config["develop"] and not config["gecko_profile"]: + results_urls = dict( + # another hack; datazilla stands for Perfherder + # and do not require url, but a non empty dict is required... + output_urls=["local.json"], + ) + else: + # local mode, output to files + results_urls = dict(output_urls=[os.path.abspath("local.json")]) + + httpd = setup_webserver(browser_config["webserver"]) + httpd.start() + + # legacy still required for perfherder data + talos_results.add_extra_option("e10s") + talos_results.add_extra_option("stylo") + + if config["gecko_profile"]: + talos_results.add_extra_option("gecko-profile") + + # differentiate fission vs non-fission results in perfherder + if browser_config.get("fission", True): + talos_results.add_extra_option("fission") + + # differentiate webrender from non-webrender results + if browser_config["preferences"].get("gfx.webrender.software", False): + talos_results.add_extra_option("webrender-sw") + else: + # we need to add 'webrender' so reported data is consistent + talos_results.add_extra_option("webrender") + + # differentiate webgl from webgl-ipc results + if browser_config["preferences"].get("webgl.out-of-process", False): + talos_results.add_extra_option("webgl-ipc") + + testname = None + + # run the tests + timer = utils.Timer() + LOG.suite_start(tests=[test["name"] for test in tests]) + try: + for test in tests: + testname = test["name"] + LOG.test_start(testname) + + # Skip test if necessary + skip_reason = skip_test(test, config) + if skip_reason is not None and skip_reason != "": + LOG.info("Skipping %s, reason: %s" % (testname, skip_reason)) + LOG.test_end( + testname, + status="SKIP", + message="Test skipped: %s" % skip_reason, + ) + continue + + if not test.get("url"): + # set browser prefs for pageloader test setings (doesn't use cmd line args / url) + test["url"] = None + set_tp_preferences(test, browser_config) + + mytest = TTest() + + # some tests like ts_paint return multiple results in a single iteration + if test.get("firstpaint", False) or test.get("userready", None): + # we need a 'testeventmap' to tell us which tests each event should map to + multi_value_result = None + separate_results_list = [] + + test_event_map = test.get("testeventmap", None) + if test_event_map is None: + raise TalosError( + "Need 'testeventmap' in test.py for %s" % test.get("name") + ) + + # run the test + multi_value_result = mytest.runTest(browser_config, test) + if multi_value_result is None: + raise TalosError( + "Abort: no results returned for %s" % test.get("name") + ) + + # parse out the multi-value results, and 'fake it' to appear like separate tests + separate_results_list = convert_to_separate_test_results( + multi_value_result, test_event_map + ) + + # now we have three separate test results, store them + for test_result in separate_results_list: + talos_results.add(test_result) + + # some tests like bloom_basic run two separate tests and then compare those values + # we want the results in perfherder to only be the actual difference between those + # and store the base and reference test replicates in results.json for upload + elif test.get("base_vs_ref", False): + # run the test, results will be reported for each page like two tests in the suite + base_and_reference_results = mytest.runTest(browser_config, test) + # now compare each test, and create a new test object for the comparison + talos_results.add(make_comparison_result(base_and_reference_results)) + else: + # just expecting regular test - one result value per iteration + talos_results.add(mytest.runTest(browser_config, test)) + LOG.test_end(testname, status="OK") + + except TalosRegression as exc: + LOG.error("Detected a regression for %s" % testname) + # by returning 1, we report an orange to buildbot + # http://docs.buildbot.net/latest/developer/results.html + LOG.test_end( + testname, status="FAIL", message=str(exc), stack=traceback.format_exc() + ) + return 1 + except Exception as exc: + # NOTE: if we get into this condition, talos has an internal + # problem and cannot continue + # this will prevent future tests from running + LOG.test_end( + testname, status="ERROR", message=str(exc), stack=traceback.format_exc() + ) + # indicate a failure to buildbot, turn the job red + return 2 + finally: + LOG.suite_end() + httpd.stop() + + LOG.info("Completed test suite (%s)" % timer.elapsed()) + + if talos_results.has_results(): + # output results + if results_urls and not browser_config["no_upload_results"]: + talos_results.output(results_urls) + if browser_config["develop"] or config["gecko_profile"]: + print( + "Thanks for running Talos locally. Results are in %s" + % (results_urls["output_urls"]) + ) + + # when running talos locally with gecko profiling on, use the view-gecko-profile + # tool to automatically load the latest gecko profile in profiler.firefox.com + if config["gecko_profile"] and browser_config["develop"]: + if os.environ.get("DISABLE_PROFILE_LAUNCH", "0") == "1": + LOG.info( + "Not launching profiler.firefox.com because DISABLE_PROFILE_LAUNCH=1" + ) + else: + view_gecko_profile_from_talos() + else: + LOG.error("No tests ran") + return 2 + + # we will stop running tests on a failed test, or we will return 0 for + # green + return 0 + + +def view_gecko_profile_from_talos(): + profile_zip_path = os.environ.get("TALOS_LATEST_GECKO_PROFILE_ARCHIVE", None) + if profile_zip_path is None or not os.path.exists(profile_zip_path): + LOG.info( + "No local talos gecko profiles were found so not launching profiler.firefox.com" + ) + return + + LOG.info("Profile saved locally to: %s" % profile_zip_path) + view_gecko_profile(profile_zip_path) + + +def make_comparison_result(base_and_reference_results): + """Receive a test result object meant to be used as a base vs reference test. The result + object will have one test with two subtests; instead of traditional subtests we want to + treat them as separate tests, comparing them together and reporting the comparison results. + + Results with multiple pages used as subtests would look like this normally, with the overall + result value being the mean of the pages/subtests: + + PERFHERDER_DATA: {"framework": {"name": "talos"}, "suites": [{"extraOptions": ["e10s"], + "name": "bloom_basic", "lowerIsBetter": true, "alertThreshold": 5.0, "value": 594.81, + "subtests": [{"name": ".html", "lowerIsBetter": true, "alertThreshold": 5.0, "replicates": + [586.52, ...], "value": 586.52], "unit": "ms"}, {"name": "-ref.html", "lowerIsBetter": true, + "alertThreshold": 5.0, "replicates": [603.225, ...], "value": 603.225, "unit": "ms"}]}]} + + We want to compare the subtests against eachother (base vs ref) and create a new single test + results object with the comparison results, that will look like traditional single test results + like this: + + PERFHERDER_DATA: {"framework": {"name": "talos"}, "suites": [{"lowerIsBetter": true, + "subtests": [{"name": "", "lowerIsBetter": true, "alertThreshold": 5.0, "replicates": + [16.705, ...], "value": 16.705, "unit": "ms"}], "extraOptions": ["e10s"], "name": + "bloom_basic", "alertThreshold": 5.0}]} + """ + # create a new results object for the comparison result; keep replicates from both pages + comparison_result = copy.deepcopy(base_and_reference_results) + + # remove original results from our copy as they will be replaced by one comparison result + comparison_result.results[0].results = [] + comp_results = comparison_result.results[0].results + + # zero-based count of how many base vs reftest sets we have + subtest_index = 0 + + # each set of two results is actually a base test followed by the + # reference test; we want to go through each set of base vs reference + for x in range(0, len(base_and_reference_results.results[0].results), 2): + + # separate the 'base' and 'reference' result run values + results = base_and_reference_results.results[0].results + base_result_runs = results[x]["runs"] + ref_result_runs = results[x + 1]["runs"] + + # the test/subtest result is the difference between the base vs reference test page + # values; for this result use the base test page name for the subtest/test name + sub_test_name = base_and_reference_results.results[0].results[x]["page"] + + # populate our new comparison result with 'base' and 'ref' replicates + comp_results.append( + { + "index": 0, + "runs": [], + "page": sub_test_name, + "base_runs": base_result_runs, + "ref_runs": ref_result_runs, + } + ) + + # now step thru each result, compare 'base' vs 'ref', and store the difference in 'runs' + _index = 0 + for next_ref in comp_results[subtest_index]["ref_runs"]: + diff = abs(next_ref - comp_results[subtest_index]["base_runs"][_index]) + # pylint: disable=W1633 + comp_results[subtest_index]["runs"].append(float(round(diff, 3))) + _index += 1 + + # increment our base vs reference subtest index + subtest_index += 1 + + return comparison_result + + +def convert_to_separate_test_results(multi_value_result, test_event_map): + """Receive a test result that actually contains multiple values in a single iteration, and + parse it out in order to 'fake' three seprate test results. + + Incoming result looks like this: + + [{'index': 0, 'runs': {'event_1': [1338, ...], 'event_2': [1438, ...], 'event_3': + [1538, ...]}, 'page': 'NULL'}] + + We want to parse it out such that we have 'faked' three separate tests, setting test names + and taking the run values for each. End goal is to have results reported as three separate + tests, like this: + + PERFHERDER_DATA: {"framework": {"name": "talos"}, "suites": [{"subtests": [{"replicates": + [1338, ...], "name": "ts_paint", "value": 1338}], "extraOptions": ["e10s"], "name": + "ts_paint"}, {"subtests": [{"replicates": [1438, ...], "name": "ts_first_paint", "value": + 1438}], "extraOptions": ["e10s"], "name": "ts_first_paint"}, {"subtests": [{"replicates": + [1538, ...], "name": "ts_user_ready", "value": 1538}], "extraOptions": ["e10s"], "name": + "ts_user_ready"}]} + """ + list_of_separate_tests = [] + + for next_test in test_event_map: + # copy the original test result that has multiple values per iteration + separate_test = copy.deepcopy(multi_value_result) + # set the name of the new 'faked' test + separate_test.test_config["name"] = next_test["name"] + # set the run values for the new test + for x in separate_test.results: + for item in x.results: + all_runs = item["runs"] + item["runs"] = all_runs[next_test["label"]] + # add it to our list of results to return + list_of_separate_tests.append(separate_test) + + return list_of_separate_tests + + +def main(args=sys.argv[1:]): + try: + config, browser_config = get_configs() + except ConfigurationError as exc: + sys.exit("ERROR: %s" % exc) + sys.exit(run_tests(config, browser_config)) + + +if __name__ == "__main__": + main() diff --git a/testing/talos/talos/scripts/report.py b/testing/talos/talos/scripts/report.py new file mode 100644 index 0000000000..f5b952371a --- /dev/null +++ b/testing/talos/talos/scripts/report.py @@ -0,0 +1,148 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import argparse +import collections +import csv +import os +import sys +from calendar import day_name +from datetime import datetime + +import compare +import numpy +import six + +sys.path.insert(1, os.path.join(sys.path[0], "..")) + + +def get_branch(platform): + if platform.startswith("OSX"): + return compare.branch_map["Inbound"]["pgo"]["id"] + return compare.branch_map["Inbound"]["nonpgo"]["id"] + + +def get_all_test_tuples(): + ret = [] + for test in compare.test_map: + for platform in compare.platform_map: + ret.extend(get_tuple(test, platform)) + return ret + + +def get_tuple(test, platform): + return [ + ( + compare.test_map[test]["id"], + get_branch(platform), + compare.platform_map[platform], + test, + platform, + ) + ] + + +def generate_report(tuple_list, filepath, mode="variance"): + avg = [] + + for test in tuple_list: + testid, branchid, platformid = test[:3] + data_dict = compare.getGraphData(testid, branchid, platformid) + week_avgs = [] + + if data_dict: + data = data_dict["test_runs"] + data.sort(key=lambda x: x[3]) + data = data[int(0.1 * len(data)) : int(0.9 * len(data) + 1)] + time_dict = collections.OrderedDict() + days = {} + + for point in data: + time = datetime.fromtimestamp(point[2]).strftime("%Y-%m-%d") + time_dict[time] = time_dict.get(time, []) + [point[3]] + + for time in time_dict: + runs = len(time_dict[time]) + weekday = datetime.strptime(time, "%Y-%m-%d").strftime("%A") + variance = numpy.var(time_dict[time]) + if mode == "variance": + days[weekday] = days.get(weekday, []) + [variance] + elif mode == "count": + days[weekday] = days.get(weekday, []) + [runs] + + line = ["-".join(test[3:])] + for day in day_name: + if mode == "variance": + # removing top and bottom 10% to reduce outlier influence + # pylint --py3k W1619 + tenth = len(days[day]) / 10 + average = numpy.average(sorted(days[day])[tenth : tenth * 9 + 1]) + elif mode == "count": + average = numpy.average(days[day]) + line.append("%.3f" % average) + week_avgs.append(average) + + outliers = is_normal(week_avgs) + for j in six.moves.range(7): + if j in outliers: + line[j + 1] = "**" + str(line[j + 1]) + "**" + + avg.append(line) + + with open(filepath, "wb") as report: + avgs_header = csv.writer(report, quoting=csv.QUOTE_ALL) + avgs_header.writerow(["test-platform"] + list(day_name)) + for line in avg: + out = csv.writer(report, quoting=csv.QUOTE_ALL) + out.writerow(line) + + +def is_normal(y): + # This is a crude initial attempt at detecting normal distributions + # TODO: Improve this + limit = 1.5 + clean_week = [] + outliers = [] + # find a baseline for the week + if (min(y[0:4]) * limit) <= max(y[0:4]): + for i in six.moves.range(1, 5): + if y[i] > (y[i - 1] * limit) or y[i] > (y[i + 1] * limit): + outliers.append(i) + continue + clean_week.append(y[i]) + else: + clean_week = y + + # look at weekends now + # pylint --py3k W1619 + avg = sum(clean_week) / len(clean_week) + for i in six.moves.range(5, 7): + # look for something outside of the 20% window + if (y[i] * 1.2) < avg or y[i] > (avg * 1.2): + outliers.append(i) + return outliers + + +def main(): + parser = argparse.ArgumentParser(description="Generate weekdays reports") + parser.add_argument("--test", help="show only the test named TEST") + parser.add_argument("--platform", help="show only the platform named PLATFORM") + parser.add_argument("--mode", help="select mode", default="variance") + args = parser.parse_args() + tuple_list = get_all_test_tuples() + f = "report" + if args.platform: + tuple_list = [x for x in tuple_list if x[4] == args.platform] + f += "-%s" % args.platform + + if args.test: + tuple_list = [x for x in tuple_list if x[3] == args.test] + f += "-%s" % args.test + + f += "-%s" % args.mode + generate_report(tuple_list, filepath=f + ".csv", mode=args.mode) + + +if __name__ == "__main__": + main() diff --git a/testing/talos/talos/scripts/talos-debug.js b/testing/talos/talos/scripts/talos-debug.js new file mode 100644 index 0000000000..90c102071e --- /dev/null +++ b/testing/talos/talos/scripts/talos-debug.js @@ -0,0 +1,215 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** **************************************************************** + * window.talosDebug provides some statistical functions + * (sum, average, median, stddev) and a tpRecordTime method which + * reports some statistics about the data set, including detected + * stability point of the data (detecting first few noisy elements). + * If tpRecordTime doesn't exist globally (i.e. running outside of + * talos, e.g. in a browser), then it points it to window.talosDebug.tpRecordTime + * Can be controlled by few properties (disable display, hardcoded + * stability point, etc) + * + * talos-debug.js: Bug 849558 + *****************************************************************/ +window.talosDebug = { + // Optional config properties + disabled: false, + ignore: -1, // Number of items to ignore at the begining of the set. -1 for auto-detect. + displayData: false, // If true, will also display all the data points. + fixed: 2, // default floating point digits for display. + // End of config + + sum(values) { + return values.reduce(function (a, b) { + return a + b; + }); + }, + + average(values) { + var d = window.talosDebug; + return values.length ? d.sum(values) / values.length : 999999; + }, + + median(values) { + var clone = values.slice(0); + var sorted = clone.sort(function (a, b) { + // eslint-disable-next-line no-nested-ternary + return a > b ? 1 : a < b ? -1 : 0; + }); + var len = values.length; + if (!len) { + return 999999; + } + if (len % 2) { + // We have a middle number + return sorted[(len - 1) / 2]; + } + return (sorted[len / 2] + sorted[len / 2 - 1]) / 2; // Average value of the two middle items. + }, + + stddev(values, avg) { + if (values.length <= 1) { + return 0; + } + + return Math.sqrt( + values + .map(function (v) { + return Math.pow(v - avg, 2); + }) + .reduce(function (a, b) { + return a + b; + }) / + (values.length - 1) + ); + }, + + // Estimate the number of warmup iterations of this data set (in a completely unscrientific way). + // returns -1 if could not find a stability point (supposedly meaning that the values + // are still in the process of convergence). + // Algorithm (not based on a scientific method which I know of): + // Target: Find a locally noisy value after the values show stability + // (stddev of a moving window stops decreasing), while trying to make sure + // that it wasn't a glitch and the next 2 floating window stddev are, indeed, not + // still decreasing. + // Do the above for few different window widths (3-7), get the maximum result of those. + // Now we should have an index which is at least the 2nd value within the stable part. + // We get stddev for that index..end (baseStd), and then go backwards as long as stddev is + // decreasing or within ~1% of baseStd, and return the earliest index for which it is. + detectWarmup(values) { + var MIN_WIDTH = 3; + var MAX_WIDTH = 7; + var d = window.talosDebug; + + function windowStd(from, winSize) { + var win = values.slice(from, from + winSize); + return d.stddev(win, d.median(values)); + } + + var stableFrom = -1; + var overallAverage = d.median(values); + // var overallStd = d.stddev(values, overallAverage); + for (var winWidth = MIN_WIDTH; winWidth < MAX_WIDTH + 1; winWidth++) { + var prevStd = windowStd(0, winWidth); + for (var i = 1; i < values.length - winWidth - 3; i++) { + var w0 = windowStd(i + 0, winWidth); + var w1 = windowStd(i + 1, winWidth); + var w2 = windowStd(i + 2, winWidth); + // var currWindow = values.slice(i, i + winWidth); + if (w0 >= prevStd && !(w1 < w0 && w2 < w1)) { + if (i > stableFrom) { + stableFrom = i; + } + break; + } + prevStd = w0; + } + } + + function withinPercentage(base, value, percentage) { + return Math.abs(base - value) < (base * percentage) / 100; + } + // Now go backwards as long as stddev decreases or doesn't increase in more than 1%. + var baseStd = d.stddev(values.slice(stableFrom), overallAverage); + var len = values.length; + while (true) { + var current = d.stddev(values.slice(stableFrom - 1), overallAverage); + // 100/len : the more items we have, the more sensitively we compare: + // for 100 items, we're allowing 2% over baseStd. + if ( + stableFrom > 0 && + (current < baseStd || + withinPercentage(baseStd, current, 200 / (len ? len : 100))) + ) { + stableFrom--; + } else { + break; + } + } + + return stableFrom; + }, + + statsDisplay(collection) { + var d = window.talosDebug; + var std = d.stddev(collection, d.average(collection)); + var avg = d.average(collection); + var med = d.median(collection); + return ( + "Count: " + + collection.length + + "\nAverage: " + + avg.toFixed(d.fixed) + + "\nMedian: " + + med.toFixed(d.fixed) + + "\nStdDev: " + + std.toFixed(d.fixed) + + " (" + + ((100 * std) / (avg ? avg : 1)).toFixed(d.fixed) + + "% of average)" + ); + }, + + tpRecordTime(dataCSV) { + var d = window.talosDebug; + if (d.disabled) { + return; + } + + var collection = ("" + dataCSV).split(",").map(function (item) { + return parseFloat(item); + }); + var res = d.statsDisplay(collection); + + var warmup = d.ignore >= 0 ? d.ignore : d.detectWarmup(collection); + if (warmup >= 0) { + res += + "\n\nWarmup " + + (d.ignore >= 0 ? "requested: " : "auto-detected: ") + + warmup; + var warmedUp = collection.slice(warmup); + if (warmup) { + res += + "\nAfter ignoring first " + + (warmup > 1 ? warmup + " items" : "item") + + ":\n"; + res += d.statsDisplay(warmedUp); + } + } else { + res += "\n\nWarmup auto-detection: Failed."; + } + + if (d.displayData) { + var disp = collection.map(function (item) { + return item.toFixed(d.fixed); + }); + if (warmup >= 0) { + disp.splice(warmup, 0, "[warmed-up:]"); + } + res += "\n\nRecorded:\n" + disp.join(", "); + + res += "\n\nStddev from item NN to last:\n"; + disp = collection.map(function (value, index) { + return d + .stddev(collection.slice(index), d.average(collection.slice(index))) + .toFixed(d.fixed); + }); + if (warmup >= 0) { + disp.splice(warmup, 0, "[warmed-up:]"); + } + res += disp.join(", "); + } else { + res += "\n\n[set window.talosDebug.displayData=true for data]"; + } + + alert(res); + }, +}; + +// Enable testing outside of talos by providing an alternative report function. +if (typeof tpRecordTime === "undefined") { + tpRecordTime = window.talosDebug.tpRecordTime; +} diff --git a/testing/talos/talos/startup_test/__init__.py b/testing/talos/talos/startup_test/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testing/talos/talos/startup_test/sessionrestore/addon/api.js b/testing/talos/talos/startup_test/sessionrestore/addon/api.js new file mode 100644 index 0000000000..6cb47990f5 --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/addon/api.js @@ -0,0 +1,171 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80 filetype=javascript: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +/* globals Services, XPCOMUtils */ + +ChromeUtils.defineESModuleGetters(this, { + PromiseUtils: "resource://gre/modules/PromiseUtils.sys.mjs", + SessionStartup: "resource:///modules/sessionstore/SessionStartup.sys.mjs", + StartupPerformance: + "resource:///modules/sessionstore/StartupPerformance.sys.mjs", + setTimeout: "resource://gre/modules/Timer.sys.mjs", +}); + +XPCOMUtils.defineLazyModuleGetters(this, { + BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", +}); + +/* globals ExtensionAPI */ + +this.sessionrestore = class extends ExtensionAPI { + onStartup() { + this.promiseIdleFinished = PromiseUtils.defer(); + Services.obs.addObserver(this, "browser-idle-startup-tasks-finished"); + // run() is async but we don't want to await or return it here, + // since the extension should be considered started even before + // run() has finished all its work. + this.run(); + } + + observe(subject, topic, data) { + if (topic == "browser-idle-startup-tasks-finished") { + this.promiseIdleFinished.resolve(); + } + } + + async ensureTalosParentProfiler() { + // TalosParentProfiler is part of TalosPowers, which is a separate WebExtension + // that may or may not already have finished loading at this point. getTalosParentProfiler + // is used to wait for TalosPowers to be around before continuing. This should + // not be used to delay the execution of the test, but to delay the dumping of + // the profile to disk. + async function getTalosParentProfiler() { + try { + var { TalosParentProfiler } = ChromeUtils.importESModule( + "resource://talos-powers/TalosParentProfiler.sys.mjs" + ); + return TalosParentProfiler; + } catch (err) { + await new Promise(resolve => setTimeout(resolve, 500)); + return getTalosParentProfiler(); + } + } + + this.TalosParentProfiler = await getTalosParentProfiler(); + } + + async finishProfiling(msg) { + await this.ensureTalosParentProfiler(); + + // In rare circumstances, it's possible for the session file to be read + // into memory and for SessionStore to report itself as initialized before + // the initial window has had a chance to finish setting itself up. To + // account for this, we ensure that BrowserWindowTracker.windowCount is + // not zero - and if it is, we wait for the first window to finish opening + // before proceeding. + if (!BrowserWindowTracker.windowCount) { + const BROWSER_WINDOW_READY_TOPIC = "browser-delayed-startup-finished"; + await new Promise(resolve => { + let observe = async () => { + Services.obs.removeObserver(observe, BROWSER_WINDOW_READY_TOPIC); + resolve(); + }; + Services.obs.addObserver(observe, BROWSER_WINDOW_READY_TOPIC); + }); + } + + let win = BrowserWindowTracker.getTopWindow(); + let args = win.arguments[0]; + if (args && args instanceof Ci.nsIArray) { + // For start-up tests Gecko Profiler arguments are passed to the first URL in + // the query string, with the presumption that some tab that is loaded at start-up + // will want to use them in the TalosContentProfiler.js script. + // + // Because we're running this part of the test in the parent process, we + // pull those arguments from the top window directly. This is mainly so + // that TalosParentProfiler knows where to save the profile. + // eslint-disable-next-line mozilla/reject-importGlobalProperties + Cu.importGlobalProperties(["URL"]); + let url = new URL(args.queryElementAt(0, Ci.nsISupportsString).data); + this.TalosParentProfiler.initFromURLQueryParams(url.search); + } + + await this.TalosParentProfiler.pause(msg); + await this.TalosParentProfiler.finishStartupProfiling(); + } + + async run() { + try { + let didRestore = true; + + if (!StartupPerformance.isRestored) { + await SessionStartup.onceInitialized; + + if ( + SessionStartup.sessionType == SessionStartup.NO_SESSION || + SessionStartup.sessionType == SessionStartup.DEFER_SESSION + ) { + // We should only hit this patch in sessionrestore_no_auto_restore + if ( + !Services.prefs.getBoolPref("talos.sessionrestore.norestore", false) + ) { + throw new Error("Session was not restored!"); + } + await this.finishProfiling( + "This test measures the time between process " + + "creation and sessionRestored." + ); + + didRestore = false; + } else { + await new Promise(resolve => { + let observe = async () => { + Services.obs.removeObserver( + observe, + StartupPerformance.RESTORED_TOPIC + ); + await this.finishProfiling( + "This test measures the time between process " + + "creation and the last restored tab." + ); + + resolve(); + }; + Services.obs.addObserver( + observe, + StartupPerformance.RESTORED_TOPIC + ); + }); + } + } + + let startup_info = Services.startup.getStartupInfo(); + let restoreTime = didRestore + ? StartupPerformance.latestRestoredTimeStamp + : startup_info.sessionRestored; + let duration = restoreTime - startup_info.process; + let win = BrowserWindowTracker.getTopWindow(); + + // Report data to Talos, if possible. + dump("__start_report" + duration + "__end_report\n\n"); + + // Next one is required by the test harness but not used. + dump("__startTimestamp" + win.performance.now() + "__endTimestamp\n\n"); + } catch (ex) { + dump(`SessionRestoreTalosTest: error ${ex}\n`); + dump(ex.stack); + dump("\n"); + } + + // Ensure we wait for idle to finish so that we can have a clean shutdown + // that isn't happening in the middle of start-up. + await this.promiseIdleFinished.promise; + + Services.startup.quit(Services.startup.eForceQuit); + } +}; diff --git a/testing/talos/talos/startup_test/sessionrestore/addon/manifest.json b/testing/talos/talos/startup_test/sessionrestore/addon/manifest.json new file mode 100644 index 0000000000..5290abae6b --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/addon/manifest.json @@ -0,0 +1,23 @@ +{ + "manifest_version": 2, + "name": "Session Restore Startup Performance Test", + "description": "Bug 936630, bug 1098357. This add-on broadcasts the duration of session restore.", + "version": "2.1", + + "browser_specific_settings": { + "gecko": { + "id": "session-restore-test-2@mozilla.org" + } + }, + + "experiment_apis": { + "sessionrestore": { + "schema": "schema.json", + "parent": { + "scopes": ["addon_parent"], + "script": "api.js", + "events": ["startup"] + } + } + } +} diff --git a/testing/talos/talos/startup_test/sessionrestore/addon/schema.json b/testing/talos/talos/startup_test/sessionrestore/addon/schema.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/addon/schema.json @@ -0,0 +1 @@ +[] diff --git a/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionCheckpoints.json b/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionCheckpoints.json new file mode 100644 index 0000000000..e02c421c3b --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionCheckpoints.json @@ -0,0 +1,11 @@ +{ + "profile-after-change": true, + "final-ui-startup": true, + "sessionstore-windows-restored": true, + "quit-application-granted": true, + "quit-application": true, + "sessionstore-final-state-write-complete": true, + "profile-change-net-teardown": true, + "profile-change-teardown": true, + "profile-before-change": true +} diff --git a/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js b/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js new file mode 100644 index 0000000000..bb41987741 --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js @@ -0,0 +1,8030 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +{ + "version": ["sessionrestore", 1], + "windows": [{ + "tabs": [{ + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738406681, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ0N2FkYTczLTJjY2QtNDc0Ny05YmVkLWM0MTgzYWEzNDI2MX0AAAAA", + "docIdentifier": 103, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/", + "title": "Welcome to Facebook - Log In, Sign Up or Learn More", + "cacheKey": 0, + "ID": 3738406682, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkxMzRlNDNmLTcwMTctNDVjYi05OTZmLWZjZGU3N2MxZmFhNn0AAAAA", + "docIdentifier": 104, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 0, + "ID": 3738406683, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc2ZjBiZTJjLWNlMDYtNGI5Yy1iOWE1LTUyNGE3ODg2ZDFhY30AAAAA", + "docIdentifier": 105, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256027, + "ID": 3738406684, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY4MDk2MDVhLWEyNTQtNGQzZS1iZjk0LTc5NGQyMjRmMjMzNH0AAAAA", + "docIdentifier": 106, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256028, + "ID": 3738406685, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE3N2NkMjljLTg3MWItNDYzNi04ZDU4LTgwMDYyYjc1Zjk4M30AAAAA", + "docIdentifier": 107, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256029, + "ID": 3738406686, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezlmMjU0YTg0LTc0NGYtNGVjNy1hN2NiLTkxNDA4YzE0OGQwMX0AAAAA", + "docIdentifier": 108, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738406687, + "docshellUUID": "{bc7c1e1a-47d2-4b02-b01a-cb913c7965ed}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NiNjE0MTJjLWMxZjgtNDk5My05YWY3LWM2ZmEzYWY1YTAwYX0AAAAA", + "docIdentifier": 109, + "structuredCloneState": "GQAAAAQA//9oAHQAdABwAHMAOgAvAC8AdwB3AHcALgBmAGEAYwBlAGIAbwBvAGsALgBjAG8AbQAvAAAAAAAAAA==", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451818877, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 7, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAMWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9d3d3LmZhY2Vib29rLmNvbS8AAAAAAAAABAAAAAcAAAAOAAAAB/////8AAAAH/////wAAAAcAAAAJAAAAFQAAABwAAAAVAAAAAQAAABUAAAABAAAAFgAAAAAAAAAW/////wAAAAD/////AAAAFwAAABoAAAAV/////wEAAAAAAAAAAAAAAAA=" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738406454, + "docshellUUID": "{5df5fcc9-749d-45e0-b672-c1b76890eec0}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk2YTA1ZjRiLTMyOGQtNDU1NS04MzNlLWQxMTQ2NDllZmM2Yn0AAAAA", + "docIdentifier": 99, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738406455, + "docshellUUID": "{5df5fcc9-749d-45e0-b672-c1b76890eec0}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI5NDBlMDYyLTY4NmUtNDhjNC1iZmRkLTU0NGRlMDA5ZDc5N30AAAAA", + "docIdentifier": 100, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406456, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ0MWVjNGE3LTY2OWUtNDMwOC1hZWJjLTcwODllZDNjNThlN30AAAAA", + "docIdentifier": 101 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406457, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZjMmVlYzNjLTAwM2QtNGY4Zi1iNTFhLTA1NDljYzUzMWVhOX0AAAAA", + "docIdentifier": 102 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406458, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ViNTFhZTVmLWMxZGMtNGNlYS1hNzlhLTdhMDhkNGEwMWY3OH0AAAAA", + "docIdentifier": 103 + }], + "persist": true + }], + "lastAccessed": 1528451818914, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738406258, + "docshellUUID": "{d9bc5aea-8f59-42cb-8b48-8ac6677f94d9}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI2MTM3YTAxLWZlYjUtNGZmZS05YzhmLWUyN2I5NTMxNDllMn0AAAAA", + "docIdentifier": 96, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738406259, + "docshellUUID": "{d9bc5aea-8f59-42cb-8b48-8ac6677f94d9}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y2ZGYxNzZhLWM3YTEtNDI0ZC04NzlmLTM3MDBiMDkwZDA4MH0AAAAA", + "docIdentifier": 97, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406260, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E5MDk5N2VlLTg2ZmUtNGJkYS1iMzI3LTE0OWQzZWRjNDZjZn0AAAAA", + "docIdentifier": 98 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406261, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IxM2QyYzA3LWE4NDctNDRhZC04ZGMwLTlkNmNlZjY1ZDVkNH0AAAAA", + "docIdentifier": 99 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406262, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA3MzA4ZWUxLTY0MmEtNDg4Mi1iY2FhLTRlODA4YmEyNzNhOH0AAAAA", + "docIdentifier": 100 + }], + "persist": true + }], + "lastAccessed": 1528451818936, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738406020, + "docshellUUID": "{8acd802f-03b1-48a6-a067-3eb9aa6a7e7f}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M3ZjZjNjFkLTQ2YWUtNDIzMy05ZjIyLWI3NzE3YjE3YmY2ZH0AAAAA", + "docIdentifier": 104, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738406021, + "docshellUUID": "{8acd802f-03b1-48a6-a067-3eb9aa6a7e7f}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk1ODAwYzRmLWZkMzktNGU1Yi05NmUyLTFhOWQ5Y2UzNTVlZH0AAAAA", + "docIdentifier": 105, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406022, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZjYTEwNWQwLWY2Y2MtNDE0Ni1iMTg1LTg5NjkyZThjZmFjYX0AAAAA", + "docIdentifier": 106 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406023, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MzMTE0YjA1LTI5NTItNGM3ZS04OTBlLWJlYmNmZjkxYjg5OH0AAAAA", + "docIdentifier": 107 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406024, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JhZTY5YmMyLWE2N2UtNDg1Yi05ZGRmLThlNTBkYzk3YTgyMH0AAAAA", + "docIdentifier": 108 + }], + "persist": true + }], + "lastAccessed": 1528451818967, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738405540, + "docshellUUID": "{d155d2d0-3704-48a6-b90f-0b4b756ec4ef}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk4ZjkxODc0LTlmYjUtNDJkNi04YjViLTM1Y2U2YTFhMGRlZn0AAAAA", + "docIdentifier": 98, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738405541, + "docshellUUID": "{d155d2d0-3704-48a6-b90f-0b4b756ec4ef}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU1OWI3N2RiLTI3M2YtNGE1Mi1hMWJlLWNhZTg2MmZhNDA1Mn0AAAAA", + "docIdentifier": 99, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738405542, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJjMGZjNDA1LTQ1OTctNDcyMS04NWFmLWIwZDk4YzY1ZWJhOH0AAAAA", + "docIdentifier": 100 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738405543, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U4ZTAyOTJmLWU3OWYtNGQwMC05NTgwLWE2MWRlYjEyOWQ2OH0AAAAA", + "docIdentifier": 101 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738405544, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RkMWY5MjQ3LWUyZGUtNDZlMS1hNTRhLTM0NjY3MGE0MzJhOH0AAAAA", + "docIdentifier": 102 + }], + "persist": true + }], + "lastAccessed": 1528451818997, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738353124, + "docshellUUID": "{12cc37f3-e357-41e4-b132-8e697030b736}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkwZmY4YTk2LTg5ZjUtNDhiNC04MTRiLWJhYTM0YjQwMjI0Y30AAAAA", + "docIdentifier": 1, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738353125, + "docshellUUID": "{12cc37f3-e357-41e4-b132-8e697030b736}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc2YmMyZjgwLTVkMzMtNGQ3YS05Y2Y5LTAyYzk0NjhlNDM4Nn0AAAAA", + "docIdentifier": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353126, + "docshellUUID": "{19ff1d9c-ab86-4049-bb6e-9ae0c5016290}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y3MjgxYzU1LTFmMjktNGIwYy04OWRhLTA5OWViZTkzODE0NX0AAAAA", + "docIdentifier": 3 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353127, + "docshellUUID": "{f08430c7-9bd7-49e4-baff-4f490b741b4e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M0OThjMzk0LTg1MDQtNDY2Yi05NjZlLTg1ZTc5NTgwMDhlOH0AAAAA", + "docIdentifier": 4 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353128, + "docshellUUID": "{a2b02301-0523-4b54-9ce6-184a3c725d8b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezcyNWExYzVjLWQ2MGQtNDJkZS1hYjkyLWZlOTZkYWEyNWNjMX0AAAAA", + "docIdentifier": 5 + }], + "persist": true + }], + "lastAccessed": 1528451819026, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738413567, + "docshellUUID": "{a5421f18-2731-401c-a1e5-822c839516bf}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA3NmJkNDY4LWQwNDAtNGZjNi1hZjg5LTIzZjM5ODFkYWNhN30AAAAA", + "docIdentifier": 148, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738413568, + "docshellUUID": "{a5421f18-2731-401c-a1e5-822c839516bf}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UxZTVjMWYzLTE4ZTktNDBlNi1hYmM4LTAyYmRiNWY3Y2Y2Nn0AAAAA", + "docIdentifier": 149, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413569, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVhN2UyNDE4LTc0NWUtNDk1Ni04YWVjLTI1YmZhZTIzNDAxMX0AAAAA", + "docIdentifier": 150 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413570, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZkYjhmNzc0LTk5NmQtNDllNC05ZmEyLWZhZDk2OTE4NTQ5ZH0AAAAA", + "docIdentifier": 151 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413571, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkzMTE5MzU0LTkxZmEtNDM5ZS1hMjRhLWExNzMzNzkwYWIzNH0AAAAA", + "docIdentifier": 152 + }], + "persist": true + }], + "lastAccessed": 1528451819805, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738413679, + "docshellUUID": "{808951e8-a7d3-44a1-8593-1457da8f21e0}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y5NzhmZDk4LWRiYTMtNDIwMC04Nzc5LTMyNzdlYjdkYWEzZX0AAAAA", + "docIdentifier": 155, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738413680, + "docshellUUID": "{808951e8-a7d3-44a1-8593-1457da8f21e0}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIzOTg0MjA1LTNlNjItNGE0Yy1hNzA1LTBkNGU2MDI3ZWMyOX0AAAAA", + "docIdentifier": 156, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413681, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFlYTg3MDc5LWNjNDktNDI0ZC05NWNjLWUwZjNjMzE1ZWUxM30AAAAA", + "docIdentifier": 157 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413682, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMzZjJiNjI2LWE5ODItNGRjMi04ZjAwLTVmOTk0NGMzNmEwNH0AAAAA", + "docIdentifier": 158 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413683, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM2NjE5N2I0LWYzOGItNGIwYy04MzlmLTllNTdiNzQ5NjY3MH0AAAAA", + "docIdentifier": 159 + }], + "persist": true + }], + "lastAccessed": 1528451819963, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738413796, + "docshellUUID": "{ecd8bb52-6b7d-4f4b-bfaf-6a15c3f8932b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NmMWM3NWZiLTQ0YzQtNGJmNC1iODk4LTM3MWM4ZDJmYWYyM30AAAAA", + "docIdentifier": 142, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738413797, + "docshellUUID": "{ecd8bb52-6b7d-4f4b-bfaf-6a15c3f8932b}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM1ZDViM2VkLTBhMWUtNDZlNC1iNTE4LTM3NWE3YzJjMTJlN30AAAAA", + "docIdentifier": 143, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413798, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QxZWE5OWMxLTM2ZDgtNGFlOS04YTg0LTBkZjcxYzEyMzUxZH0AAAAA", + "docIdentifier": 144 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413799, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QyMDJlYzE1LThjMjQtNDZhNC05ODkyLTQ4N2FkNGU2YTJkYX0AAAAA", + "docIdentifier": 145 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413800, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAwODU5ZGQyLTRjYTgtNDNhYS05YWFkLTZhZTdjNTNhY2ZhZn0AAAAA", + "docIdentifier": 146 + }], + "persist": true + }], + "lastAccessed": 1528451820061, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738413921, + "docshellUUID": "{b97136cf-f548-405c-b5ea-82b136ea1cc3}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE4OTIxYWM3LTg3MTQtNDI3OC1hMjM0LWZiOGMzZWFjMjc1MH0AAAAA", + "docIdentifier": 145, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738413922, + "docshellUUID": "{b97136cf-f548-405c-b5ea-82b136ea1cc3}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM3ZGNiMGE1LTViZTAtNGExMy04YjAxLWZiODEzZjA4YzJmNX0AAAAA", + "docIdentifier": 146, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413923, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZmNmEyNGE4LTQxYjEtNDJiOC1hZTM2LWYwYTgyNjI4MzE4MH0AAAAA", + "docIdentifier": 147 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413924, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA1ZDUxMTliLTI5MzQtNDkxNy04NGI4LTdiZjY0MWMwOTY5OX0AAAAA", + "docIdentifier": 148 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738413925, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQwMzRkMDBjLWI5ZGYtNGZlYi1hNDYwLTZjOWRiY2JiYzRmOH0AAAAA", + "docIdentifier": 149 + }], + "persist": true + }], + "lastAccessed": 1528451857671, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738414042, + "docshellUUID": "{5d8ee25d-a38e-4d70-be41-cc2eff887dd9}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA0NTdkZjczLTJjNzQtNDQ3OS04Y2I3LTU0ZmZmMDU0ZGM1Nn0AAAAA", + "docIdentifier": 153, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738414043, + "docshellUUID": "{5d8ee25d-a38e-4d70-be41-cc2eff887dd9}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IxYjE1MjIzLTUzZDEtNDZkZC05NGFjLTk5NTMyN2Q0YWJmNH0AAAAA", + "docIdentifier": 154, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414044, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA3YTMyZTE5LWI0NTQtNGEwMS1hMzgyLTMzMWVhZGFmZTE1YX0AAAAA", + "docIdentifier": 155 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414045, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M1ODNjZmQ0LTc0MGEtNDcxMC04NzgzLWZhOGM0ZWQzMDQwOH0AAAAA", + "docIdentifier": 156 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414046, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IxMTNhZTMyLWU4MjEtNGZkZS1iZTM0LTdlMjk4MGYwYWYzMX0AAAAA", + "docIdentifier": 157 + }], + "persist": true + }], + "lastAccessed": 1528451817691, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738414138, + "docshellUUID": "{4090a1cc-cbd0-49eb-9e8e-bf9f402f652f}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y0Mzg4ZjY0LWM5ZTgtNGY5My1iNWQwLTA4N2I2Y2QzNjQ5NH0AAAAA", + "docIdentifier": 160, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738414139, + "docshellUUID": "{4090a1cc-cbd0-49eb-9e8e-bf9f402f652f}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM3MTNmYzA2LTBmZWQtNDU4Yi1hNTBhLWFiOWI3YTk4MDljM30AAAAA", + "docIdentifier": 161, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414140, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkzNjAyMmUxLTNkZmMtNDQ2Ni1iNjA2LWQ0MDlhMjYyNzljMX0AAAAA", + "docIdentifier": 162 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414141, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY4OGM5ZjQ0LWE5ZTAtNGFlOS1hYWMyLTNhZGIxYWY4Nzg5ZX0AAAAA", + "docIdentifier": 163 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414142, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZiOGYwNTgwLTUxNmMtNDJlNi05NjM0LTk3MDk0MmNhMjZjY30AAAAA", + "docIdentifier": 164 + }], + "persist": true + }], + "lastAccessed": 1528451817721, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738414261, + "docshellUUID": "{b9aff768-1c66-4a7d-b70c-be884baf9651}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E0MGRjNjNiLWM4NmYtNDhjZC1hZjEzLTJiYjA2M2JhMzE4YX0AAAAA", + "docIdentifier": 147, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738414262, + "docshellUUID": "{b9aff768-1c66-4a7d-b70c-be884baf9651}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJlNWE3ODQzLTdlOTUtNGJkZS05N2I4LTYxZTIzYjFlYjlhY30AAAAA", + "docIdentifier": 148, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414263, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA1YTIxZThjLWYzODItNGVkYi05NzdlLTQ4ODQ1ZDk5NjQ1NX0AAAAA", + "docIdentifier": 149 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414264, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYxN2ZlZDE0LTQxNzYtNDMzNy05ZDYzLWY4OTdlMjNkMTYyNX0AAAAA", + "docIdentifier": 150 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414265, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I0NDZiMmZlLTg1ZDYtNDVmOS04ZWI2LWJhMTFkOWU4ZGM1ZX0AAAAA", + "docIdentifier": 151 + }], + "persist": true + }], + "lastAccessed": 1528451817745, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738414358, + "docshellUUID": "{d711fedc-2aa3-4a61-8ff3-9716901f21a2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EzYmE5NTJkLTk1N2YtNDlhNC1hZTRlLTUxMzYyMzI2ZmZiZH0AAAAA", + "docIdentifier": 150, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738414359, + "docshellUUID": "{d711fedc-2aa3-4a61-8ff3-9716901f21a2}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YxOTVkZjI2LWJlNjAtNDA3MS04YTViLWVmYjU0NTEwMmZkM30AAAAA", + "docIdentifier": 151, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414360, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVlMTg3Y2VlLTEzM2MtNDhkOC1iZDg3LWFjMjdhZDk2YWMzOH0AAAAA", + "docIdentifier": 152 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414361, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU3OGM2ZTVkLTJjNDctNDI3NS1hNzBhLWQ0MWI2MjgyYmJhNX0AAAAA", + "docIdentifier": 153 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738414362, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBmY2M1OTQ3LWYxMDgtNDU2MS04MDIwLWNlZDI5ZWI3ODY5NX0AAAAA", + "docIdentifier": 154 + }], + "persist": true + }], + "lastAccessed": 1528451817777, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408941, + "docshellUUID": "{eb256376-3626-41bb-9277-795bf7f040f2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JkYmE4MWYwLWE2MTAtNDA4OC1hMjVlLWYwNmMxMmNhNDI2Mn0AAAAA", + "docIdentifier": 140, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408942, + "docshellUUID": "{eb256376-3626-41bb-9277-795bf7f040f2}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkyMjI4YjQ1LWFlMzEtNGQ3Mi1hZTk1LWQ0OTE1NWVjYmQ2M30AAAAA", + "docIdentifier": 141, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408943, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRkYzAyMjAwLTZkNWItNDNkMC1iODBmLTllMTc4MWVkMWZjMH0AAAAA", + "docIdentifier": 142 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408944, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EyZDgyNDRmLTVjNGMtNDcyNy05NTdhLWQxY2U3ZThkZWIwNX0AAAAA", + "docIdentifier": 143 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408945, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRjMDY2ZjljLWE2NDYtNGM4NS1hNzE5LTczYTI3YzdiMTI5YX0AAAAA", + "docIdentifier": 144 + }], + "persist": true + }], + "lastAccessed": 1528451817809, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408910, + "docshellUUID": "{446f8d85-179d-40c2-9c8f-1abd84052d2d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UyNjNiYzdmLTM1NGEtNDk0Zi1hYmIxLWFmOGRiNzQwNmU4Zn0AAAAA", + "docIdentifier": 137, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408911, + "docshellUUID": "{446f8d85-179d-40c2-9c8f-1abd84052d2d}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVhZTQwMmFlLWRhNWYtNDgwOS1iZDNhLWMyZjFjYzNlYjBkZH0AAAAA", + "docIdentifier": 138, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408912, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IwZmUxY2Y1LTVmYzQtNDhmZC04M2ZiLWVkMDlmZDE3ODFkMn0AAAAA", + "docIdentifier": 139 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408913, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE1MDM4MzNkLTAyYjQtNGMyYi1hM2MzLWI1MTRmMGQwMjAxNH0AAAAA", + "docIdentifier": 140 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408914, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y4NTJlZGNkLTg1ODEtNGMzYS05MThiLWZjN2IzZTYwMGUyMH0AAAAA", + "docIdentifier": 141 + }], + "persist": true + }], + "lastAccessed": 1528451817856, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408884, + "docshellUUID": "{ce3ca867-0ed8-406e-98d1-fe234fd63946}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE0MjRhYTQ3LTc5MWMtNDc3MC04ZTA1LTYxOGFjMjE2MzY5M30AAAAA", + "docIdentifier": 150, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408885, + "docshellUUID": "{ce3ca867-0ed8-406e-98d1-fe234fd63946}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q5NWYzYzBlLTRlZmQtNGI0Zi05NmRjLTlhNDc0NWJlYjg3N30AAAAA", + "docIdentifier": 151, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408886, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY3OWFiMTI4LTFlYTUtNGI5ZS1iZDNhLWU2ODJlMGM1Nzk3MH0AAAAA", + "docIdentifier": 152 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408887, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAxOTcwNGZmLTc1YTQtNDVhYS1iYTkxLWZjYjk5MDAyY2FiNn0AAAAA", + "docIdentifier": 153 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408888, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY2MTZjYTczLThkZGItNDg2Yi1iMTliLTEyOTNmN2I4NDgzN30AAAAA", + "docIdentifier": 154 + }], + "persist": true + }], + "lastAccessed": 1528451817871, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408849, + "docshellUUID": "{dc330d22-c38c-4405-be8a-5d60db6861b8}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUxYjkwYjkwLTllYjMtNGI4Yy04ZWNhLWVhNTdlMzVmMDgzN30AAAAA", + "docIdentifier": 143, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408850, + "docshellUUID": "{dc330d22-c38c-4405-be8a-5d60db6861b8}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U3MTRjZjFlLWZlYzMtNDQ1Yy1hODE0LWJiZDEwMzBhYjkwMn0AAAAA", + "docIdentifier": 144, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408851, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVlOTUzNmVkLWQ3NDQtNGNhYS1iZjA3LTNjNTk1YTVhY2JlMX0AAAAA", + "docIdentifier": 145 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408852, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IzZDlkYjczLTQ4ZDYtNDgzYi04Y2JjLTA3MWUxMmQ3MDQxZn0AAAAA", + "docIdentifier": 146 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408853, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI5YzM5Y2RmLTEyMmQtNDFkZC05NWM2LTA1MzY5YjgzOTI2MH0AAAAA", + "docIdentifier": 147 + }], + "persist": true + }], + "lastAccessed": 1528451817903, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408820, + "docshellUUID": "{49318475-bb97-4977-97e5-b9a85b437c28}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA2NmEyYTg5LTYzNmYtNDAwNy04MzhkLWRiM2ZiMmE5ODZmMn0AAAAA", + "docIdentifier": 135, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408821, + "docshellUUID": "{49318475-bb97-4977-97e5-b9a85b437c28}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NkY2QxY2JhLWM5MTQtNDYwMS1iNjBjLWNhMGEzNzk2ZDgyYn0AAAAA", + "docIdentifier": 136, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408822, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezcwMjM3NDY0LTg2MDQtNGVmMS04OGY2LTMwZTc1ZGQwOWMxNH0AAAAA", + "docIdentifier": 137 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408823, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmYWYxMDY3LTY0MjEtNGJhZC04YjIxLTg3MzI3ODJjMDMyYX0AAAAA", + "docIdentifier": 138 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408824, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY5MzI0MTM2LWI5YWUtNDM0My1hNGUwLWJmZjMxYjA0YmYzNX0AAAAA", + "docIdentifier": 139 + }], + "persist": true + }], + "lastAccessed": 1528451817935, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408790, + "docshellUUID": "{7419eee2-bbb8-46d0-8459-9bf35de0fef6}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y3MDBkYjFlLTk4MjYtNDY2Ny04ZmVmLTRkZWU2MjdiZWVkMX0AAAAA", + "docIdentifier": 132, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408791, + "docshellUUID": "{7419eee2-bbb8-46d0-8459-9bf35de0fef6}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y3MjlkOTA5LTNjMzctNGQwYS04ZDQwLTY4MTU2YjEzYWFhZX0AAAAA", + "docIdentifier": 133, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408792, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezExYmRkMTJlLWRkOTktNDY4Mi05NzkyLTBmNTBmYWIwYjYzY30AAAAA", + "docIdentifier": 134 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408793, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZhY2M1ZTA4LTRmMTQtNDBkOC1hOWYyLTY0MDRjYTVmMmNjZX0AAAAA", + "docIdentifier": 135 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408794, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkwM2I0YzNhLWI3NmMtNDBjZi1hOTVhLTZjOGYyZTliZmU3Mn0AAAAA", + "docIdentifier": 136 + }], + "persist": true + }], + "lastAccessed": 1528451817975, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408759, + "docshellUUID": "{3357d475-ab53-4832-aaca-f239b855b439}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EyMmE2NzQ5LWY5MTItNDdhZS05MmViLWNhOTY0Zjg0YWJiYn0AAAAA", + "docIdentifier": 145, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408760, + "docshellUUID": "{3357d475-ab53-4832-aaca-f239b855b439}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M2ZTJlZjFjLWI3YzItNDY2YS1hNzgxLWZkMmFkOGY5MTZkOH0AAAAA", + "docIdentifier": 146, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408761, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc1ZTVhM2Y3LTg3OGEtNDE2ZS1iZTk3LTBlYmFmOWM3NzIzMH0AAAAA", + "docIdentifier": 147 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408762, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA5MWY3ZDhkLWZiZWEtNDU2Ny04ZWI3LTNmMzA0YTI0NmY2OH0AAAAA", + "docIdentifier": 148 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408763, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M1ZjU1Nzk5LTEzODMtNDk1NS05MDZjLTQ3YWM3ZGI3NmFiNX0AAAAA", + "docIdentifier": 149 + }], + "persist": true + }], + "lastAccessed": 1528451817993, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408729, + "docshellUUID": "{3258249a-81b2-45a6-97f5-f5cb97969389}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYxZjlmOTYwLTcxZTctNDY4ZC1iOTBmLTExYmNiYzhhYjM5M30AAAAA", + "docIdentifier": 138, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408730, + "docshellUUID": "{3258249a-81b2-45a6-97f5-f5cb97969389}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E4MDZmMjhiLWI1MWQtNDA2Ny1hZGZlLWRiOWRiM2QxMTI1MH0AAAAA", + "docIdentifier": 139, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408731, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EzNmI2YWU4LTIxYWEtNDRlYS1iYzFiLTA4YWNjMmI0YzUwYX0AAAAA", + "docIdentifier": 140 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408732, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFiZWE2YWU3LTY2MmEtNGJjMy1iN2U1LTdmYWExYTA1MWU3Mn0AAAAA", + "docIdentifier": 141 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408733, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EyZmUyYjdhLTAwMDctNDIxOC04MzgwLWM4MjdlMjhmMDYzZn0AAAAA", + "docIdentifier": 142 + }], + "persist": true + }], + "lastAccessed": 1528451818046, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408703, + "docshellUUID": "{e9c9c15f-073d-48e7-ab7d-29eb9ce6d0ff}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UzZDAxNTMzLWNiNzAtNDZiZi05N2E1LTEwNTliMjI3NDcxOX0AAAAA", + "docIdentifier": 130, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408704, + "docshellUUID": "{e9c9c15f-073d-48e7-ab7d-29eb9ce6d0ff}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezExYjc3NDZiLTI3MzQtNDU2Zi1iNzExLWFjYzBiMWJkM2ZiNn0AAAAA", + "docIdentifier": 131, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408705, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk3NDU4MTNhLTM3NWMtNDkzZS05MzVjLWU1ZWIxNzAxMTYzYn0AAAAA", + "docIdentifier": 132 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408706, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJjMjY1ZDc5LTcwZGMtNGM5Ny1iYjgwLTEzNjgyOTkwYjc3MH0AAAAA", + "docIdentifier": 133 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408707, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI1N2FiMDIzLWIwNmMtNDY0ZS04ZDFhLTcxNGYwNmZkZGFkMH0AAAAA", + "docIdentifier": 134 + }], + "persist": true + }], + "lastAccessed": 1528451818061, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408673, + "docshellUUID": "{ac5c9949-eb8c-464f-a4ae-358a88a8b8da}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEwMmNmYmJkLWRmZTgtNDJiNi1iODlkLTNhMDBkNGI5MTlmY30AAAAA", + "docIdentifier": 127, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408674, + "docshellUUID": "{ac5c9949-eb8c-464f-a4ae-358a88a8b8da}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I5ZDFhODYyLTg1OWEtNGM3Ny05OWU5LTI3NDMyNmRiNjhiMn0AAAAA", + "docIdentifier": 128, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408675, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UyMWU1ODdhLTBlNWYtNGQ5Ni04Y2ZiLTY3NThhODhhZmRiMn0AAAAA", + "docIdentifier": 129 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408676, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUxNGZjNGEyLTMzYzYtNDMxNy1hZWY0LWFkMzI0OTE4NGUyYX0AAAAA", + "docIdentifier": 130 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408677, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFjY2UzZmNmLWIwMDQtNGVkZS1hMDZiLTBmMTRiOGQ5YmMzMn0AAAAA", + "docIdentifier": 131 + }], + "persist": true + }], + "lastAccessed": 1528451818090, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408646, + "docshellUUID": "{0244fd58-d51c-4fc1-8dc2-d8271def9725}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVjYTcyYzE3LTY5NTMtNDIwNC04YjJlLTQwNzdhNDM3MjM0OX0AAAAA", + "docIdentifier": 140, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408647, + "docshellUUID": "{0244fd58-d51c-4fc1-8dc2-d8271def9725}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E2MWE0ZWRjLTRjMzMtNGU1NS1hMjg0LTAyMDkwNzBkNDcyMH0AAAAA", + "docIdentifier": 141, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408648, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA1M2Q4MjM5LTgxYWYtNGE4OS04ZmNkLTM2YmM1MzVmMjBjZX0AAAAA", + "docIdentifier": 142 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408649, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEwM2ZhYTVlLTk5MzAtNGM2Yi1hNGYxLTM5OTg4ZmMwZGZjYX0AAAAA", + "docIdentifier": 143 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408650, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM0ODhiOGExLWZiZWEtNDg5Yi05MmJmLTcxNWIxMTk4NzI4Yn0AAAAA", + "docIdentifier": 144 + }], + "persist": true + }], + "lastAccessed": 1528451818123, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408621, + "docshellUUID": "{ede50b3c-447f-4817-ba04-414965bc64ef}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRhM2M2OGQyLWU0MGMtNGZkMy04MDRmLWI3OGEwYTNhNjcxNX0AAAAA", + "docIdentifier": 133, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408622, + "docshellUUID": "{ede50b3c-447f-4817-ba04-414965bc64ef}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZjODNlYzlhLTFhZmEtNDE1Yi1iMzY1LWU0MTFlM2MxMTIwMn0AAAAA", + "docIdentifier": 134, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408623, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJlNDI1YWQ4LWZhNWUtNDg4YS04NzBkLWJjODg2OWViY2ViOH0AAAAA", + "docIdentifier": 135 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408624, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhmNTIxZThkLWNlYTYtNGUyMi1hZmZiLTAwNjBjY2M5ODg5MH0AAAAA", + "docIdentifier": 136 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408625, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y4ZDI5ZmNlLTRjMDctNDExZS05YzE0LThiMTY3NmE1MzZlNX0AAAAA", + "docIdentifier": 137 + }], + "persist": true + }], + "lastAccessed": 1528451818144, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408580, + "docshellUUID": "{f1aad793-3c87-497f-826f-c639756c2c59}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU0YTVmMTc2LTA3ZjAtNGIzMi04ZTAzLTg1NzJmYjMwOTVlYn0AAAAA", + "docIdentifier": 125, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408581, + "docshellUUID": "{f1aad793-3c87-497f-826f-c639756c2c59}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUyNzMyOWVkLTZmYTItNDgxZC1hMWIyLWE4YzkxODRmYzY4OH0AAAAA", + "docIdentifier": 126, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408582, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U2ZjEzZGI4LTdmOGMtNGU5Zi05OTM3LTVhNWY2Y2NmNzNiZH0AAAAA", + "docIdentifier": 127 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408583, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIwYmY4OGIxLWUzNzctNGM2ZS04MTFjLTNmNWM1NDY4ZDU4Zn0AAAAA", + "docIdentifier": 128 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408584, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UwMjU2MWZkLWFhZDMtNGQ0MS1iOGYwLWVhMGY4MjlkN2I0Nn0AAAAA", + "docIdentifier": 129 + }], + "persist": true + }], + "lastAccessed": 1528451818192, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408548, + "docshellUUID": "{25a1d7d2-b55d-49bc-8d2d-adf05a59b9ba}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JiZjUyZGU2LTg3NjEtNGM4ZC05YjM0LTZlNWVkOTZhZmQxMn0AAAAA", + "docIdentifier": 122, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408549, + "docshellUUID": "{25a1d7d2-b55d-49bc-8d2d-adf05a59b9ba}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZjMmUzZjg3LTlkMDUtNGM2NS1hZGRjLTFiY2Q4YTgzNjNmMX0AAAAA", + "docIdentifier": 123, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408550, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VmZjE5NTM4LTYzNGYtNDMwMS05ZDY3LWI3MTA1NzNjNzUxYn0AAAAA", + "docIdentifier": 124 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408551, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JmM2M2OGNhLWIzMTgtNDUwNy1iZjUzLTc3MWRlNDJlZmUyMX0AAAAA", + "docIdentifier": 125 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408552, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MyYjdkZjM2LWEwMTEtNGY4OC1iN2JmLWUzOTIwYWIxNjk0Zn0AAAAA", + "docIdentifier": 126 + }], + "persist": true + }], + "lastAccessed": 1528451818208, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408515, + "docshellUUID": "{e204a0ef-eeda-48e0-a94d-f136c660b6a6}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IyMDQ2OGQzLTI0NDUtNDAzZi04ZjFjLThhYmExZjEyNzY3Yn0AAAAA", + "docIdentifier": 135, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408516, + "docshellUUID": "{e204a0ef-eeda-48e0-a94d-f136c660b6a6}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUyZDA1ZDA2LWYzOWYtNGI2YS1hMjFhLWQzYzI2NGQ5MDdiMH0AAAAA", + "docIdentifier": 136, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408517, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEzNGE0YjUxLTg0ZWItNDlhZC04MWRiLWJhNzIwMWZhZDU0ZH0AAAAA", + "docIdentifier": 137 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408518, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RjY2VkZTUxLTlmOTUtNDFkYy04ZWE5LWRjMTk5OGZhZDJiOX0AAAAA", + "docIdentifier": 138 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408519, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y5MWIzYmM3LTRiYTQtNGQ1ZS05MWJlLTQ4MzIwY2NjNDU5ZH0AAAAA", + "docIdentifier": 139 + }], + "persist": true + }], + "lastAccessed": 1528451818257, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408491, + "docshellUUID": "{3ab47ac2-fb3c-4c7d-9c72-7e1ec614350e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFhNzM2YzE4LWZkMWMtNGRjNi1hMThiLTE2NmRmYzNjM2U5NX0AAAAA", + "docIdentifier": 128, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408492, + "docshellUUID": "{3ab47ac2-fb3c-4c7d-9c72-7e1ec614350e}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJiYzE3ZWExLThmM2EtNDVjOC1hNDc3LTNjMjBkOGIyNGUxYn0AAAAA", + "docIdentifier": 129, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408493, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYzNmM5MDBkLTFlNDQtNDIxOS1hY2U2LWIxZWYwMTZjMmE0YX0AAAAA", + "docIdentifier": 130 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408494, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI5ZmE3N2RjLWZjODMtNDUzZC1iNDBkLTdhMDBjZGU2YWFhMn0AAAAA", + "docIdentifier": 131 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408495, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgwM2I5MTA0LTk0YzItNDcxNC04NDYxLTg2ZWFhODdlYTJkNX0AAAAA", + "docIdentifier": 132 + }], + "persist": true + }], + "lastAccessed": 1528451818269, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408469, + "docshellUUID": "{24ef9a24-9199-43a8-9ffc-4784468738db}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmNzU3MTM5LWQ4NzMtNGY1YS04NzgwLThhYWI3NjYwNDA4Y30AAAAA", + "docIdentifier": 120, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408470, + "docshellUUID": "{24ef9a24-9199-43a8-9ffc-4784468738db}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUwNGE3NWY2LTA2ZTQtNGVkYy04ZTg0LWU0ZWZkYTMwNjEyMX0AAAAA", + "docIdentifier": 121, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408471, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JjZjRmOTlkLTE3ZTMtNDFjMy1hMTRjLTAzMWJiZWM5ZDlmYn0AAAAA", + "docIdentifier": 122 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408472, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I5NmI2ZjgxLWY3NmItNDg1OC1hYmQ5LTc0NGQ1YzExMzRiMH0AAAAA", + "docIdentifier": 123 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408473, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RiNjgwMTc4LTU1ZDktNGI2ZS1iYzM4LTAxZTA0MDE2ZDEwOH0AAAAA", + "docIdentifier": 124 + }], + "persist": true + }], + "lastAccessed": 1528451818297, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408425, + "docshellUUID": "{1fbe9917-506d-4fdc-aeb5-61ed46c8f7a9}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JjNzUwYmNjLWQ4ZDEtNDY4Ny1iNzYyLWU2MTFmZGNmMTljOH0AAAAA", + "docIdentifier": 117, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408426, + "docshellUUID": "{1fbe9917-506d-4fdc-aeb5-61ed46c8f7a9}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JjYThjZGYwLWUxNDktNDU1Yi04ZTM1LWZjMDNmZDkyNDkxZn0AAAAA", + "docIdentifier": 118, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408427, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmODc0MzRiLWQwZWYtNGUxNC1iMmJjLTBiYzUzNmQyMDM5M30AAAAA", + "docIdentifier": 119 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408428, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmYjU3NzQwLTNkYjEtNGMyYS1iOWUzLTRmZjYwNDkxNjY3NX0AAAAA", + "docIdentifier": 120 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408429, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAzMmVmMGNkLWNmMGItNDM4YS1hNjNhLTJmYzcwNjlkODU0N30AAAAA", + "docIdentifier": 121 + }], + "persist": true + }], + "lastAccessed": 1528451818328, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408395, + "docshellUUID": "{fb4d8e18-1d9f-47a1-90ac-11a07178ce6d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EwMGJmNTMwLTZiMjUtNGNlYy05Mzk5LWJjOTJiMDhmYTQ0Y30AAAAA", + "docIdentifier": 130, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408396, + "docshellUUID": "{fb4d8e18-1d9f-47a1-90ac-11a07178ce6d}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YyYmIyNmY2LWYxM2ItNDA1ZS1iMmU0LTg1YzdjNjdjZGI3YX0AAAAA", + "docIdentifier": 131, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408397, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBiNWY0ZDEzLTNjMzctNDVkMi04ODBmLThmYjcwZmM1ODhkOX0AAAAA", + "docIdentifier": 132 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408398, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg4MWU2OTc4LWFiZGYtNDFmOS05YmRjLWUzYTJhMmIxNWZjNX0AAAAA", + "docIdentifier": 133 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408399, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI5ZjVkNmIyLWRjYTMtNGNkZi05NjU3LWY2NzQyMzAyOTU5ZH0AAAAA", + "docIdentifier": 134 + }], + "persist": true + }], + "lastAccessed": 1528451818372, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408366, + "docshellUUID": "{f33f3aba-8a68-481b-b443-2ce97dc176f9}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMzNDkzODgyLTJjN2QtNDc4Ni1iNGRiLWQ1NTA3NzU5ODk5MH0AAAAA", + "docIdentifier": 123, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408367, + "docshellUUID": "{f33f3aba-8a68-481b-b443-2ce97dc176f9}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YzNzM5ODFjLTE2NWMtNDNiMC1hYThjLWQ4Mzk5MTJiNWY5OX0AAAAA", + "docIdentifier": 124, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408368, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY2M2VjOWEwLWU4NjgtNDI0My04MWJhLWRkMDE3YmNmNDEwOX0AAAAA", + "docIdentifier": 125 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408369, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgyODZmMDI3LTkzZmEtNDI4OS1hZjg3LTZiOTZhNGJkNWE0Y30AAAAA", + "docIdentifier": 126 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408370, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JmMWNhODY0LTBhNTUtNGI3ZC1hZTFmLWQ5ZWVjMDk1ZWRkZn0AAAAA", + "docIdentifier": 127 + }], + "persist": true + }], + "lastAccessed": 1528451818407, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408339, + "docshellUUID": "{79a9b0ba-723d-4a36-91e7-ccadb90ea42d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M2YzE0ZTBjLWFlY2MtNGMzOS04MGVlLTZkMDlkOTg4NTA4ZH0AAAAA", + "docIdentifier": 115, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408340, + "docshellUUID": "{79a9b0ba-723d-4a36-91e7-ccadb90ea42d}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmNjczNjlmLWMzNDctNGRkOC05NDIyLWVlYTYzMzFmYzY2OX0AAAAA", + "docIdentifier": 116, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408341, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBiMjRlYmRhLTc0NTEtNDg3OC1hOTkzLTkxODdlZGMwYTAzOH0AAAAA", + "docIdentifier": 117 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408342, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezczMDUzNjMyLTNiZTQtNGViMi1iNTRiLTE4ZjUyZmQyNjgxM30AAAAA", + "docIdentifier": 118 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408343, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE4ODkwOTFkLTA2ODMtNDhhZi05M2Y1LWRjYmY4YWE2NWY1OX0AAAAA", + "docIdentifier": 119 + }], + "persist": true + }], + "lastAccessed": 1528451818424, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408306, + "docshellUUID": "{951fc66f-5e88-4d1e-ad53-9b42b152a398}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY1OTI2ODhhLThjNzItNDQ1OS1iNWI5LTIxZjgxYzc3NWI4Y30AAAAA", + "docIdentifier": 112, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408307, + "docshellUUID": "{951fc66f-5e88-4d1e-ad53-9b42b152a398}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VhOWRjYTBjLWU4MDItNDg5ZS1hZTI2LTViYTdjYzlhNTAxNH0AAAAA", + "docIdentifier": 113, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408308, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVjNjdkNTNkLTBlN2QtNGJkZS04NzU4LWFjZTFjMzYxNzA1OH0AAAAA", + "docIdentifier": 114 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408309, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NlOWM0NDYyLWRlNjAtNDc0MS1iYTAyLTY1YjVmNzBjZmE3ZX0AAAAA", + "docIdentifier": 115 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408310, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I4NzFkODUyLWM0NDYtNGY4MS1hMDMxLTY4Y2VkMDE4Mjg3MH0AAAAA", + "docIdentifier": 116 + }], + "persist": true + }], + "lastAccessed": 1528451818456, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408282, + "docshellUUID": "{19c99806-937d-4953-9317-2004dba6badb}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRjMzUxMjhjLTc1NWEtNGU3NS04MmEwLTFkNGViN2I4ZWE2OH0AAAAA", + "docIdentifier": 125, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408283, + "docshellUUID": "{19c99806-937d-4953-9317-2004dba6badb}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJiMGYwNzhlLWJhMmItNDM5My05Mjc1LWQ4YjBjYzY3MzhhMn0AAAAA", + "docIdentifier": 126, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408284, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA0NWRiNDVmLTcyNGUtNDE1Ni04Y2VhLTVjY2JjNDI4MTgzZX0AAAAA", + "docIdentifier": 127 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408285, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMyZTVjOWQyLTMzMzEtNGYyZC1hMGQ0LWIzOTNmNGEyYTEzMn0AAAAA", + "docIdentifier": 128 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408286, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkxZmM0NGIxLWUzZjQtNDQ5Mi05ZDBiLTEyMmM0MTY4OGI3MX0AAAAA", + "docIdentifier": 129 + }], + "persist": true + }], + "lastAccessed": 1528451818483, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408257, + "docshellUUID": "{b246a1f1-4cd8-4bd6-8af7-0fd41b392f38}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA5N2Y3MjY0LThmYmMtNDQ1Yi1iNDRiLWRiMDNiMTk5Mjg5ZX0AAAAA", + "docIdentifier": 118, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408258, + "docshellUUID": "{b246a1f1-4cd8-4bd6-8af7-0fd41b392f38}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJhYzg2YWExLTdiZDQtNDE4OS1hOTg5LTU4ZWNkZTNjNzQyYn0AAAAA", + "docIdentifier": 119, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408259, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ViZDUzMjYxLTRhZDItNDhjMi04NGYyLTViYmU5ZDUwMzJhMX0AAAAA", + "docIdentifier": 120 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408260, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q3NGQ1NzI4LWExYTQtNGM3MS05MTExLTJiMjllNzI0MWIzOX0AAAAA", + "docIdentifier": 121 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408261, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMwMzQzODE1LWEzN2UtNGIyMS1iYmNhLTdhOTlhM2IwM2UzN30AAAAA", + "docIdentifier": 122 + }], + "persist": true + }], + "lastAccessed": 1528451818512, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408237, + "docshellUUID": "{865d09a7-af12-4651-82e6-abac35c7157b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I2YTY2MWNjLWQyZTMtNGIzMy04NWU2LTU2MzY5Yjc1ZjAwOX0AAAAA", + "docIdentifier": 110, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408238, + "docshellUUID": "{865d09a7-af12-4651-82e6-abac35c7157b}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkxNTczZTkyLTIzMTYtNGMyZC04NDNmLWQxMzFmN2Y4ZGU1NH0AAAAA", + "docIdentifier": 111, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408239, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVjZmVkNDRkLTRhYWYtNDJkMS04Nzg5LThjNjgxMGI4YWMxMH0AAAAA", + "docIdentifier": 112 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408240, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ3MzMzOTQyLWRmZjUtNGNmNi1iYjgyLWY4YWNjZmE4MTVjMn0AAAAA", + "docIdentifier": 113 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408241, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QyM2M3ZWY2LWUxZWUtNDhhZi05MDQ2LWFjY2MzNDQ2M2U1M30AAAAA", + "docIdentifier": 114 + }], + "persist": true + }], + "lastAccessed": 1528451818563, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408211, + "docshellUUID": "{fdc1d953-da9b-47c3-a61d-19e66360623d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJhMDI3NDA3LTRlYjctNDM1ZC04YWViLTYzODdjYjE4NjhiZn0AAAAA", + "docIdentifier": 107, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408212, + "docshellUUID": "{fdc1d953-da9b-47c3-a61d-19e66360623d}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdiMWRjN2E2LWExOTItNDRlNC1hMjFiLWNhNDQ3OWUwMDA3Mn0AAAAA", + "docIdentifier": 108, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408213, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JmZmNjOWRkLWViMGEtNDAyNi05NTkzLThjMzIxYWZlOTQ4YX0AAAAA", + "docIdentifier": 109 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408214, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JkNzNiMjM4LTM3MjItNDY0MS04MGQ5LTczOGYyNGVmM2YxNn0AAAAA", + "docIdentifier": 110 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408215, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M3MGQ5NWRlLTYzZTgtNGMxNC05YzY1LWJkMGRmY2U4YjZhZH0AAAAA", + "docIdentifier": 111 + }], + "persist": true + }], + "lastAccessed": 1528451818575, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408187, + "docshellUUID": "{2974364a-5403-4333-b9fa-24f64911947b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YxYjVjMTlmLWIwNGEtNDc4Zi1hOGJjLWY3ZWIyNjM5MDlkMX0AAAAA", + "docIdentifier": 120, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408188, + "docshellUUID": "{2974364a-5403-4333-b9fa-24f64911947b}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E1ZTZiOGJiLWRlM2ItNDgxMS1iYWMyLTI5Mjc4ODc2ODA0M30AAAAA", + "docIdentifier": 121, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408189, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM3MGM5NWExLTkxNDItNDMyNi1iNzU5LTVkODBjOTdjMjhlZH0AAAAA", + "docIdentifier": 122 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408190, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM4MDM1ZDZmLThiNmMtNDhmZS05OGFlLTYwZGFkYWRlYTcwOX0AAAAA", + "docIdentifier": 123 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408191, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y4NDU3NTM3LWUwZTYtNGEyZC1hZWUzLTNhN2QwMjBiMGI5N30AAAAA", + "docIdentifier": 124 + }], + "persist": true + }], + "lastAccessed": 1528451818603, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408153, + "docshellUUID": "{27351734-b8ce-4b4a-912c-edb0110086a8}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRhM2I2M2M5LTMyYmEtNDE1Mi05MGVjLTgxYTVlNGVlNzZhOX0AAAAA", + "docIdentifier": 113, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408154, + "docshellUUID": "{27351734-b8ce-4b4a-912c-edb0110086a8}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRlYTcwNzBkLTgyNTUtNGUwNi04ZDY5LTYwZTI2MWFkMDQyOX0AAAAA", + "docIdentifier": 114, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408155, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YyMmFmYzk1LTAzZmYtNDYwYy04YjkwLTUxNjFjNjY2ZDFjNn0AAAAA", + "docIdentifier": 115 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408156, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y2NTg0MzIzLWEwMjgtNDRiNS04ZGRkLTAyMDg2ZjI2NDBkMH0AAAAA", + "docIdentifier": 116 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408157, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkxM2RjMmE4LTVmNWUtNGUzYi1hNWI3LWU3NTFmMGViYzQ1OX0AAAAA", + "docIdentifier": 117 + }], + "persist": true + }], + "lastAccessed": 1528451818637, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408128, + "docshellUUID": "{be618eb8-a6d7-463b-bfc4-a5a4ad07dc8e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRlYWE0NGNlLTQ2N2UtNDM2Yy05NTRkLTNmYzQzNGUyZGFlNn0AAAAA", + "docIdentifier": 105, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408129, + "docshellUUID": "{be618eb8-a6d7-463b-bfc4-a5a4ad07dc8e}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NlNGUxZTBhLTMxNDEtNDIzZi04ZmFlLWI0NjYyYTFjOTQzOX0AAAAA", + "docIdentifier": 106, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408130, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U0ZWFkZmE2LWY5N2UtNGI5OC1iMjBjLWMxY2QwYmY5Yjk1OX0AAAAA", + "docIdentifier": 107 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408131, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IwMThmZTE0LTQ1ZWEtNGZkMy1hNWRhLTEyMGI5MWYyOTAxMX0AAAAA", + "docIdentifier": 108 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408132, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAxZDkyZjRlLWI5YWItNDE2Zi04OTAzLWQ4Y2U2MDcwZjIwMH0AAAAA", + "docIdentifier": 109 + }], + "persist": true + }], + "lastAccessed": 1528451818666, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738408089, + "docshellUUID": "{c8875099-2620-48f7-a6e6-0413e7b9c71a}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NjZWNjNWE4LTM0ZWMtNDY4Yi1hYWY5LTlmOGQzNDY4MzhhM30AAAAA", + "docIdentifier": 102, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408090, + "docshellUUID": "{c8875099-2620-48f7-a6e6-0413e7b9c71a}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdhY2YzOTBmLTZlNzYtNGZjYS1hNDY2LWM0ODc3YTg1YjQwYn0AAAAA", + "docIdentifier": 103, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408091, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU0MWZhNTFlLTEzZDktNDU3My1iOGU2LWQzNjY0MTZkODBmNX0AAAAA", + "docIdentifier": 104 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408092, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezExZjkwOTA4LWQ1N2MtNDkwZi04M2YyLTVlYjFkODczMTExMH0AAAAA", + "docIdentifier": 105 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408093, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I5MzE2ZWMzLTkwOWUtNDQ0ZC1hNTY5LTRmZTQ0Y2ZkOTA0OH0AAAAA", + "docIdentifier": 106 + }], + "persist": true + }], + "lastAccessed": 1528451818709, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=twitter.com/Telegraph/status/437962536407666688/photo/1", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738408057, + "docshellUUID": "{6e8a927c-39a4-45ab-9e51-3450c9725730}", + "referrer": "http://localhost:8080/?url=t.co/FslmElOVwY", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU2NDRjYWNiLWVkY2UtNGViMC04MTIwLTBlNDA0ODEyNjMxZn0AAAAA", + "docIdentifier": 116, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408058, + "docshellUUID": "{e8979a67-52ae-4d6e-8b94-8de24a2a0733}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezcwMzg5ZmQ5LWQ0ODYtNGUyZC1hNGYzLTViZThhOTgxOWE0MX0AAAAA", + "docIdentifier": 117 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408059, + "docshellUUID": "{946a54d1-68a3-41e3-9a78-60a643045e94}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg4NDcxN2I3LWFhOTgtNDJhZS1iNTc1LTc2OTFlMjhhYzQ0YX0AAAAA", + "docIdentifier": 118 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738408060, + "docshellUUID": "{c2df782f-1821-48ce-a941-d9d492f5a71b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA3MzY1OWZkLTQ1YjAtNDg2My04ZGYyLWUxMTRkOGZhYTRjZH0AAAAA", + "docIdentifier": 119 + }], + "persist": true + }], + "lastAccessed": 1528451818726, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "storage": { + "http://localhost:8080": { + "ScribeTransport": "{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"items\":[{}],\"associations\":{\"2\":{\"association_id\":null,\"association_type\":3},\"3\":{\"association_id\":null,\"association_type\":3}},\"message\":\"//twitter.com/Telegraph/status/437962536407666688/photo/1/large\",\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"element\":\"platform_photo_card\",\"action\":\"show\"},\"triggered_on\":1393256185388,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"captured\"},\"triggered_on\":1393256185472,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"ignored\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"direct\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"all\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAV2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAQgAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAQAAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=www.google.fr/search?q=google+docs&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=aGcLU8r5I4Hf8geZ5YHABg&gws_rd=cr", + "title": "google docs - Recherche Google", + "cacheKey": 0, + "ID": 3738407536, + "docshellUUID": "{71f13212-db7d-4b64-afda-f0983d0f1cf0}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M1ZTA3NWZkLTUxMTktNDUxOC1hZWM5LWUzZDIxODQ3MzM1Y30AAAAA", + "docIdentifier": 110, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=accounts.google.com/ServiceLogin?service=writely&passive=1209600&continue=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou%23&followup=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou<mpl=homepage&hl=fr", + "title": "Google Drive", + "cacheKey": 0, + "ID": 3738407537, + "docshellUUID": "{71f13212-db7d-4b64-afda-f0983d0f1cf0}", + "referrer": "http://localhost:8080/?httpsurl=docs.google.com/?hl=fr", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VlZjgzMThmLWNmZGYtNDVmOC1iYmVhLTMxY2Q1ZWZmYWQyNH0AAAAA", + "docIdentifier": 111, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0#my-drive", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738407538, + "docshellUUID": "{71f13212-db7d-4b64-afda-f0983d0f1cf0}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk0NTg2NTMyLWM3MWEtNDQ2Mi04ZmVjLTE1YmYyZTgxOGY3YX0AAAAA", + "docIdentifier": 112, + "persist": true + }], + "lastAccessed": 1528451818759, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 3, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAqmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZHJpdmUuZ29vZ2xlLmNvbS8/aGw9ZnImdXJwPWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9d3d3Lmdvb2dsZS5mci91cmw/c2ElM0R0JTI2cmN0JTNEaiUyNnElM0QlMjZlc3JjJTNEcyUyNnNvdSZhdXRodXNlcj0wI215LWRyaXZlAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAACVAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAACKAAAAogAAAAgBAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/drawings/d/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA/edit", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738407337, + "docshellUUID": "{3c628173-3a28-431b-9602-d117562d83e7}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYxNGI4NDk1LTMyNWMtNGQxNC1hZDVhLWQ5MjE3ZjcyNjE4YX0AAAAA", + "docIdentifier": 104, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451818789, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZG9jcy5nb29nbGUuY29tL2RyYXdpbmdzL2QvMUtxNjV5VnFXVDdIeHJHTGVOZHhBaXBxYlg3UDRPdVM0TWQzMjVSMGVkckEvZWRpdAAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAVwAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAVQAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/document/d/1dm2Z_yaEU506PHeJE64BReXQyIlJgJk7mXOjKx36MbE/edit", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738407107, + "docshellUUID": "{42de7195-c626-4fa2-9243-d62b03c43292}", + "referrer": "http://localhost:8080/?httpsurl=docs.google.com/drawings/d/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA/edit", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk3NmIxNmVkLTNlMDAtNGU4MC1iNTQxLWFiMTY2NDMzNmIxNX0AAAAA", + "docIdentifier": 101, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451818823, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZG9jcy5nb29nbGUuY29tL2RvY3VtZW50L2QvMWRtMlpfeWFFVTUwNlBIZUpFNjRCUmVYUXlJbEpnSms3bVhPakt4MzZNYkUvZWRpdAAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAVwAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAVQAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=www.google.fr/search?q=movies&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=U6UMU8XlJYHf8geZ5YHABg&gws_rd=cr", + "title": "movies - Google Search", + "cacheKey": 0, + "ID": 3738406924, + "docshellUUID": "{a8e41a81-4a16-4b82-b4ff-f66db6d40681}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg5MTk5YjkyLTM3NjAtNGViNi1iZWEzLWZkMzQ4NGFmNjA1MH0AAAAA", + "docIdentifier": 109, + "persist": true + }, { + "url": "http://localhost:8080/?url=www.youtube.com/user/YouTubeMoviesFR", + "title": "Films - YouTube", + "cacheKey": 0, + "ID": 3738406925, + "docshellUUID": "{a8e41a81-4a16-4b82-b4ff-f66db6d40681}", + "referrer": "http://localhost:8080/?url=www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDUQFjAB&url=http%3A%2F%2Fwww.youtube.com%2Fuser%2Fmovies&ei=U6UMU9fnKIOb0AXAgYFg&usg=AFQjCNHrmNe-ykFP-4R2NPUvq_YQh3LfQw&sig2=k395eaN4vi_NxXCeQwBYtg&bvm=bv.61725948,d.d2k", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UyNjE3NGQxLTkwOTAtNDUxMy04YjZhLTBkMWYzODNlYzQ1OH0AAAAA", + "docIdentifier": 110, + "structuredCloneState": "AAAAAAgA//8LAAAABAD//3MAcABmAC0AcgBlAGYAZQByAGUAcgAAAO0AAAAEAP//aAB0AHQAcAA6AC8ALwB3AHcAdwAuAGcAbwBvAGcAbABlAC4AZgByAC8AdQByAGwAPwBzAGEAPQB0ACYAcgBjAHQAPQBqACYAcQA9ACYAZQBzAHIAYwA9AHMAJgBzAG8AdQByAGMAZQA9AHcAZQBiACYAYwBkAD0AMgAmAHYAZQBkAD0AMABDAEQAVQBRAEYAagBBAEIAJgB1AHIAbAA9AGgAdAB0AHAAJQAzAEEAJQAyAEYAJQAyAEYAdwB3AHcALgB5AG8AdQB0AHUAYgBlAC4AYwBvAG0AJQAyAEYAdQBzAGUAcgAlADIARgBtAG8AdgBpAGUAcwAmAGUAaQA9AFUANgBVAE0AVQA5AGYAbgBLAEkATwBiADAAQQBYAEEAZwBZAEYAZwAmAHUAcwBnAD0AQQBGAFEAagBDAE4ASAByAG0ATgBlAC0AeQBrAEYAUAAtADQAUgAyAE4AUABVAHYAcQBfAFkAUQBoADMATABmAFEAdwAmAHMAaQBnADIAPQBrADMAOQA1AGUAYQBOADQAdgBpAF8ATgB4AFgAQwBlAFEAdwBCAFkAdABnACYAYgB2AG0APQBiAHYALgA2ADEANwAyADUAOQA0ADgALABkAC4AZAAyAGsAAAAAAAAADQAAAAQA//9zAHAAZgAtAHQAaQBtAGUAcwB0AGEAbQBwAAAAAAAAAAAwaV6WRnRCAAAAAAAA//8=", + "structuredCloneVersion": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406926, + "docshellUUID": "{269707f0-f4f5-450b-a5da-ef1fe3bad30d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIzMGFlMjUwLTUxOWItNGEwZS1iMjU0LWY5YzU5Zjc0MmY3YX0AAAAA", + "docIdentifier": 111 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406927, + "docshellUUID": "{cde4b193-6588-492d-b575-85c5796d1a7c}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q5YjlkYmZiLTU4NTYtNGI2Ny05MzRhLWQ1Zjc5Njk0ZjU1M30AAAAA", + "docIdentifier": 112 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406928, + "docshellUUID": "{58a19b11-699b-4d3c-b6d8-b796fd6ba9f1}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q1M2NhMzUwLWJmYmYtNDRkNi1iOGNlLWUxNmU0ZjU3NWQ0Y30AAAAA", + "docIdentifier": 113 + }], + "persist": true + }, { + "url": "http://localhost:8080/?url=www.youtube.com/watch?v=gYCzg8xg4c0&feature=c4-overview", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738406929, + "docshellUUID": "{a8e41a81-4a16-4b82-b4ff-f66db6d40681}", + "referrer": "http://localhost:8080/?url=www.youtube.com/user/YouTubeMoviesFR", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UxZGYxZmE1LTc2ZjItNDFkNS04NTViLWNlMWQ4NGYwYWI1OX0AAAAA", + "docIdentifier": 114, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738406930, + "docshellUUID": "{9c3dc524-a7c4-4e3b-9152-8ef3114a6db4}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU1MWFkMWFiLTBkNjUtNDIzYi1iNmJlLTk2NjZiZjcyMmM3NH0AAAAA", + "docIdentifier": 115 + }], + "persist": true + }], + "lastAccessed": 1528451818845, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 3, + "scroll": { + "scroll": "0,374" + }, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAUmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/dXJsPXd3dy55b3V0dWJlLmNvbS93YXRjaD92PWdZQ3pnOHhnNGMwJmZlYXR1cmU9YzQtb3ZlcnZpZXcAAAAAAAAABAAAAAcAAAAOAAAAB/////8AAAAH/////wAAAAcAAAAJAAAAFQAAAD0AAAAVAAAAAQAAABUAAAABAAAAFgAAAAAAAAAW/////wAAAAD/////AAAAFwAAADsAAAAV/////wEAAAAAAAAAAAAAAAA=" + }], + "selected": 10, + "_closedTabs": [{ + "state": { + "entries": [{ + "url": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "ID": 17, + "docshellID": 15, + "docIdentifier": 17, + "children": [{ + "url": "http://localhost:8080/?url=player.vimeo.com/video/73623354?title=0&byline=0&portrait=0", + "title": "Hamdam Centre Walk Thru at World Jnr Champs from SWIMSWAM on Vimeo", + "ID": 19, + "docshellID": 16, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 19 + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/plugins/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=box_count&show_faces=false&width=50&action=like&colorscheme=light&height=90", + "ID": 24, + "docshellID": 17, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 24 + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/plugins/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=button_count&show_faces=false&width=85&action=like&colorscheme=light&height=21", + "title": "Facebook", + "ID": 25, + "docshellID": 19, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 25 + }] + }], + "lastAccessed": 1393256151290, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?url=cdn.swimswam.com/wp-content/themes/swimswam/favicon.ico", + "index": 1 + }, + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "image": "http://localhost:8080/?url=cdn.swimswam.com/wp-content/themes/swimswam/favicon.ico", + "pos": 1, + "closedAt": 1393256151290 + }, { + "state": { + "entries": [{ + "url": "about:newtab", + "title": "New Tab", + "ID": 17, + "docshellID": 18, + "owner_b64": "SmIS26zLEdO3ZQBgsLbOywAAAAAAAAAAwAAAAAAAAEY=", + "docIdentifier": 17 + }], + "lastAccessed": 1393256966807, + "userTypedValue": "sess", + "userTypedClear": 0, + "hidden": false, + "attributes": {}, + "image": null, + "index": 1 + }, + "title": "New Tab", + "image": null, + "pos": 4, + "closedAt": 1393256966808 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/presentation/d/1oTncQrrq06b1ow-BdKkaFaNr5IlZaWQEhqjsNSgcEdM/edit#slide=id.i0", + "title": "Untitled Presentation - Google Drive", + "ID": 45, + "docshellID": 38, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 46, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }], + "lastAccessed": 1393256660847, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/presentations/images/favicon4.ico", + "index": 1 + }, + "title": "Untitled Presentation - Google Drive", + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/presentations/images/favicon4.ico", + "pos": 4, + "closedAt": 1393256660847 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/document/d/1lzeZ7lKYsBq1mXs6I1KwNAF4gbrCR7qVW1jr_5Ka0tQ/edit", + "title": "Untitled document - Google Drive", + "ID": 51, + "docshellID": 45, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }], + "lastAccessed": 1393256601337, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/documents/images/kix-favicon6.ico", + "index": 1 + }, + "title": "Untitled document - Google Drive", + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/documents/images/kix-favicon6.ico", + "pos": 3, + "closedAt": 1393256601337 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/spreadsheet/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web", + "title": "SessionFile.read() - Google Drive", + "ID": 39, + "docshellID": 33, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 40, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }, { + "url": "http://localhost:8080/?httpsurl=docs.google.com/spreadsheet/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web#gid=0", + "title": "SessionFile.read()", + "ID": 40, + "docshellID": 33, + "docIdentifier": 40 + }], + "lastAccessed": 1393256373871, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=docs.google.com/favicon.ico", + "index": 2, + "pageStyle": { + "pageStyle": "gridCss" + } + }, + "title": "SessionFile.read()", + "image": "http://localhost:8080/?httpsurl=docs.google.com/favicon.ico", + "pos": 3, + "closedAt": 1393256373871 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=github.com/andrewray/iocamljs", + "title": "andrewray/iocamljs · GitHub", + "ID": 16, + "docshellID": 16, + "referrer": "http://localhost:8080/?httpsurl=t.co/Lgc1R8XU0T", + "docIdentifier": 16 + }], + "lastAccessed": 1393256206748, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=github.com/favicon.ico", + "index": 1, + "scroll": { + "scroll": "0,625" + } + }, + "title": "andrewray/iocamljs · GitHub", + "image": "http://localhost:8080/?httpsurl=github.com/favicon.ico", + "pos": 2, + "closedAt": 1393256298987 + }], + "busy": false, + "width": 1440, + "height": 874, + "screenX": 2908, + "screenY": 73, + "sizemode": "normal", + "zIndex": 1 + }, { + "tabs": [{ + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738366957, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk2NWViODFkLTQ2ZDEtNDJlNS1hZTlmLTNkYzliMmIxNGM5Mn0AAAAA", + "docIdentifier": 0, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/", + "title": "Welcome to Facebook - Log In, Sign Up or Learn More", + "cacheKey": 0, + "ID": 3738366958, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFkN2JlMjg4LTBiODctNDZhMS1iNDQyLWNlN2UxMGI2YmI5M30AAAAA", + "docIdentifier": 1, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 0, + "ID": 3738366959, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFiNTQ3ZGJmLWI2ODItNGNhNi1hZDQxLTg5MWQ0NzUyNzQ4ZX0AAAAA", + "docIdentifier": 2, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256027, + "ID": 3738366960, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFjZjk4M2Y3LTAyZTktNDQwNS1iZWE4LTM3ZDdkNTAwNTExZH0AAAAA", + "docIdentifier": 3, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256028, + "ID": 3738366961, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezcxMjUyNjQ4LWEzMjctNGY5Ni1iNTg3LWRkYzljMWY0NGIwOX0AAAAA", + "docIdentifier": 4, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256029, + "ID": 3738366962, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RlZjY1ZWEwLWFhYWMtNDM5Zi04ZTg2LWIxNjQ3ZGVhNzM1Mn0AAAAA", + "docIdentifier": 5, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738366963, + "docshellUUID": "{771f237b-7a6c-4aec-be7c-5b95057a9b97}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA1Mzk3NTE4LWVmY2QtNGM2Zi1hNmI5LWZiYWQ0ODliNmU4MH0AAAAA", + "docIdentifier": 6, + "structuredCloneState": "GQAAAAQA//9oAHQAdABwAHMAOgAvAC8AdwB3AHcALgBmAGEAYwBlAGIAbwBvAGsALgBjAG8AbQAvAAAAAAAAAA==", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451778773, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 7, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAMWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9d3d3LmZhY2Vib29rLmNvbS8AAAAAAAAABAAAAAcAAAAOAAAAB/////8AAAAH/////wAAAAcAAAAJAAAAFQAAABwAAAAVAAAAAQAAABUAAAABAAAAFgAAAAAAAAAW/////wAAAAD/////AAAAFwAAABoAAAAV/////wEAAAAAAAAAAAAAAAA=" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738368435, + "docshellUUID": "{fc5eb424-e812-45b8-90bf-a8f7efefda01}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YyZjA3Y2JjLWJkMDUtNDRkNi1hOTI5LWFmZmE5YmY1ODJkM30AAAAA", + "docIdentifier": 7, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738368436, + "docshellUUID": "{fc5eb424-e812-45b8-90bf-a8f7efefda01}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E3MDA1Mzc1LWI3YzktNDIwNi1iY2I4LWRlM2ExZDRmNGJkZH0AAAAA", + "docIdentifier": 8, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368437, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAzM2UzZTdhLWZmOTktNGFmMC04ZmNhLWI2MGYyNTA3YWRlZX0AAAAA", + "docIdentifier": 9 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368438, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q3OTc4YmIyLWM0ODgtNGY4My1iNzg4LWQwYzAwMTM4YmYxZX0AAAAA", + "docIdentifier": 10 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368439, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RhMzJjODNlLTUyYjYtNGYyNi1hOTE3LTY0YWY3NTg0YjA0OH0AAAAA", + "docIdentifier": 11 + }], + "persist": true + }], + "lastAccessed": 1528451778269, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738368641, + "docshellUUID": "{b37faa84-49c2-486a-bd8e-f7feed76df75}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNkZjRjZTc2LTIxZjgtNDM3OS04ZjI1LTA1Mjg5ZTNjYTllZX0AAAAA", + "docIdentifier": 7, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738368642, + "docshellUUID": "{b37faa84-49c2-486a-bd8e-f7feed76df75}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UzMDNiOGQxLWIzMjAtNDgwZC1hMzY2LTU0YTUzYzM0NWI2NH0AAAAA", + "docIdentifier": 8, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368643, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNkYTRlMDg1LTc1NzAtNGFkYi05YzJmLTJmNmNjODY1MTY5M30AAAAA", + "docIdentifier": 9 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368644, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIwZmE3MDdkLWQxMzItNDg3MS04MGY2LTMzOGE0NTM3ZjkwZn0AAAAA", + "docIdentifier": 10 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368645, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI2OTBiZDU2LTIxMWUtNDdhOC05NTk2LTUyYTFjNzNmYzNjOX0AAAAA", + "docIdentifier": 11 + }], + "persist": true + }], + "lastAccessed": 1528451758813, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738368742, + "docshellUUID": "{3b3d275b-0b9d-486b-96d8-9e1fb8e7c53f}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMyYjRlMzBiLTE1NGEtNGY3OC1iNjA5LTY3ZDE2MjYwZDFjOH0AAAAA", + "docIdentifier": 9, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738368743, + "docshellUUID": "{3b3d275b-0b9d-486b-96d8-9e1fb8e7c53f}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U1MDUwNGJhLWNiYTQtNDU2NC1hN2RiLTA5ZTRjNDAxNTUzNn0AAAAA", + "docIdentifier": 10, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368744, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JmMzA4NTI2LTEwNWItNDUyYy05Yjc0LWU0OTQ0MjkwMmE1YX0AAAAA", + "docIdentifier": 11 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368745, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg0MTVhZGEyLWJkZTAtNDc2Yi04ZjFhLWJkY2I4ZDQ3OGZjZH0AAAAA", + "docIdentifier": 12 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368746, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IxN2YxODdjLTgxN2QtNDY4Ny05ZGUwLTI0MmIzMDYwYmI0Zn0AAAAA", + "docIdentifier": 13 + }], + "persist": true + }], + "lastAccessed": 1528451758927, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738368854, + "docshellUUID": "{6474e5ef-b095-4245-b981-5e62738c20a3}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EwOTEzZWRkLTQ2N2QtNDE4MC05Y2E1LTJmMTg5MDllZDQ0Nn0AAAAA", + "docIdentifier": 3, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738368855, + "docshellUUID": "{6474e5ef-b095-4245-b981-5e62738c20a3}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VhMDYwYjAyLTI5MmMtNGUzOS04YTAwLTQzODIwNTg0OTYwNn0AAAAA", + "docIdentifier": 4, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368856, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JhMWQ0YzZmLTIwYWEtNDE1Ni1iNjRkLTZhYzIyZDg4OGM1M30AAAAA", + "docIdentifier": 5 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368857, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VlMzVjNjhlLTVlNmEtNGJmMS04NTBlLWU4OTE5NDlhNzY4MX0AAAAA", + "docIdentifier": 6 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368858, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUyNTA0MDk1LTg5OWMtNDRmOC04MzU4LWQ0ZTkyZTU2Y2Q0N30AAAAA", + "docIdentifier": 7 + }], + "persist": true + }], + "lastAccessed": 1528451759052, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738368992, + "docshellUUID": "{57a6ec1d-599c-424d-a1e3-da58b927ff7c}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJhMzlhOTZkLTAzYTctNDA0Mi04YjI5LWM0ODdhYTI4OTA5Nn0AAAAA", + "docIdentifier": 12, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738368993, + "docshellUUID": "{57a6ec1d-599c-424d-a1e3-da58b927ff7c}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezlhZDQ1ODllLTEwMDItNDE3NC1hY2RmLTU4ODY2ZTM2ZGEzZH0AAAAA", + "docIdentifier": 13, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368994, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQxOTA5ZmUyLWMyZDAtNGE4Mi1hZDU5LWI5OGFlOTU4OGVjN30AAAAA", + "docIdentifier": 14 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368995, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY5MzU3NWNjLWZjMDgtNDUyYS1hNDk3LWNlMzkzNjZhY2I2Zn0AAAAA", + "docIdentifier": 15 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738368996, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdmM2Q0ZjFhLWY2ZTgtNGE3YS04YTk1LWJmNzIyMDNhZDE3MX0AAAAA", + "docIdentifier": 16 + }], + "persist": true + }], + "lastAccessed": 1528451759170, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369095, + "docshellUUID": "{0a8233af-40c0-4375-88a2-891ffc3b57f1}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezlkMTQ3ZDM4LTkyNzgtNDI2Ni1hNjYzLWYzNGJlNWExMTZhY30AAAAA", + "docIdentifier": 12, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369096, + "docshellUUID": "{0a8233af-40c0-4375-88a2-891ffc3b57f1}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZiNTdiOTBhLTU3NjctNGVhMS04MTAwLWZmODk2MjI0M2Q5Mn0AAAAA", + "docIdentifier": 13, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369097, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M0YzU3Y2E4LWE0M2EtNGViMi05NTdmLWEyMDQ0MGRkNWQ3M30AAAAA", + "docIdentifier": 14 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369098, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFiZDFhNDdhLTYzNDMtNDVlNC1iMzgwLTY2ZGY2YzVjYjFmNn0AAAAA", + "docIdentifier": 15 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369099, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmNDQ2NDgxLWVhNmQtNDdkOS1hOWQ1LTViOTEwOTk1MmYzNX0AAAAA", + "docIdentifier": 16 + }], + "persist": true + }], + "lastAccessed": 1528451759293, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369222, + "docshellUUID": "{f4a276aa-4265-4756-885c-030f3b497678}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg4NmMwYTY5LTkzNGUtNDRjMi04OTE5LWZiOTUzZjFkODIxOH0AAAAA", + "docIdentifier": 14, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369223, + "docshellUUID": "{f4a276aa-4265-4756-885c-030f3b497678}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ3NDBiNTkzLTAzZDUtNDMzZC1hNTk3LTk0OGVkMWYyMjM5Yn0AAAAA", + "docIdentifier": 15, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369224, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU4MzExMGYxLWViNzMtNDc2Yi1hOTQyLWQ4M2Q2MDM3MTgxN30AAAAA", + "docIdentifier": 16 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369225, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc3ODBhN2E1LTM5ODYtNDc2ZC04NGZjLWRjMDVlM2FjZTMxZn0AAAAA", + "docIdentifier": 17 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369226, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M4MDE1YjhmLThmMDAtNDZhNS1iMGQ5LTNiZjJkN2ZmYmM4NH0AAAAA", + "docIdentifier": 18 + }], + "persist": true + }], + "lastAccessed": 1528451759412, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369341, + "docshellUUID": "{6d454462-6ac7-43b9-99cd-bb48fb41034f}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgyMjc4YjBiLTI5MDMtNDM3My1iZTc5LTRjYzEwMmU3NjI2NH0AAAAA", + "docIdentifier": 8, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369342, + "docshellUUID": "{6d454462-6ac7-43b9-99cd-bb48fb41034f}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IwMDgxYWQxLWMzNzMtNGE1Ni1iYzg1LTg1YzRlZTZjNWVlOH0AAAAA", + "docIdentifier": 9, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369343, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NjZDY2Y2I0LTAwZmUtNDM2OS1hNWVjLTk2NzMzOTk0MDljYX0AAAAA", + "docIdentifier": 10 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369344, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M5MmRlYzNkLWVlYzctNDI4ZS04ZmZhLTA4NTMxMjNmMmQxZn0AAAAA", + "docIdentifier": 11 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369345, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FhN2I2N2IzLWMzZTItNDRlZS1iMmZkLTQ4ZjdlNTRlM2NmM30AAAAA", + "docIdentifier": 12 + }], + "persist": true + }], + "lastAccessed": 1528451759539, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369464, + "docshellUUID": "{3c189af3-3e28-4be2-931d-503dd3f67718}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU4ODRkNmQ5LTQ5NzEtNGQyZC1hNDFkLTkzZjY2YmMxNzEzMX0AAAAA", + "docIdentifier": 17, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369465, + "docshellUUID": "{3c189af3-3e28-4be2-931d-503dd3f67718}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M0ZmFmNzE4LTM1ZjItNGMyZC1hNzY3LTViNjZmZDA3YTY5NX0AAAAA", + "docIdentifier": 18, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369466, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg1YmYxOGVhLTljMzctNGRhNi1iZDgzLWNmOTU5YzUxZGJlM30AAAAA", + "docIdentifier": 19 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369467, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJjNzUzODhkLWYxYWYtNDMxMi04NmQzLWM5OTI5ZTU4ZGI1Zn0AAAAA", + "docIdentifier": 20 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369468, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI4Mjg1MWVjLTYzYjgtNGYzOC1hZGY0LTFmNzM0OWI2ODExOH0AAAAA", + "docIdentifier": 21 + }], + "persist": true + }], + "lastAccessed": 1528451759676, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369602, + "docshellUUID": "{5184ca7e-0d81-4034-8162-e077d1e7eca1}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QzNTA4YzI4LWI3Y2YtNGZhNi04NWMyLTNkYTEwY2JhY2E1YX0AAAAA", + "docIdentifier": 17, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369603, + "docshellUUID": "{5184ca7e-0d81-4034-8162-e077d1e7eca1}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZjODFmNTAyLTI0ZmMtNDIzMy1hMGYwLTZhNGE5ZTAwMWVkMn0AAAAA", + "docIdentifier": 18, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369604, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU2ODQ5ZThlLWYyZTktNDhjOS04Nzg0LTBjZjZlNmYxNDdjYn0AAAAA", + "docIdentifier": 19 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369605, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkwYTM1NzUxLTdhZjctNDE0YS04MjcwLTIzNWU2ZTNkZWYyY30AAAAA", + "docIdentifier": 20 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369606, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VkMDVkNzYwLTU2MWYtNDI2Ni04YmEzLWQ3ZGViYzBjOWFkMn0AAAAA", + "docIdentifier": 21 + }], + "persist": true + }], + "lastAccessed": 1528451759821, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369747, + "docshellUUID": "{5c261eef-7de0-4495-b85c-b62a58bd8378}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMyZWMwZjNhLWIxMTUtNDgyNi05MzkzLWNiYmNlNTg1NmQxZX0AAAAA", + "docIdentifier": 19, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369748, + "docshellUUID": "{5c261eef-7de0-4495-b85c-b62a58bd8378}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U0NGM4ZDQ1LTNkMDEtNGNhYS1hNWU0LTA5ZGM3NjVlMjMwOH0AAAAA", + "docIdentifier": 20, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369749, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZlZjlkNjA3LTQ0OGUtNDZkMy04MTlmLTAyZDcyMzA1OGM3N30AAAAA", + "docIdentifier": 21 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369750, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y2YjE2N2VlLTExZjktNDEwYi1iYjk5LWFkMDk1ZWYzMGZmYn0AAAAA", + "docIdentifier": 22 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369751, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNlZTViMDlkLTY5OWUtNDM2Ny1hZDg4LWNjNDY2MGZiYWRmNH0AAAAA", + "docIdentifier": 23 + }], + "persist": true + }], + "lastAccessed": 1528451759955, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738369884, + "docshellUUID": "{9d07d778-69b6-4be4-a306-4a9797bfbcf6}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJlZWUyOTJlLWQ4ZmMtNDFlYS1hYWE0LTdmMjJhYTZhMTMwNH0AAAAA", + "docIdentifier": 13, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738369885, + "docshellUUID": "{9d07d778-69b6-4be4-a306-4a9797bfbcf6}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezllN2JmYzgyLWQ1YTktNDcyNC1iNjliLWJhMDJiOTJjZTNhMX0AAAAA", + "docIdentifier": 14, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369886, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ViN2IzZjc0LTlhNjAtNGY2My05NGMwLWY3YmJmZTQ0ZmNkM30AAAAA", + "docIdentifier": 15 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369887, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJkMzg3YTZjLTEyNmQtNGZiYi1hM2I1LWIzMWUzZmExY2JhYX0AAAAA", + "docIdentifier": 16 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738369888, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ4YzFhYzk1LTU1MjAtNDViZi05MGMxLWNjOWNmMWNjNzJlN30AAAAA", + "docIdentifier": 17 + }], + "persist": true + }], + "lastAccessed": 1528451760099, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738370024, + "docshellUUID": "{b9d6d22a-2893-4eea-9a3d-951d8c5dbb88}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJlNmRlZTczLTFmNjktNDc2MS1hMTkwLTAxMTA4YWNjN2RmOX0AAAAA", + "docIdentifier": 22, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738370025, + "docshellUUID": "{b9d6d22a-2893-4eea-9a3d-951d8c5dbb88}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MxYWYzNGVjLTcxYmItNGE3MC1hNGExLTdmNDY5OTI5MzFmMn0AAAAA", + "docIdentifier": 23, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370026, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBlM2MzZDE0LTYyMWUtNDMxNS1iOTMxLTg2NGZhNWQwYTA3Zn0AAAAA", + "docIdentifier": 24 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370027, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZiMTYyYTdhLWM4OTItNDYxNC04YjdjLTYyMDUzYzE0Y2JlNn0AAAAA", + "docIdentifier": 25 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370028, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA1YWZmODBiLTgzYWQtNDY1NC1hMTEzLTNkM2U3ZTE1NTY5Nn0AAAAA", + "docIdentifier": 26 + }], + "persist": true + }], + "lastAccessed": 1528451760461, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738370379, + "docshellUUID": "{fd98e6aa-7638-4918-9cf4-079b6d5cd486}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE5ZWE1MjEwLTYwOGUtNGJmNi05OTIzLTdlZDAxNmMxZjkyYX0AAAAA", + "docIdentifier": 22, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738370380, + "docshellUUID": "{fd98e6aa-7638-4918-9cf4-079b6d5cd486}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M1NDI4MGRkLWI2NGMtNGE2ZS04MDNmLTRmYzIyMDJlYmJmNH0AAAAA", + "docIdentifier": 23, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370381, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M3OWE1NDNhLTI2NjUtNGI5MC1iNDVjLTJlNGYxMGRkZWEwYn0AAAAA", + "docIdentifier": 24 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370382, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UwZDZlYTJiLTUwODUtNDczMC1iY2Y3LWRlZDRjOTU3ZDI0YX0AAAAA", + "docIdentifier": 25 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370383, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM3YTczMDMwLTVmOTAtNGM4NC1hODM3LWI1NTMxOTRmNGU0NH0AAAAA", + "docIdentifier": 26 + }], + "persist": true + }], + "lastAccessed": 1528451760691, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738370626, + "docshellUUID": "{ec1a7075-01ad-4eed-9480-0116865b0b4b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIyMDNmMWQzLTJiYTEtNGFmNS1hNjU3LTc4MWExZTdiNWQyZX0AAAAA", + "docIdentifier": 24, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738370627, + "docshellUUID": "{ec1a7075-01ad-4eed-9480-0116865b0b4b}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI2ODdkNTA3LWExNTYtNGRkZS04ODJhLTk1OTgxZTM0MzRiMX0AAAAA", + "docIdentifier": 25, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370628, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdiMjhjMmE0LTM5NzMtNDRhZC1hZDdkLTMzMzJhZGEyZjVhN30AAAAA", + "docIdentifier": 26 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370629, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q1OGJlYTUzLWY0YzYtNDkxNi05NzE2LTRmZTdlYmQ5NDgwNX0AAAAA", + "docIdentifier": 27 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370630, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRiNGUwZjVmLTAxY2YtNDY2Zi1iM2NiLWRiYTUzNTQ1ODliYn0AAAAA", + "docIdentifier": 28 + }], + "persist": true + }], + "lastAccessed": 1528451760923, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738370848, + "docshellUUID": "{81af231e-71de-4d2e-a2d9-e2d23692906d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY2ODY4ODcwLTMyMGMtNGFlZS1hYzM2LTRhNWRhNWQ4ZmNjZn0AAAAA", + "docIdentifier": 18, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738370849, + "docshellUUID": "{81af231e-71de-4d2e-a2d9-e2d23692906d}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E1Yjc4MWJmLTQ3ZjgtNDFkMi04ODhmLTJiMTEwMjE2ZTkxZH0AAAAA", + "docIdentifier": 19, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370850, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc3NmQwMjQwLWMzNWQtNDQ0Zi05NTQ2LTQ1NDZlZjJmNzFjZH0AAAAA", + "docIdentifier": 20 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370851, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY3NThlYzYyLWVlZDItNDA2OC1hMTAwLTcyZGQwZWIyNGVkZH0AAAAA", + "docIdentifier": 21 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738370852, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIyZjI4OWQ0LTVjNzAtNDVkNi1iYzc0LWUwNTllYjJjNmQxMn0AAAAA", + "docIdentifier": 22 + }], + "persist": true + }], + "lastAccessed": 1528451761140, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738371089, + "docshellUUID": "{cf203ed9-6ba7-4358-91ee-44eb4b0a7194}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM2Y2JlNzNiLTBmMTctNDE1MS05NjQ1LTk1NDZiYTZlZTQyZX0AAAAA", + "docIdentifier": 27, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738371090, + "docshellUUID": "{cf203ed9-6ba7-4358-91ee-44eb4b0a7194}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhjOTU0OGQwLTVkMzItNDhlZC05NGNhLTM2Njc2ZjFlZWIwMH0AAAAA", + "docIdentifier": 28, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371091, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZhMDJkZWQ0LWJmNWItNDE1Ny1iNTAxLTdlYTQzZDA5M2MwOX0AAAAA", + "docIdentifier": 29 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371092, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RjOWI5YTg0LTAxZjYtNGY5NC05YWQ1LTVlZmVkM2I3ZDkwZH0AAAAA", + "docIdentifier": 30 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371093, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVlZDIyZDcyLThlNjAtNDE1YS1iZTY2LWZlYzY4MjlkYTNkMX0AAAAA", + "docIdentifier": 31 + }], + "persist": true + }], + "lastAccessed": 1528451761393, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738371321, + "docshellUUID": "{2a9324ce-ce5c-4911-b6ff-dbcf213ba3da}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q2OWZjN2YwLTI3YjItNGYzNy1hMjQ1LWI5MGU0NTBlYmExNX0AAAAA", + "docIdentifier": 27, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738371322, + "docshellUUID": "{2a9324ce-ce5c-4911-b6ff-dbcf213ba3da}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI4ODZjOWU2LTJmM2YtNDdjMy05NWIyLTdhNGE0NDkyM2RhZn0AAAAA", + "docIdentifier": 28, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371323, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JhMWMxYWU2LWEwMzUtNGFjZC05YWJlLWZlOTU1MDhmN2RhZn0AAAAA", + "docIdentifier": 29 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371324, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE4MDc1NDk1LWMwN2MtNGI1Zi1iMjk2LTA2NDdmMTgxYjkwZX0AAAAA", + "docIdentifier": 30 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371325, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E0MjlmM2I5LTNhZjgtNGQwNi1iNTJlLTRjNTc2YTcwYTRjYn0AAAAA", + "docIdentifier": 31 + }], + "persist": true + }], + "lastAccessed": 1528451761608, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738371537, + "docshellUUID": "{072c99ea-aefa-4c3e-9401-03441d499629}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVmNDNhMzFhLTQzZTctNDAwYy05Y2NlLTY0Yjk2ZTIwYmIwZn0AAAAA", + "docIdentifier": 29, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738371538, + "docshellUUID": "{072c99ea-aefa-4c3e-9401-03441d499629}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc5ZDZkNWUxLTRkOGUtNDQxOC1hMTVjLWNiMjNhNzg3OWMwNX0AAAAA", + "docIdentifier": 30, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371539, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE1MzhkYTY5LWRjNDAtNDg4OC04NmFkLWM1M2UzZjJiNDY0ZX0AAAAA", + "docIdentifier": 31 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371540, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QyNjdjMGE0LWNmZWItNGJmZi1iMGEyLWI1M2ZhMzQ4NmViMH0AAAAA", + "docIdentifier": 32 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371541, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezllYWRmM2JkLTZhMWItNGY2OC04MzU2LThhMDAwZTM0YzU5Nn0AAAAA", + "docIdentifier": 33 + }], + "persist": true + }], + "lastAccessed": 1528451761873, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738371800, + "docshellUUID": "{c971066a-25e0-4293-94d3-b6d2c95203a1}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NiNDhlYmM5LTZiYWItNDU0NS05NWQzLTAyMjlkZGU1MDA4N30AAAAA", + "docIdentifier": 23, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738371801, + "docshellUUID": "{c971066a-25e0-4293-94d3-b6d2c95203a1}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBkNWExOTZmLTE1YzQtNDAyNy04MTVjLWIxOTMwMDNmZjJmOH0AAAAA", + "docIdentifier": 24, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371802, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I4ZTZmNjI5LTdmNmMtNDExNy04ZDE2LWVhYzBhZWFhODBkM30AAAAA", + "docIdentifier": 25 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371803, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NmNjdkMjZhLTY3MjgtNDRmYS05Yjg2LTliMzQ4NGI5MjFmNH0AAAAA", + "docIdentifier": 26 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738371804, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RiMDRiNzZjLWZmMGUtNDY5Zi04NWVlLWFmY2FmNTk4NWJkMH0AAAAA", + "docIdentifier": 27 + }], + "persist": true + }], + "lastAccessed": 1528451762140, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738372065, + "docshellUUID": "{f70ebb92-f590-43d0-9626-2be9cceff3a3}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhjZTczNWQzLWFiOTItNDdhYS1iYTEzLTE0YjlmMmZhYTQyYn0AAAAA", + "docIdentifier": 32, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738372066, + "docshellUUID": "{f70ebb92-f590-43d0-9626-2be9cceff3a3}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE5NDEwYzU2LWFmNWEtNDdmMS1iZTZjLTY3MTQ4ZWUyMjdlOH0AAAAA", + "docIdentifier": 33, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372067, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JmOWE1YzIwLWY5YjItNDUxMi05YjQ1LWM5ZDVhNzI2ZTRjNX0AAAAA", + "docIdentifier": 34 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372068, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgzNmIyY2RkLTIzNDctNGMwYS1iNjZjLTIxZjYyZjBjYjk3Nn0AAAAA", + "docIdentifier": 35 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372069, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdlNzUwNWM3LTdmMmMtNDMxNi1hMzYyLTA3YmFjZTA4MDQ0M30AAAAA", + "docIdentifier": 36 + }], + "persist": true + }], + "lastAccessed": 1528451762409, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738372338, + "docshellUUID": "{71ddba67-dda4-4c76-a0c6-f5cf08ab2467}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVjMTUwMjVlLWY0MDYtNGQ3MS1hNDJlLWMyOTJhMzRmNjBmMn0AAAAA", + "docIdentifier": 32, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738372339, + "docshellUUID": "{71ddba67-dda4-4c76-a0c6-f5cf08ab2467}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QxNjM3MzllLTIyMjItNDFlYy05Mzk0LWUwMGQwZWJmNjgyMn0AAAAA", + "docIdentifier": 33, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372340, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EwZGM4M2MyLTcxYjYtNDc0My04YzBmLTc4ZWIzZjNmZGQxY30AAAAA", + "docIdentifier": 34 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372341, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNkZDBiYzM4LTI4ZTgtNDk1ZC04YmQyLWE0OTNiMjJkMTU2NX0AAAAA", + "docIdentifier": 35 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372342, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhlN2IzODc1LTViOTEtNDk0MS1iMGQ5LTZhYjE3NjBjMzdmN30AAAAA", + "docIdentifier": 36 + }], + "persist": true + }], + "lastAccessed": 1528451762641, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738372570, + "docshellUUID": "{ef3db746-9c3d-4cab-a845-53ae91f3db4e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE4MDEzODA3LWZjYmMtNGQ2NC04NjJjLTk0MTAwMzAzYWQ4M30AAAAA", + "docIdentifier": 34, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738372571, + "docshellUUID": "{ef3db746-9c3d-4cab-a845-53ae91f3db4e}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUyZTIyYzQ3LWU5YzktNGJmNC1iYjNiLWQ2NGM4MDlkMDBjZn0AAAAA", + "docIdentifier": 35, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372572, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMyNzQ1ZDY0LThlMDctNDcxOS1iYzJjLTljOTE3ZjQ2NmU1Y30AAAAA", + "docIdentifier": 36 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372573, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E0ZTM1ODNmLWU3ODYtNGVlNS05ZDQxLTUyZDE3NWIzYzliM30AAAAA", + "docIdentifier": 37 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372574, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk0OWIzZmQ1LTgzMTUtNDU3OC1hOGI4LTE0ZWZhMGM4N2Q5Yn0AAAAA", + "docIdentifier": 38 + }], + "persist": true + }], + "lastAccessed": 1528451762832, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738372758, + "docshellUUID": "{075f5658-cb05-48bb-ba52-ebba8ea0ff40}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc2ZTdiMTI2LWIyMmUtNDdjNS05ZWY0LTNmODNjODBjMGFmN30AAAAA", + "docIdentifier": 28, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738372759, + "docshellUUID": "{075f5658-cb05-48bb-ba52-ebba8ea0ff40}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkyZWM1NjUzLTZkNTAtNDU3Ny05MmI0LTBkN2RlMmJkZjE2ZH0AAAAA", + "docIdentifier": 29, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372760, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I4YzkxNzcyLTg5OTMtNDhkMS1iYmI3LTY5YjdjYjNlYjRiOX0AAAAA", + "docIdentifier": 30 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372761, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NiMDhlZTk5LWYyNjktNGNmOS04MTgzLTc4MjU4NjNkYWI4Yn0AAAAA", + "docIdentifier": 31 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738372762, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgxNDFhMmZiLTAwNzMtNDI2NS04NDZkLTI1NjI5NzFhZjEyNH0AAAAA", + "docIdentifier": 32 + }], + "persist": true + }], + "lastAccessed": 1528451763098, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738373024, + "docshellUUID": "{b9616028-d518-4053-aa33-6cd7253acb82}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezliZGY4ZTc3LTA3ZjAtNGQyNi1iNWU2LWRlZjE2ZWRkYTU2M30AAAAA", + "docIdentifier": 37, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738373025, + "docshellUUID": "{b9616028-d518-4053-aa33-6cd7253acb82}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAzYTg4MjBhLTU2M2QtNGMxOS1hOTM4LTg0NDQ3NTY5YzgzN30AAAAA", + "docIdentifier": 38, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738373026, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUwZGE0Y2RlLTI0NDUtNGVhNy04ZTFjLTM4MDQ1NTgzNjM3Yn0AAAAA", + "docIdentifier": 39 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738373027, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI5OTgwZjM2LTZhNGEtNDQ3Ny1iODA5LWZmMDA1MWUxNWJhNn0AAAAA", + "docIdentifier": 40 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738373028, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZhMzUyOTAyLWYxNTQtNGY3ZS1iZmU4LTkyYTlhNGQxYTkxNn0AAAAA", + "docIdentifier": 41 + }], + "persist": true + }], + "lastAccessed": 1528451763574, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738373506, + "docshellUUID": "{3fdf58fd-e8dd-47f3-aa5b-22eb11827ca5}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M3YzY5MDdmLTdmNWYtNDQxOC05MWZjLTQyNjUxM2ViYTA0Mn0AAAAA", + "docIdentifier": 37, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738373507, + "docshellUUID": "{3fdf58fd-e8dd-47f3-aa5b-22eb11827ca5}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU2ZTJjNjdjLTZhOGUtNDFmZC04OTljLThlYTI2MDZjZmUzM30AAAAA", + "docIdentifier": 38, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738373508, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQwYjI3YmYyLWM1NDQtNDkwOC1hZTQwLTEyZWY5NmNjMzBiZH0AAAAA", + "docIdentifier": 39 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738373509, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ExNDNjOTk1LTFlNDQtNDM3MC04ZDI5LTVlODFhMDk0YjY3ZX0AAAAA", + "docIdentifier": 40 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738373510, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQzM2I3NGNmLTBlZWEtNDM0Yy1iNmZiLTQ1ZWQxYWQ3ODIxYn0AAAAA", + "docIdentifier": 41 + }], + "persist": true + }], + "lastAccessed": 1528451764116, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738374045, + "docshellUUID": "{2623cd60-a7e9-43de-be45-ac41673b7953}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI1NGFhZTliLTk5ZDEtNDQwYy04OWNhLTU0OTJlNDkzZThlNn0AAAAA", + "docIdentifier": 39, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738374046, + "docshellUUID": "{2623cd60-a7e9-43de-be45-ac41673b7953}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU4Njk4ZmNkLTY3MmYtNGRlOC04Y2VhLThiYjJkNTZjZmYwNn0AAAAA", + "docIdentifier": 40, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738374047, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RiYmExZjVlLWIxZTktNGQwZS05MjhkLWE3ZjQ5YmFkMGMxYX0AAAAA", + "docIdentifier": 41 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738374048, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk2ZjNjMGEzLTdkZmUtNGM4Ni04MGRmLWMyOWE2ZjYzZWQzN30AAAAA", + "docIdentifier": 42 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738374049, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezliYmIwMDgzLTI0OGYtNGZlMC1iMjYzLWI5ZWZhZjk4YTZmYX0AAAAA", + "docIdentifier": 43 + }], + "persist": true + }], + "lastAccessed": 1528451764619, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738374550, + "docshellUUID": "{7bfe85f3-4edf-4826-b5ec-a2fffe5774ac}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEzYWU2NTc4LTk2ZTEtNDgwNS1hNGY5LTA0ZDlhZWQ2NmVjMn0AAAAA", + "docIdentifier": 33, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738374551, + "docshellUUID": "{7bfe85f3-4edf-4826-b5ec-a2fffe5774ac}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FjNWZiMDJiLTZjODktNGYwMi04ZTYxLWJkMmU5ZjRhZmQzZX0AAAAA", + "docIdentifier": 34, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738374552, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZhYzMzYTUwLTEyZDctNGNlMy05MTZhLTNlZTZjNGMzMzZjMn0AAAAA", + "docIdentifier": 35 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738374553, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc5NGYzMzY1LTFkNGUtNDI5NC04N2RiLTA3MDc1NGUxYjg1Mn0AAAAA", + "docIdentifier": 36 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738374554, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RiMzMzNDRmLWI0YjktNDQ4OC04OWJlLTViMTU4ZjRiMTE5YX0AAAAA", + "docIdentifier": 37 + }], + "persist": true + }], + "lastAccessed": 1528451765104, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738375035, + "docshellUUID": "{75a2ec1a-ded9-4267-9591-e0db7ed8dfb8}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJiOTM1ZmE2LTJhMmQtNGM4Yi04ZjE4LTNhMjlhOWM3NTE1Nn0AAAAA", + "docIdentifier": 42, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738375036, + "docshellUUID": "{75a2ec1a-ded9-4267-9591-e0db7ed8dfb8}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ2M2E1MzhjLTdlMWItNDZjNy1hNzBjLTJlNmYwNjY1MDVmOX0AAAAA", + "docIdentifier": 43, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375037, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVlMGM0ZGQwLWIwMGUtNDkyMi1hMWI4LWZmZWI5ZTVjYTJlYX0AAAAA", + "docIdentifier": 44 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375038, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFjMTI3YmRlLTNmZDMtNDhjYy04MTdhLWQxMTcwMWJjZjIzZn0AAAAA", + "docIdentifier": 45 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375039, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezllZmNmZjk0LTE2ZjgtNDllOS1hZTJmLTJmZjdlZWRkOWQ0OH0AAAAA", + "docIdentifier": 46 + }], + "persist": true + }], + "lastAccessed": 1528451765517, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738375446, + "docshellUUID": "{774adad7-1957-4b24-b947-de17a0b59ac4}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezllMWE2OTgwLWRjYzktNDI3Ni05NTNiLTIyYTZhZmIyN2EwNn0AAAAA", + "docIdentifier": 42, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738375447, + "docshellUUID": "{774adad7-1957-4b24-b947-de17a0b59ac4}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I3ZTA4NThjLTk1NDYtNDU3Ni1iNGVmLTU5YWMwYjE0OTdjNX0AAAAA", + "docIdentifier": 43, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375448, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBiYWMyZTAxLTdlODctNDQyNS05MmIzLTdkOTJmOGUzMTA5ZX0AAAAA", + "docIdentifier": 44 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375449, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY4NGU1YjQ3LTdlZjctNGZlZi1hMzUyLTkwMjNmYjA1ZTc4N30AAAAA", + "docIdentifier": 45 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375450, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUzOTM3YWZlLWZmYTQtNDhlNS05ZTE5LTkwZDliMmJjZDc1NX0AAAAA", + "docIdentifier": 46 + }], + "persist": true + }], + "lastAccessed": 1528451765943, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738375875, + "docshellUUID": "{5c786142-423f-4b3e-a6c8-9df83c02ddad}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VhZGQ3NzcwLWRjNjEtNDJjMy1iN2IzLTk1MmRlNGM3NGQ2NH0AAAAA", + "docIdentifier": 44, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738375876, + "docshellUUID": "{5c786142-423f-4b3e-a6c8-9df83c02ddad}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UzMDE1MDBjLWMyNDYtNGEzMi05ODQ4LTM2YzIzZTBlYTExNH0AAAAA", + "docIdentifier": 45, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375877, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NiMjJkNDUwLWU5OGEtNDYxMC1iZDg0LTQ5ZGQ2NWE2NGQzNX0AAAAA", + "docIdentifier": 46 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375878, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E3ZTYzZDcxLWRhMGUtNDc5ZC1hY2JiLTcwMzEyOGMyMGNjZH0AAAAA", + "docIdentifier": 47 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738375879, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU3NTlhNjQwLWQzMjQtNDJmYy1hNzg1LWRlMTljZWM0NTEwY30AAAAA", + "docIdentifier": 48 + }], + "persist": true + }], + "lastAccessed": 1528451766692, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738376624, + "docshellUUID": "{ac054f42-1fcf-464e-bad7-c1cc87d726a2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q4NThkMzY1LWY1YzYtNGRiNS1iYjc5LTkxZDFkMDFhYWI3N30AAAAA", + "docIdentifier": 38, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738376625, + "docshellUUID": "{ac054f42-1fcf-464e-bad7-c1cc87d726a2}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI0ZTMwNThjLWM5ZDctNDY5NS05MmNiLWRmZWM4MDg1YmUxMH0AAAAA", + "docIdentifier": 39, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738376626, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg0MWRkZDk2LTg2NzAtNDUyOC04NDNlLTM5Mzk5OTZmMzRjMH0AAAAA", + "docIdentifier": 40 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738376627, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgzMjUzMTJkLWZmNDYtNGQ5Yi05MWM4LWY4MzBiYzQzMDQ0Y30AAAAA", + "docIdentifier": 41 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738376628, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk4NjM5N2VhLWZjNDgtNDYyNy04YmUyLTQyZjBmMTBlOWNiNH0AAAAA", + "docIdentifier": 42 + }], + "persist": true + }], + "lastAccessed": 1528451767314, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738377242, + "docshellUUID": "{ab70d2e1-0ec2-4b82-a1ad-8b3225942683}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA4ZGI4YWRmLWJjM2ItNDkzOS1iODgzLTA2NTY5YTVkYTYxNH0AAAAA", + "docIdentifier": 47, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738377243, + "docshellUUID": "{ab70d2e1-0ec2-4b82-a1ad-8b3225942683}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ5MmFmOWQzLTFjNmQtNGIwMy04MDViLWI4OTQ1Yjg1OWNjZn0AAAAA", + "docIdentifier": 48, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738377244, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q2MDI3MDI3LTJjMGEtNDM3MS1hMDA3LTZmODAxODBjN2IwYX0AAAAA", + "docIdentifier": 49 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738377245, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JmZmFiNGI0LTJiZTUtNDU4NC1iZjBjLWJkODNlOTZhN2VhY30AAAAA", + "docIdentifier": 50 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738377246, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk2MzM1OTg5LTY1NTctNGNjMS1hNmJmLTg5MDY2NWE0ZjdhYn0AAAAA", + "docIdentifier": 51 + }], + "persist": true + }], + "lastAccessed": 1528451767882, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738377819, + "docshellUUID": "{e67d331a-b22e-42d1-8b09-13e138bfd5cd}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc0NmQ5MThkLWE5OTUtNGE3My04MTkxLTgxZTkzMmZmNjE3Nn0AAAAA", + "docIdentifier": 47, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738377820, + "docshellUUID": "{e67d331a-b22e-42d1-8b09-13e138bfd5cd}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk0ZmRiYTA0LWFiMGUtNDI5NC1iMDcxLWMwOGE1MTBhMWE0M30AAAAA", + "docIdentifier": 48, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738377821, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezczM2NlZWM4LTQ2MDYtNDA0OS05NzBhLTczYzAwNjhhYWRjYn0AAAAA", + "docIdentifier": 49 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738377822, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezAyYTdjYWVhLTYxNzktNDA2Ni1iZGIxLTUxNDFkMGNhZTAwYn0AAAAA", + "docIdentifier": 50 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738377823, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZiYjA5N2IwLTEyODUtNGUzZi1hZWU1LTE3ODkyNjRkZjZlOX0AAAAA", + "docIdentifier": 51 + }], + "persist": true + }], + "lastAccessed": 1528451768368, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=twitter.com/Telegraph/status/437962536407666688/photo/1", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738378300, + "docshellUUID": "{8da4a49f-06b3-42d3-8b3c-ac10482438fb}", + "referrer": "http://localhost:8080/?url=t.co/FslmElOVwY", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FkYTg2NTgwLWViYzYtNDExMi1iNWQwLWQzOGY0ZDExNDIxM30AAAAA", + "docIdentifier": 49, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738378301, + "docshellUUID": "{e8979a67-52ae-4d6e-8b94-8de24a2a0733}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q4NGRmNmRkLWFkMjktNGI5OC1hYmIzLTEzYzAzOGJjMWUzOX0AAAAA", + "docIdentifier": 50 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738378302, + "docshellUUID": "{946a54d1-68a3-41e3-9a78-60a643045e94}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEyOGUxNTJjLTUwYTMtNDE1Ni04ZmQ5LTQ1ODM0MWJjNmYyMX0AAAAA", + "docIdentifier": 51 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738378303, + "docshellUUID": "{c2df782f-1821-48ce-a941-d9d492f5a71b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y5NmRmMDU1LTNmOGYtNDkwMy1iZWMzLWZkYjg4ZTFkMjI0ZX0AAAAA", + "docIdentifier": 52 + }], + "persist": true + }], + "lastAccessed": 1528451769139, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "storage": { + "http://localhost:8080": { + "ScribeTransport": "{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"items\":[{}],\"associations\":{\"2\":{\"association_id\":null,\"association_type\":3},\"3\":{\"association_id\":null,\"association_type\":3}},\"message\":\"//twitter.com/Telegraph/status/437962536407666688/photo/1/large\",\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"element\":\"platform_photo_card\",\"action\":\"show\"},\"triggered_on\":1393256185388,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"captured\"},\"triggered_on\":1393256185472,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"ignored\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"direct\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"all\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAV2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAQgAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAQAAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=www.google.fr/search?q=google+docs&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=aGcLU8r5I4Hf8geZ5YHABg&gws_rd=cr", + "title": "google docs - Recherche Google", + "cacheKey": 0, + "ID": 3738379064, + "docshellUUID": "{28ed802b-12a1-4fa2-a9c6-fd7ef099435e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ3NjJlNzI3LWZjMjYtNDg2MS1hNzkwLTIxMGU5ZjA5Yzk4MH0AAAAA", + "docIdentifier": 43, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=accounts.google.com/ServiceLogin?service=writely&passive=1209600&continue=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou%23&followup=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou<mpl=homepage&hl=fr", + "title": "Google Drive", + "cacheKey": 0, + "ID": 3738379065, + "docshellUUID": "{28ed802b-12a1-4fa2-a9c6-fd7ef099435e}", + "referrer": "http://localhost:8080/?httpsurl=docs.google.com/?hl=fr", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y4NGZiNTIxLTg1OTUtNGZlMS05YTZlLTdmNDVkNjNiYjhhZH0AAAAA", + "docIdentifier": 44, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0#my-drive", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738379066, + "docshellUUID": "{28ed802b-12a1-4fa2-a9c6-fd7ef099435e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QzMjhiOWI3LTk1NmEtNDVhMy1hNTI3LTk1MWU3MjY5MWM2MH0AAAAA", + "docIdentifier": 45, + "persist": true + }], + "lastAccessed": 1528451769873, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 3, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAqmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZHJpdmUuZ29vZ2xlLmNvbS8/aGw9ZnImdXJwPWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9d3d3Lmdvb2dsZS5mci91cmw/c2ElM0R0JTI2cmN0JTNEaiUyNnElM0QlMjZlc3JjJTNEcyUyNnNvdSZhdXRodXNlcj0wI215LWRyaXZlAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAACVAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAACKAAAAogAAAAgBAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/drawings/d/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA/edit", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738379803, + "docshellUUID": "{d8612a79-667b-429e-a1fd-bf60e438ea87}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY5MzRhZTVkLWM5NWUtNDUyZS1iMzg0LWZjNDExNTAzZjRhOX0AAAAA", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451773304, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZG9jcy5nb29nbGUuY29tL2RyYXdpbmdzL2QvMUtxNjV5VnFXVDdIeHJHTGVOZHhBaXBxYlg3UDRPdVM0TWQzMjVSMGVkckEvZWRpdAAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAVwAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAVQAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/document/d/1dm2Z_yaEU506PHeJE64BReXQyIlJgJk7mXOjKx36MbE/edit", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738383232, + "docshellUUID": "{7601d93f-7b07-43f0-9ba6-a97f2759bcc1}", + "referrer": "http://localhost:8080/?httpsurl=docs.google.com/drawings/d/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA/edit", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNjNWE2NGI4LTNmOTgtNDAxNC1iNjRjLWRmZGIyNmNlNDE1NH0AAAAA", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451773714, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZG9jcy5nb29nbGUuY29tL2RvY3VtZW50L2QvMWRtMlpfeWFFVTUwNlBIZUpFNjRCUmVYUXlJbEpnSms3bVhPakt4MzZNYkUvZWRpdAAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAVwAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAVQAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=www.google.fr/search?q=movies&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=U6UMU8XlJYHf8geZ5YHABg&gws_rd=cr", + "title": "movies - Google Search", + "cacheKey": 0, + "ID": 3738353352, + "docshellUUID": "{55a18881-1dea-4dc7-937c-77e0811a51dc}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhlMTYxYzMxLWFlN2MtNDA5MS04YWZhLWUyOTBmYjdjZmU4Mn0AAAAA", + "docIdentifier": 1, + "persist": true + }, { + "url": "http://localhost:8080/?url=www.youtube.com/user/YouTubeMoviesFR", + "title": "Films - YouTube", + "cacheKey": 0, + "ID": 3738353353, + "docshellUUID": "{55a18881-1dea-4dc7-937c-77e0811a51dc}", + "referrer": "http://localhost:8080/?url=www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDUQFjAB&url=http%3A%2F%2Fwww.youtube.com%2Fuser%2Fmovies&ei=U6UMU9fnKIOb0AXAgYFg&usg=AFQjCNHrmNe-ykFP-4R2NPUvq_YQh3LfQw&sig2=k395eaN4vi_NxXCeQwBYtg&bvm=bv.61725948,d.d2k", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEyNDMwN2I5LWVjMmEtNDk4My1hNDk4LWE1ODE5ZDFiYjlhOX0AAAAA", + "docIdentifier": 2, + "structuredCloneState": "AAAAAAgA//8LAAAABAD//3MAcABmAC0AcgBlAGYAZQByAGUAcgAAAO0AAAAEAP//aAB0AHQAcAA6AC8ALwB3AHcAdwAuAGcAbwBvAGcAbABlAC4AZgByAC8AdQByAGwAPwBzAGEAPQB0ACYAcgBjAHQAPQBqACYAcQA9ACYAZQBzAHIAYwA9AHMAJgBzAG8AdQByAGMAZQA9AHcAZQBiACYAYwBkAD0AMgAmAHYAZQBkAD0AMABDAEQAVQBRAEYAagBBAEIAJgB1AHIAbAA9AGgAdAB0AHAAJQAzAEEAJQAyAEYAJQAyAEYAdwB3AHcALgB5AG8AdQB0AHUAYgBlAC4AYwBvAG0AJQAyAEYAdQBzAGUAcgAlADIARgBtAG8AdgBpAGUAcwAmAGUAaQA9AFUANgBVAE0AVQA5AGYAbgBLAEkATwBiADAAQQBYAEEAZwBZAEYAZwAmAHUAcwBnAD0AQQBGAFEAagBDAE4ASAByAG0ATgBlAC0AeQBrAEYAUAAtADQAUgAyAE4AUABVAHYAcQBfAFkAUQBoADMATABmAFEAdwAmAHMAaQBnADIAPQBrADMAOQA1AGUAYQBOADQAdgBpAF8ATgB4AFgAQwBlAFEAdwBCAFkAdABnACYAYgB2AG0APQBiAHYALgA2ADEANwAyADUAOQA0ADgALABkAC4AZAAyAGsAAAAAAAAADQAAAAQA//9zAHAAZgAtAHQAaQBtAGUAcwB0AGEAbQBwAAAAAAAAAAAwaV6WRnRCAAAAAAAA//8=", + "structuredCloneVersion": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353354, + "docshellUUID": "{8503ff2e-c42e-44ca-b144-c062166806d3}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZmZDJkNTc3LThiYTItNGFmNy05ZGRkLWVhODk4ZTRjNWM1Mn0AAAAA", + "docIdentifier": 3 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353355, + "docshellUUID": "{c700236c-2e81-4408-91e6-5c5ae237b153}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VhYzcwOTNmLWI4OTAtNDRlZC1hYzJiLWI3YjFhYzBmODc5OH0AAAAA", + "docIdentifier": 4 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353356, + "docshellUUID": "{4bab4fb2-6d15-4f56-ad7b-aaed67612d88}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIwZmU2Zjc1LTQ2MmMtNGMxMC04NjYxLWE1NDNiZTE0Y2U4Nn0AAAAA", + "docIdentifier": 5 + }], + "persist": true + }, { + "url": "http://localhost:8080/?url=www.youtube.com/watch?v=gYCzg8xg4c0&feature=c4-overview", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738353357, + "docshellUUID": "{55a18881-1dea-4dc7-937c-77e0811a51dc}", + "referrer": "http://localhost:8080/?url=www.youtube.com/user/YouTubeMoviesFR", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VmMTdhZWY4LWU0MzAtNGMxNC04NThhLWRmNjFlOTEzNzUwZn0AAAAA", + "docIdentifier": 6, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738353358, + "docshellUUID": "{1e8146cb-7b8d-4e52-a5ed-c8172a694cd5}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2EyMDJmZjBjLWI4MWItNDMyMi1iMDhmLTQ4ZTczYWMxMzliZn0AAAAA", + "docIdentifier": 7 + }], + "persist": true + }], + "lastAccessed": 1528451857681, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 3, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAUmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/dXJsPXd3dy55b3V0dWJlLmNvbS93YXRjaD92PWdZQ3pnOHhnNGMwJmZlYXR1cmU9YzQtb3ZlcnZpZXcAAAAAAAAABAAAAAcAAAAOAAAAB/////8AAAAH/////wAAAAcAAAAJAAAAFQAAAD0AAAAVAAAAAQAAABUAAAABAAAAFgAAAAAAAAAW/////wAAAAD/////AAAAFwAAADsAAAAV/////wEAAAAAAAAAAAAAAAA=" + }], + "selected": 40, + "_closedTabs": [{ + "state": { + "entries": [{ + "url": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "ID": 17, + "docshellID": 15, + "docIdentifier": 17, + "children": [{ + "url": "http://localhost:8080/?url=player.vimeo.com/video/73623354?title=0&byline=0&portrait=0", + "title": "Hamdam Centre Walk Thru at World Jnr Champs from SWIMSWAM on Vimeo", + "ID": 19, + "docshellID": 16, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 19 + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/plugins/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=box_count&show_faces=false&width=50&action=like&colorscheme=light&height=90", + "ID": 24, + "docshellID": 17, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 24 + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/plugins/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=button_count&show_faces=false&width=85&action=like&colorscheme=light&height=21", + "title": "Facebook", + "ID": 25, + "docshellID": 19, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 25 + }] + }], + "lastAccessed": 1393256151290, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?url=cdn.swimswam.com/wp-content/themes/swimswam/favicon.ico", + "index": 1 + }, + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "image": "http://localhost:8080/?url=cdn.swimswam.com/wp-content/themes/swimswam/favicon.ico", + "pos": 1, + "closedAt": 1393256151290 + }, { + "state": { + "entries": [{ + "url": "about:newtab", + "title": "New Tab", + "ID": 17, + "docshellID": 18, + "owner_b64": "SmIS26zLEdO3ZQBgsLbOywAAAAAAAAAAwAAAAAAAAEY=", + "docIdentifier": 17 + }], + "lastAccessed": 1393256966807, + "userTypedValue": "sess", + "userTypedClear": 0, + "hidden": false, + "attributes": {}, + "image": null, + "index": 1 + }, + "title": "New Tab", + "image": null, + "pos": 4, + "closedAt": 1393256966808 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/presentation/d/1oTncQrrq06b1ow-BdKkaFaNr5IlZaWQEhqjsNSgcEdM/edit#slide=id.i0", + "title": "Untitled Presentation - Google Drive", + "ID": 45, + "docshellID": 38, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 46, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }], + "lastAccessed": 1393256660847, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/presentations/images/favicon4.ico", + "index": 1 + }, + "title": "Untitled Presentation - Google Drive", + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/presentations/images/favicon4.ico", + "pos": 4, + "closedAt": 1393256660847 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/document/d/1lzeZ7lKYsBq1mXs6I1KwNAF4gbrCR7qVW1jr_5Ka0tQ/edit", + "title": "Untitled document - Google Drive", + "ID": 51, + "docshellID": 45, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }], + "lastAccessed": 1393256601337, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/documents/images/kix-favicon6.ico", + "index": 1 + }, + "title": "Untitled document - Google Drive", + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/documents/images/kix-favicon6.ico", + "pos": 3, + "closedAt": 1393256601337 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/spreadsheet/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web", + "title": "SessionFile.read() - Google Drive", + "ID": 39, + "docshellID": 33, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 40, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }, { + "url": "http://localhost:8080/?httpsurl=docs.google.com/spreadsheet/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web#gid=0", + "title": "SessionFile.read()", + "ID": 40, + "docshellID": 33, + "docIdentifier": 40 + }], + "lastAccessed": 1393256373871, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=docs.google.com/favicon.ico", + "index": 2, + "pageStyle": { + "pageStyle": "gridCss" + } + }, + "title": "SessionFile.read()", + "image": "http://localhost:8080/?httpsurl=docs.google.com/favicon.ico", + "pos": 3, + "closedAt": 1393256373871 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=github.com/andrewray/iocamljs", + "title": "andrewray/iocamljs · GitHub", + "ID": 16, + "docshellID": 16, + "referrer": "http://localhost:8080/?httpsurl=t.co/Lgc1R8XU0T", + "docIdentifier": 16 + }], + "lastAccessed": 1393256206748, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=github.com/favicon.ico", + "index": 1, + "scroll": { + "scroll": "0,625" + } + }, + "title": "andrewray/iocamljs · GitHub", + "image": "http://localhost:8080/?httpsurl=github.com/favicon.ico", + "pos": 2, + "closedAt": 1393256298987 + }], + "busy": false, + "width": 1440, + "height": 874, + "screenX": 2596, + "screenY": 671, + "sizemode": "normal", + "zIndex": 3 + }, { + "tabs": [{ + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738392588, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IxZTZlYjc5LWJhNzctNDY5MS1hYTI4LWRiZjcwYmVmNmNmMH0AAAAA", + "docIdentifier": 46, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/", + "title": "Welcome to Facebook - Log In, Sign Up or Learn More", + "cacheKey": 0, + "ID": 3738392589, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA2YzBiMzJmLWEyNTktNDI5Zi1hNWI3LTVhYTRlOGRiNTYwMX0AAAAA", + "docIdentifier": 47, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 0, + "ID": 3738392590, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUwYjBmMzRmLTUzODEtNDA5NS1iODE4LTMyMzYzN2RmMWQzZH0AAAAA", + "docIdentifier": 48, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256027, + "ID": 3738392591, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezczNzk5NjgyLTZlMzEtNDVhNi05MzQyLWRhYTNkOGUyZDk3M30AAAAA", + "docIdentifier": 49, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256028, + "ID": 3738392592, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q3ZDM5MjgxLTdkNWMtNDEwNS05ZmM3LWM5NjBlMjFhYWE4Yn0AAAAA", + "docIdentifier": 50, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "title": "Facebook", + "cacheKey": 1393256029, + "ID": 3738392593, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezViODQzMWQ1LTkxMDYtNDUzYy04NDY2LTk4ZWU4M2UxODg0N30AAAAA", + "docIdentifier": 51, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738392594, + "docshellUUID": "{310c2b32-78a6-487e-8d14-7ba6a025be55}", + "referrer": "http://localhost:8080/?httpsurl=www.facebook.com/checkpoint/?next", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IzNGNiMTU2LTQ5OTQtNGQ0ZC05M2Y2LTUzMzI2YWVmZWQzNX0AAAAA", + "docIdentifier": 52, + "structuredCloneState": "GQAAAAQA//9oAHQAdABwAHMAOgAvAC8AdwB3AHcALgBmAGEAYwBlAGIAbwBvAGsALgBjAG8AbQAvAAAAAAAAAA==", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451791890, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 7, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAMWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9d3d3LmZhY2Vib29rLmNvbS8AAAAAAAAABAAAAAcAAAAOAAAAB/////8AAAAH/////wAAAAcAAAAJAAAAFQAAABwAAAAVAAAAAQAAABUAAAABAAAAFgAAAAAAAAAW/////wAAAAD/////AAAAFwAAABoAAAAV/////wEAAAAAAAAAAAAAAAA=" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738393633, + "docshellUUID": "{335446bc-57a9-4cd3-987b-984c0239d326}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RiZGVhOWU1LTBlNjMtNDdjYi1iODNiLTYwYjIzMjBlMzIyOX0AAAAA", + "docIdentifier": 53, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738393634, + "docshellUUID": "{335446bc-57a9-4cd3-987b-984c0239d326}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk0MjY2ZmE3LWZhN2EtNGNiZC05NzZjLWEwNjM2NGUzNjJiYn0AAAAA", + "docIdentifier": 54, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393635, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZmNzQwZDZjLWM3NDItNDgzYS04YjBmLThmYzE3MGE3NWVjMn0AAAAA", + "docIdentifier": 55 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393636, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI5N2IxMmRjLTIxYmYtNDgwNy1iNmRjLTNmOGNiNmEzYmRjN30AAAAA", + "docIdentifier": 56 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393637, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY4NzBhNWRlLTQyZGYtNDhlMy05OTQwLWYzNWNhYWQwN2E4YX0AAAAA", + "docIdentifier": 57 + }], + "persist": true + }], + "lastAccessed": 1528451791164, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738393813, + "docshellUUID": "{86c12ff6-31a2-4c9f-92ad-5033f3a65515}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I3ZjgxNzQ0LWJmNDEtNDRjZi1hYTQyLTFiODA0NjE5NTdjZH0AAAAA", + "docIdentifier": 53, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738393814, + "docshellUUID": "{86c12ff6-31a2-4c9f-92ad-5033f3a65515}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc0NjdjZjBkLWM4NzMtNDk5My1iZGQ5LTZlYmU2MDU3NjRmNH0AAAAA", + "docIdentifier": 54, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393815, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NlMmViYWNjLWZiNzUtNGRlYi05OWNjLWMxZGYzNDA2YWY0OX0AAAAA", + "docIdentifier": 55 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393816, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZhODc2NmVkLTVmNzQtNDQ5ZC05MTk1LWFlNjA1ZTMwMjI5Zn0AAAAA", + "docIdentifier": 56 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393817, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q4OGY5ZDJmLTYxMGEtNDYwOS05Nzc1LTk3NmVhNDljNWJlZn0AAAAA", + "docIdentifier": 57 + }], + "persist": true + }], + "lastAccessed": 1528451790793, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738393925, + "docshellUUID": "{f46d62a6-87c0-4574-b3e1-403f464f7b86}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZiMDYzM2ZmLTJmOTktNDRlZS05NTQxLTFjZWY2ODQ0NjU0Zn0AAAAA", + "docIdentifier": 60, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738393926, + "docshellUUID": "{f46d62a6-87c0-4574-b3e1-403f464f7b86}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg1YWI0MmQwLWYzMGYtNGU1Yy04NDEwLTNiYzE0MDZmMTkyZX0AAAAA", + "docIdentifier": 61, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393927, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYwOWQyZDc0LTM4YzctNGRiZS1hZjc5LTY0MmI1MGRkNjA4Nn0AAAAA", + "docIdentifier": 62 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393928, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE5MDM5NzRlLTU0YzQtNGZmNS1iYTE3LThiNjM1NjQwYmM0NH0AAAAA", + "docIdentifier": 63 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738393929, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE5M2VjZTI3LTA0OWMtNDMyOS05YzRjLTdhNTY0OTZlNWU2Yn0AAAAA", + "docIdentifier": 64 + }], + "persist": true + }], + "lastAccessed": 1528451784113, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394044, + "docshellUUID": "{b48b1b73-ab13-4c1e-9caf-604f1aac99a1}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MyN2ZkNzZjLTJjYzItNDQyZC1iNmU0LTdiN2JjMjM4MjkxN30AAAAA", + "docIdentifier": 53, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394045, + "docshellUUID": "{b48b1b73-ab13-4c1e-9caf-604f1aac99a1}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdmNGMzNTJkLWMxNzgtNDhjYS04NGM5LTk5NmI2ZGIzNjNlY30AAAAA", + "docIdentifier": 54, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394046, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY0N2Q4M2ZjLWU5Y2MtNDdmMC05ZTQ2LTg2NTUzYjIwZDFkZH0AAAAA", + "docIdentifier": 55 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394047, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q1NTQ2YTZlLWMzYzktNGIzYy1hNzRiLTYyZmU4ZGNmNTI0Yn0AAAAA", + "docIdentifier": 56 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394048, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U3NDIwNjQyLTA3MTItNDA1MC05YmFhLTA3NmM5NTI4MmE5OX0AAAAA", + "docIdentifier": 57 + }], + "persist": true + }], + "lastAccessed": 1528451784231, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394156, + "docshellUUID": "{364e1ef0-469a-4e29-b4f7-b68412dad2df}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUzODZjZWI1LTQzODgtNGI2My1hMzM2LTJiNTBlNTQwMzE2Y30AAAAA", + "docIdentifier": 58, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394157, + "docshellUUID": "{364e1ef0-469a-4e29-b4f7-b68412dad2df}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBlMjU2MjgyLTZlODAtNGVmMC04MTQxLWU0MmM2NGMwZjVhZH0AAAAA", + "docIdentifier": 59, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394158, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ5Y2E1MGRlLTI5ZTUtNDg1ZC05N2M3LWI1NzFiZTMxZDIzYn0AAAAA", + "docIdentifier": 60 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394159, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMzZTRhMjA5LTRkNGQtNGYwOS05NDgyLTI4OWVkMGY2YmNjZn0AAAAA", + "docIdentifier": 61 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394160, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRkMmE4OTBjLWRlZDItNDU1NC05MTg3LTY5ZmExMWJmZjU3YX0AAAAA", + "docIdentifier": 62 + }], + "persist": true + }], + "lastAccessed": 1528451784333, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394258, + "docshellUUID": "{973e770b-8ff0-4bbe-96a8-6bd02c9ff01c}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVhYWEwNWIzLWQzYTQtNDNmMy1iYjM1LWJkZjI0MWMyNGVmOH0AAAAA", + "docIdentifier": 58, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394259, + "docshellUUID": "{973e770b-8ff0-4bbe-96a8-6bd02c9ff01c}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE0MGY0M2UzLWE5NTAtNDE0Yi05ZGNhLTY4Njc0OWMxYWI4MX0AAAAA", + "docIdentifier": 59, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394260, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQwYjk5YWMyLWJhNmQtNGQ4ZS1hNzk3LTk0MzRjNmM5ZDA1ZH0AAAAA", + "docIdentifier": 60 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394261, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEwYjgxODE3LTlkZGQtNGMzNy05MTJlLThjY2IxODFjODFiYX0AAAAA", + "docIdentifier": 61 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394262, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNjY2Y5ZjcxLTljYjctNDU4NC1hZDExLWVmNTM1NmI5NTE5ZX0AAAAA", + "docIdentifier": 62 + }], + "persist": true + }], + "lastAccessed": 1528451784452, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394377, + "docshellUUID": "{a5a5a1a3-8c65-4d5e-9498-f19fbcf0efb4}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU5NDZkYWJkLWY4NjctNGUxZC1iMjFiLTg1OWYzMWMwMjM2OX0AAAAA", + "docIdentifier": 65, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394378, + "docshellUUID": "{a5a5a1a3-8c65-4d5e-9498-f19fbcf0efb4}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q4NGJlZTAzLTI4ZWUtNDU4OS1hMjQ0LTU4ZjdkMzAyZmJkOX0AAAAA", + "docIdentifier": 66, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394379, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYyNjJmZWVmLWIzNmItNGU4OC04NTc4LTBmMmNlNmVmOGE1NH0AAAAA", + "docIdentifier": 67 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394380, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FlN2RlZTU4LWUyNmQtNGZjMi05NGRkLTMyNWNkNWE4MGVjOX0AAAAA", + "docIdentifier": 68 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394381, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmMmE2ODFlLWNiZTEtNDJhYy05ZTQ0LTVjMjc1N2I0MWU5NH0AAAAA", + "docIdentifier": 69 + }], + "persist": true + }], + "lastAccessed": 1528451784580, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394510, + "docshellUUID": "{8c038340-04bf-457e-837d-eeead721030c}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRiMzRkM2VjLWVlNDktNGZkMS04ZTc1LWY0MjU1ODU1NzRiM30AAAAA", + "docIdentifier": 58, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394511, + "docshellUUID": "{8c038340-04bf-457e-837d-eeead721030c}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgyM2M5MGU0LTE5OTQtNDY1My1iYjY2LWRlYzQ0ODdmOWY3OX0AAAAA", + "docIdentifier": 59, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394512, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE4MmE3NmMzLTY5YzktNGMxMy1hMWY5LWRkZWE1NjNlNjIxMH0AAAAA", + "docIdentifier": 60 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394513, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNjNWI5YTRjLTU5ZmYtNDM0ZC05ZTJjLTE2ZDFhMWQ1MTQwOH0AAAAA", + "docIdentifier": 61 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394514, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEyNDliM2U0LWU1OTEtNDQ4YS1hMWI1LTc5MDc3NjQ0ZDMyNX0AAAAA", + "docIdentifier": 62 + }], + "persist": true + }], + "lastAccessed": 1528451784718, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394644, + "docshellUUID": "{6fb01239-3fa8-4b60-a742-0145f1d0dd30}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JhNmQxNzdlLTk2ODUtNDQzNC1hZGQzLTg4NjI2ODE4OWE4NH0AAAAA", + "docIdentifier": 63, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394645, + "docshellUUID": "{6fb01239-3fa8-4b60-a742-0145f1d0dd30}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M5MjRiMzI1LWQ3NjEtNGVkOC05N2Y3LWY4ZDhlYWUxYmMxZn0AAAAA", + "docIdentifier": 64, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394646, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMxYWMzZTg5LTQwNTktNGQwOC1hM2JhLWQ0NjhlNmFjOGJlZX0AAAAA", + "docIdentifier": 65 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394647, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M4ODA3MTUxLTcxMGUtNDcwZS1hYTU3LWI2ZDcwYWNjM2Q3MH0AAAAA", + "docIdentifier": 66 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394648, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdjMGNjYzRmLWFlZGItNGZlNC05MDQ1LTNjNGE2YzBmYTNiZX0AAAAA", + "docIdentifier": 67 + }], + "persist": true + }], + "lastAccessed": 1528451784835, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394761, + "docshellUUID": "{5cc59426-0b70-4eae-ae5d-10978afcd6c6}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezljZDZkNzk4LTRjODktNGQyMC1hMmZhLTAxZjFjZmEzNzcyM30AAAAA", + "docIdentifier": 63, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394762, + "docshellUUID": "{5cc59426-0b70-4eae-ae5d-10978afcd6c6}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNjZjlhODlhLWQzNzctNDE5NC1iNDVjLTBmMDBmNzUzMDliZH0AAAAA", + "docIdentifier": 64, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394763, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRiNmI5ZjBhLWM0ZmItNGIyMC1iZjY2LWYyZjU3NmRhYzA0Yn0AAAAA", + "docIdentifier": 65 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394764, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQwZDM5ZTA3LWNkYmItNGI5ZC04MjA1LWJhYmNiNzdhODk0Y30AAAAA", + "docIdentifier": 66 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394765, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y1N2NkMjhlLTc1MzQtNGMxMi04NjEyLTg3ZTMzNWExMmQ3NH0AAAAA", + "docIdentifier": 67 + }], + "persist": true + }], + "lastAccessed": 1528451784978, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738394906, + "docshellUUID": "{3658105f-5557-44c2-8121-e02c138ab197}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ5YjJmNDdkLTMyOTItNGZkMC05NDJmLTM3NTM2MjE0ODc5Nn0AAAAA", + "docIdentifier": 70, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738394907, + "docshellUUID": "{3658105f-5557-44c2-8121-e02c138ab197}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezliZjg4ZTEyLWQ4NTAtNDI3ZC1hMjI3LWU3ZWVjYjM1NGYwY30AAAAA", + "docIdentifier": 71, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394908, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M3MmQ5YWI0LWU2YzYtNGQxZS04NWE2LWE3MTdmMTZlNTIzYn0AAAAA", + "docIdentifier": 72 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394909, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJmZDkxZDc3LTFkMWUtNGZiNy05NDdkLWVhZWYzMDQyMjk1NX0AAAAA", + "docIdentifier": 73 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738394910, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M4Yjg0MTk3LTg1ODMtNDVkZC05MGUyLThhNWNhN2M0ZmRmYn0AAAAA", + "docIdentifier": 74 + }], + "persist": true + }], + "lastAccessed": 1528451785098, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395024, + "docshellUUID": "{2b1ee9bd-a06b-453e-810b-dd3d588171df}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M3MjQ3Y2ZlLTQ1YzYtNDIzMi04N2M5LTA1M2NmYTUwMWU4N30AAAAA", + "docIdentifier": 63, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395025, + "docshellUUID": "{2b1ee9bd-a06b-453e-810b-dd3d588171df}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y2ODE5YjZjLTU5ODUtNDRhYS05ZGNiLWNlMzEzY2ZhMTBlZX0AAAAA", + "docIdentifier": 64, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395026, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE1MTE3ZTRkLWU0MmQtNGFjYy05NWI1LTIwNGI5OWU3M2M1OH0AAAAA", + "docIdentifier": 65 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395027, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFmYzk5M2ZjLTdkNjgtNDFhMi04ZDZmLTcyZThlM2FkZmZmNn0AAAAA", + "docIdentifier": 66 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395028, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg3NzhkMjM5LWQ4OGUtNDA1ZS1hNzQwLTY3YzQxYzliZWQ2M30AAAAA", + "docIdentifier": 67 + }], + "persist": true + }], + "lastAccessed": 1528451785250, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395176, + "docshellUUID": "{6f83cd68-05e0-4f73-ad76-242ec696dd7d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RmYjVkOGUyLWUzYWItNGUxNC1hYjM0LTU2ODNkZmVkYmEyNn0AAAAA", + "docIdentifier": 68, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395177, + "docshellUUID": "{6f83cd68-05e0-4f73-ad76-242ec696dd7d}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MxYzM4MzQ0LWVlNzYtNDViMi1iYjM4LTEzOWI0Y2E4NTU5MH0AAAAA", + "docIdentifier": 69, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395178, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZjZTJmZjA3LWFkNjQtNDZlMC05MzNhLTg1NDc1MjA0MzZhOX0AAAAA", + "docIdentifier": 70 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395179, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UzMzE3YThiLTdiMzQtNDVkYS04YjRiLTUwMjFlNzA0ZWU4MX0AAAAA", + "docIdentifier": 71 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395180, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY5ZWViY2QxLWNjNDAtNDYwZS1iYzZlLThjYTZlNWMyYzQ2NX0AAAAA", + "docIdentifier": 72 + }], + "persist": true + }], + "lastAccessed": 1528451785363, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395288, + "docshellUUID": "{354ba2a4-2462-4c14-be41-3e4e3a1ce1cc}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVjZGI0M2ZjLWVmNmMtNGMzMS05OWMwLTY5OGE4MTFiZTI3NH0AAAAA", + "docIdentifier": 68, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395289, + "docshellUUID": "{354ba2a4-2462-4c14-be41-3e4e3a1ce1cc}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg1MmYwYTRiLTIyY2EtNDE5ZS04NDM3LWNlYzJhNGYwODQ0NH0AAAAA", + "docIdentifier": 69, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395290, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q3NDVjNGUxLTExZTEtNGYyMy1iMTUzLThkMjM2Nzk5OGU1YX0AAAAA", + "docIdentifier": 70 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395291, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NjNTIxOWYyLWJiZjEtNDgzNS1iMmM2LTA4YTU0NmE2Njc1MX0AAAAA", + "docIdentifier": 71 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395292, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhiZDkxM2Q0LTFiMzEtNDRmYS1hN2FiLTBkNmI5MmM4NGI0Mn0AAAAA", + "docIdentifier": 72 + }], + "persist": true + }], + "lastAccessed": 1528451785481, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395405, + "docshellUUID": "{5e06fdec-09c5-40f6-bea4-0d5bdcaff926}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZkMTM2ZjRjLTc2OGUtNDMyMi1hODA1LTc0ZWY4NDA1OTc4Y30AAAAA", + "docIdentifier": 75, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395406, + "docshellUUID": "{5e06fdec-09c5-40f6-bea4-0d5bdcaff926}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQyY2Y2OTEyLWI4NjMtNDdmZi1iMzg1LWRjYWI0MmY4YjJmOH0AAAAA", + "docIdentifier": 76, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395407, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUxNzNiNTg0LWQ1ZmEtNGE4My04NWM1LThlNTQzNTMwMDhjMH0AAAAA", + "docIdentifier": 77 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395408, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UwNjYwZmVkLTljMDgtNGNlOS04YjczLTU2ODE4MWEyYWViNn0AAAAA", + "docIdentifier": 78 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395409, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ5OTY0Y2Q2LTY5M2YtNDc3Yy05ZGFiLTM0NWQwMDYzNTExOH0AAAAA", + "docIdentifier": 79 + }], + "persist": true + }], + "lastAccessed": 1528451785620, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395545, + "docshellUUID": "{1a7f4dad-27bb-4725-b04f-9f8c892d1008}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZhYmFhYmEzLWEzZmUtNDUzZi04NzY5LTEyMDMyYzYxNWJlM30AAAAA", + "docIdentifier": 68, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395546, + "docshellUUID": "{1a7f4dad-27bb-4725-b04f-9f8c892d1008}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezgyOTk5NzEzLTdhM2QtNDE3OC05YjBkLWQ1ZmZmNDE5NWFhN30AAAAA", + "docIdentifier": 69, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395547, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JjNjc5YjIxLTBiZjAtNDc1ZS05MTllLTY3ZTJmMWVlNzM2Yn0AAAAA", + "docIdentifier": 70 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395548, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJiYmI1YjM5LWNlZmMtNGQyNS04OGVmLTA5YmM4YTgwOWEyZX0AAAAA", + "docIdentifier": 71 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395549, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YxY2NlNjJlLWQ2MjktNDU3ZS05YjMwLWMyNjZlODg2NWE3MX0AAAAA", + "docIdentifier": 72 + }], + "persist": true + }], + "lastAccessed": 1528451785760, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395686, + "docshellUUID": "{44ed296d-b887-44d2-8c47-bf788fd7d9ba}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q4YmYyNWZlLTA1ZTctNGNmMy1iNWNmLTdlYzU1NzZlMGRhMn0AAAAA", + "docIdentifier": 73, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395687, + "docshellUUID": "{44ed296d-b887-44d2-8c47-bf788fd7d9ba}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZhYzljOTljLTdlZWMtNDJmMi05N2E5LTg5OGY4MWRhNDg5Nn0AAAAA", + "docIdentifier": 74, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395688, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM5YjFkMjJlLWMwZGYtNGYxZC04MDMyLWEyMTM4ZTVmOTQ2OX0AAAAA", + "docIdentifier": 75 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395689, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2QzZmM3ZWVmLWY5NWYtNDMyMS04MmYwLWUyOWRlYjE0NmIyMX0AAAAA", + "docIdentifier": 76 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395690, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JjMTkxZTgwLWQ3ODMtNDZlOC1iMjcwLWVlNWNiMWVjMGE4Nn0AAAAA", + "docIdentifier": 77 + }], + "persist": true + }], + "lastAccessed": 1528451785910, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395839, + "docshellUUID": "{f7a5d662-5eba-4e54-9097-5e18bdc3039a}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E1OTA4ODQ4LTJhMTAtNDNkNy1iZThlLWEzMTY2OTA5MzYwMH0AAAAA", + "docIdentifier": 73, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395840, + "docshellUUID": "{f7a5d662-5eba-4e54-9097-5e18bdc3039a}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRkNGUzNTIzLWNlNDgtNDIyYy05YjUyLTQ3NjZkNjk3MTVmOX0AAAAA", + "docIdentifier": 74, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395841, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E4MjFhODUxLTkwZTgtNGFhYy04NzAzLTFkYzY5YjFjNTI2N30AAAAA", + "docIdentifier": 75 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395842, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE2NzczMmJiLWU3Y2QtNDY4NC1iNDZhLTAzODdlNmViMGQzOX0AAAAA", + "docIdentifier": 76 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395843, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUwOWE5N2Q2LTJjMWYtNDBkNy1iN2Q1LTAzOGJlMDk4NWQ1N30AAAAA", + "docIdentifier": 77 + }], + "persist": true + }], + "lastAccessed": 1528451786045, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738395972, + "docshellUUID": "{1fd927be-fde0-43f4-a0a7-84e493367f75}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YxNDQzYzM0LTBhYTMtNDE2NC1iYjNmLTk3ZjI2OGUzMDk0Nn0AAAAA", + "docIdentifier": 80, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738395973, + "docshellUUID": "{1fd927be-fde0-43f4-a0a7-84e493367f75}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U5ZjUzODljLTAzZDctNGJhZC1hOTVjLTg5MWJiNWU0YjA5Nn0AAAAA", + "docIdentifier": 81, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395974, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBmMTE2NjA2LWM0MDItNGZmYi05NjFkLTg0NGE0ODJhMTM1ZX0AAAAA", + "docIdentifier": 82 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395975, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk1MWI3MjY2LWE2OGQtNGE3Zi05MmNmLTQwZWFkNjM0MWE0OH0AAAAA", + "docIdentifier": 83 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738395976, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhjMzg0NWNiLTFjYzItNGQ2Zi04MzMwLWNlOWIwMjc2MTc2Zn0AAAAA", + "docIdentifier": 84 + }], + "persist": true + }], + "lastAccessed": 1528451786173, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396098, + "docshellUUID": "{0f043b40-b70f-4ee7-b465-180dfe187371}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ5M2U4MDNkLTYyYmYtNDQxYy1hYTEzLWYzNTIzOTQ5MjMyMX0AAAAA", + "docIdentifier": 73, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396099, + "docshellUUID": "{0f043b40-b70f-4ee7-b465-180dfe187371}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MwN2ZhYWRmLWY0YWUtNDU3Zi05NmIzLTNlNWU2MjJkNTFhY30AAAAA", + "docIdentifier": 74, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396100, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEzZWU4MzljLTkyZGYtNDg1MS1hMWJkLTE0OTg4ZWI0YzVjYn0AAAAA", + "docIdentifier": 75 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396101, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M2M2Q1OWIzLTVkOWMtNDY4NS04M2I4LWFkOTllNDkzMjlhNX0AAAAA", + "docIdentifier": 76 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396102, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc0NjkxYWJiLWM0MWEtNGY1OS1hMWVhLTg2Nzg2NjVhMDMxZn0AAAAA", + "docIdentifier": 77 + }], + "persist": true + }], + "lastAccessed": 1528451786307, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396232, + "docshellUUID": "{1213d0d4-aad8-4ecc-89f6-e3d502bb48b7}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2UzZWNiYmY5LWQ3MTktNDNmMy05ZWNkLWQyNGRjN2NhYjYzOH0AAAAA", + "docIdentifier": 78, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396233, + "docshellUUID": "{1213d0d4-aad8-4ecc-89f6-e3d502bb48b7}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezYxM2U3YjIwLWM5OTQtNDk0My04MDhlLTdlODhhYjYzOGUwNn0AAAAA", + "docIdentifier": 79, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396234, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezI2YmI2NmJmLTRlMTMtNDYxNy1hOGUxLTA1ODkwYjgyYzk5NH0AAAAA", + "docIdentifier": 80 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396235, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U4MDRmZTI3LTk1MGYtNDFlNS05ZjgwLWNlMmI5MjFjYWEyY30AAAAA", + "docIdentifier": 81 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396236, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YyOWI1OWRiLTczYmMtNDM4YS1iY2I4LWJlNmNjNjc0YzllN30AAAAA", + "docIdentifier": 82 + }], + "persist": true + }], + "lastAccessed": 1528451786456, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396383, + "docshellUUID": "{3caaff21-1839-4fe2-8ea6-855fa63c9fc8}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdjYmRmMDYxLTM3NDgtNDRlZS05ZjgxLTQ1NTI4NTM0MGUzOH0AAAAA", + "docIdentifier": 78, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396384, + "docshellUUID": "{3caaff21-1839-4fe2-8ea6-855fa63c9fc8}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y0ZWI1ZjU4LTQ0ZmQtNGE2Yi05MzA5LTczZDcxNGVkYTliM30AAAAA", + "docIdentifier": 79, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396385, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2JkN2NjN2U2LTUyOTktNDYwYS05NDQxLTA2ZmQ5NmVjY2YxYn0AAAAA", + "docIdentifier": 80 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396386, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNiMWU0YjFjLTc0MDItNGI0ZC1iODM0LWM5NTdjMmE3MjYyNn0AAAAA", + "docIdentifier": 81 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396387, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEyMzA4M2YxLWY1YzktNGVkZS1iYzJiLTEzNDM3Yjg1MGQ0Y30AAAAA", + "docIdentifier": 82 + }], + "persist": true + }], + "lastAccessed": 1528451786567, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396493, + "docshellUUID": "{f8695cf1-d667-4f53-b970-57bcc7a8c029}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q2MTM1MmY2LWY2NWEtNDQ2ZS1hYmU0LTkxYjZjZDBlZTdlOX0AAAAA", + "docIdentifier": 85, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396494, + "docshellUUID": "{f8695cf1-d667-4f53-b970-57bcc7a8c029}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhlYTgxYTQ4LTllNmItNDliOS1iY2JlLTI0ZGQwMDQ5MjA4Yn0AAAAA", + "docIdentifier": 86, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396495, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RhNzEzYWEzLTFkOGItNGNmNC1hN2ZjLWMxNzUyOTM2NWFmMX0AAAAA", + "docIdentifier": 87 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396496, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezM3MzUzZWU2LWU5NzItNGZkZS04OWM5LTIzY2I5N2NkNzEzY30AAAAA", + "docIdentifier": 88 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396497, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIxMjFiMTczLTBkN2QtNGU1My04YmIwLTJkNzE2MDQzZDk5Mn0AAAAA", + "docIdentifier": 89 + }], + "persist": true + }], + "lastAccessed": 1528451786716, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396641, + "docshellUUID": "{553fd3fa-36a9-442c-bb7f-5a030d57d011}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY0MjU2MmJjLTAxMTktNDdhYy1iODRhLWVhOTM2YmY0M2Y2NH0AAAAA", + "docIdentifier": 78, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396642, + "docshellUUID": "{553fd3fa-36a9-442c-bb7f-5a030d57d011}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE0OTczZjhmLWJlNjctNDBjZi1iYjY5LTBkYWYxZjIwNzE2Yn0AAAAA", + "docIdentifier": 79, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396643, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2YwMzk5MjhiLWE5NGMtNDdlNS1hNTkzLTUyMjU5OGNjZjk4ZX0AAAAA", + "docIdentifier": 80 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396644, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E3MGE2MjNjLTI4NTMtNDEzMS1iYjNiLTFiMjZlMzdlOTI1M30AAAAA", + "docIdentifier": 81 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396645, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezJmMTIyYjQ2LTYxZTItNDE5Yi05ZjFhLWFkMzcwMTk4NWE2MX0AAAAA", + "docIdentifier": 82 + }], + "persist": true + }], + "lastAccessed": 1528451786829, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396753, + "docshellUUID": "{033226aa-1468-48b7-ac8f-289183364049}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQyMzA0ZGU4LTNjZTQtNGRhYS1hZWE5LTE1YmEzOTRjNGZjNn0AAAAA", + "docIdentifier": 83, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396754, + "docshellUUID": "{033226aa-1468-48b7-ac8f-289183364049}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MyNDdlMGY4LTQ5NWYtNDg5Ny1iZWY0LTJhMTgzZGIzZjQ1Zn0AAAAA", + "docIdentifier": 84, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396755, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezU1YjM3MjJiLWRmYWEtNDcyNi1hOTVkLTFkZDUzMTU4NTgwM30AAAAA", + "docIdentifier": 85 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396756, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2RjMDYzMjZiLTI4M2UtNGY4YS1hNjdkLWFmNGIzZDZlZTRhMH0AAAAA", + "docIdentifier": 86 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396757, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U4ZDE2MzEyLTM3MDItNGM3MS04MjA1LWE3MzJjZWI5OTM4N30AAAAA", + "docIdentifier": 87 + }], + "persist": true + }], + "lastAccessed": 1528451786935, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396862, + "docshellUUID": "{03b3a921-78a7-4fe4-916f-e4ab3770d0a7}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezMyN2YxOGE1LTI0Y2QtNDYzNC1iMmI1LWM0MDViYWZhMmZlNX0AAAAA", + "docIdentifier": 83, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396863, + "docshellUUID": "{03b3a921-78a7-4fe4-916f-e4ab3770d0a7}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezkwYWEyYzIzLTQ2ZjQtNDQ3My04NzQ3LWFlNTdhOGI4YWU0YX0AAAAA", + "docIdentifier": 84, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396864, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE2ZTViZTJiLTExMzQtNDIxZC05ZGI0LTIzZDE5ODAwYzFmN30AAAAA", + "docIdentifier": 85 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396865, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M0MTZlNTI1LThlMGEtNDJmMy05Yjk5LTRkZDVkNDU0ZWM1ZH0AAAAA", + "docIdentifier": 86 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396866, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhiNjQyNjQ0LTAyODYtNGQ1ZC1iMDE5LWYzZjNmYjY4YzZjZn0AAAAA", + "docIdentifier": 87 + }], + "persist": true + }], + "lastAccessed": 1528451787055, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738396982, + "docshellUUID": "{c7f55732-44a2-4cff-8b10-c73e90c60f96}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNjNmMxYjI1LTY4ZTEtNGNhNy1iMTkzLWVjZmNkOGY1MTEyYX0AAAAA", + "docIdentifier": 90, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738396983, + "docshellUUID": "{c7f55732-44a2-4cff-8b10-c73e90c60f96}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E5MzBlNjNjLWU2Y2UtNDZiNC04MjY4LTIyYjAzZmQ3ODUwMH0AAAAA", + "docIdentifier": 91, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396984, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk5NTdjNWQ3LTBmNTgtNDc5OS1iNjJhLTBiOTk5MWRlYTA3Mn0AAAAA", + "docIdentifier": 92 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396985, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUyZTliNDVmLTk0OWYtNDA3ZS04YjViLTAwN2YxMTBkZDQ5YX0AAAAA", + "docIdentifier": 93 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738396986, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezY3MjQxMmU3LWQwZjUtNDUwMy05ZTc3LTlkZmE3NWQ1OTgwY30AAAAA", + "docIdentifier": 94 + }], + "persist": true + }], + "lastAccessed": 1528451787170, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397096, + "docshellUUID": "{5bd4775d-c379-4093-ba8e-08109694e976}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Y1NmE4ZTExLTJiYjEtNGIwNy04ZDc1LWEyNzM5OGE0MDJlOX0AAAAA", + "docIdentifier": 83, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397097, + "docshellUUID": "{5bd4775d-c379-4093-ba8e-08109694e976}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZiOTA5YmUyLTE4YzMtNGY3Yy05YmU1LWI5NTg4Mjc1MmM4ZX0AAAAA", + "docIdentifier": 84, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397098, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ZjN2IwOWU5LWFlZGEtNDA4YS1hYzc4LTFlMzFjYTQwNDk1Nn0AAAAA", + "docIdentifier": 85 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397099, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg0YTA0YTI1LWY1NzMtNDc4MC1iODJlLWVmZDJkMmM2ZGIzOH0AAAAA", + "docIdentifier": 86 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397100, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk2ZWYyOGNjLThlYjktNDFkMi1iMzQ3LTIyMDcwMDJlNzBlOX0AAAAA", + "docIdentifier": 87 + }], + "persist": true + }], + "lastAccessed": 1528451787304, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397229, + "docshellUUID": "{406f60a1-6ceb-4e65-882c-e095bd9ab8a3}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2ViYzAzZjI5LTY2OWEtNDFlMi05YjM4LTAwM2M3YTJlMjc4MX0AAAAA", + "docIdentifier": 88, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397230, + "docshellUUID": "{406f60a1-6ceb-4e65-882c-e095bd9ab8a3}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezBkMzVkZWE2LTUxZmMtNGVhMS1iZDZjLWJiZjU2NjYzMzBkOX0AAAAA", + "docIdentifier": 89, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397231, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2MxOTNjMTdlLWI3MTctNGM4OC04NTA2LTYzYzM3NGMzYzVkNn0AAAAA", + "docIdentifier": 90 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397232, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IwNTliZDYzLWI0YmUtNGRjNS05MjAwLTAzNWQ1MjQ4YWNlMH0AAAAA", + "docIdentifier": 91 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397233, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk3MThlMzVhLTkwY2UtNGZjNy04MDgzLWMxNWU2NzU0OTllZH0AAAAA", + "docIdentifier": 92 + }], + "persist": true + }], + "lastAccessed": 1528451787446, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397374, + "docshellUUID": "{c526e02d-1ae7-4966-b120-33825e35f03a}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezNlZjViMjdhLTNlYTYtNDdmZi1hOWRjLTcxYTJlYTU5MDQ3NH0AAAAA", + "docIdentifier": 88, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397375, + "docshellUUID": "{c526e02d-1ae7-4966-b120-33825e35f03a}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezUyOWE3NzkzLTI2MWEtNDQ0NC04MmM0LWVmODcwNWRjZWFlMn0AAAAA", + "docIdentifier": 89, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397376, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FiYzI4OGI2LTAxNTctNDk5OS04MTk0LTAwMzA1Y2MxN2E4Nn0AAAAA", + "docIdentifier": 90 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397377, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2FmYTE3YjEzLTE4MTktNDNhMS1iNjU3LWRkMmQ2ODZiNjdkY30AAAAA", + "docIdentifier": 91 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397378, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVjYWE3NGY5LTU1MGItNDM5NS1iOTNmLTY4N2IxNjgwZTMyOX0AAAAA", + "docIdentifier": 92 + }], + "persist": true + }], + "lastAccessed": 1528451787557, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397482, + "docshellUUID": "{32a44b4d-bd6b-4a86-8fcb-3bb08d6b3c97}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezRjZTdjMDE5LTcwYTgtNDZiNy1iYzI3LTMzYmEwYWEwMWZjMX0AAAAA", + "docIdentifier": 95, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397483, + "docshellUUID": "{32a44b4d-bd6b-4a86-8fcb-3bb08d6b3c97}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U4OGU4MzYyLWFjYzUtNGQ1Ny1iMzA2LTk3OTU5MWU4ZmUyZX0AAAAA", + "docIdentifier": 96, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397484, + "docshellUUID": "{1009278f-9c58-4c63-ac7e-e239c816fa69}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ0N2Y5MDdjLTliZGYtNDA0Ni1hMjlhLTM1YTQ5OTAyOTMzOX0AAAAA", + "docIdentifier": 97 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397485, + "docshellUUID": "{32225ac0-0b7c-4069-b2ca-78b179fd0839}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezIyOWM5MThiLTg1MzEtNDc3OS1iOWFlLTU4NTIzMTBhMDc4NH0AAAAA", + "docIdentifier": 98 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397486, + "docshellUUID": "{470c5de2-944c-4cb2-ac46-e33322567876}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q3NDQ4YjVlLWVjOWEtNDRmNC1iNTgyLTNjOTc3ZGQ4MDZjY30AAAAA", + "docIdentifier": 99 + }], + "persist": true + }], + "lastAccessed": 1528451787669, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397594, + "docshellUUID": "{d4dd4095-8426-47ae-a815-c89502165780}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezcwNThjYjg1LTk2YzUtNDBkNi1hOGFkLTdkYjY1NjlhNTI2Nn0AAAAA", + "docIdentifier": 88, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397595, + "docshellUUID": "{d4dd4095-8426-47ae-a815-c89502165780}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IyNjI4ZTViLTgzZWUtNGVhMC1hMTcxLTk5ZWRlZjg1NDMwMH0AAAAA", + "docIdentifier": 89, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397596, + "docshellUUID": "{878ab3bc-a999-43c3-99dc-b9434fe13501}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezhmYjA1OGQ2LWJkZDUtNDMxNC1hMzcxLWQ2MjU4ZmI4YTE2N30AAAAA", + "docIdentifier": 90 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397597, + "docshellUUID": "{60c88f70-13c3-4a9d-ac20-e0df112ccd50}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2I4N2YzMGJjLTM4NmYtNDg0ZS05NWRiLWIxNWM5MDZlNzc0Yn0AAAAA", + "docIdentifier": 91 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397598, + "docshellUUID": "{964d9c55-7ca5-476b-838e-7a9896e8fe70}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U5OTE0OGZjLTNhN2ItNGQ5NC05ZWVkLTFlMGM1ODUxMTBmZH0AAAAA", + "docIdentifier": 92 + }], + "persist": true + }], + "lastAccessed": 1528451787802, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397727, + "docshellUUID": "{c34a1bbc-720f-47ab-8381-19ddc412cffe}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezEyNzc3MzI0LTU4NmItNDhjNS05YWIyLWU5ZWEwMGIwMjc0Yn0AAAAA", + "docIdentifier": 93, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397728, + "docshellUUID": "{c34a1bbc-720f-47ab-8381-19ddc412cffe}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQwZjNmNDA4LTg2NzMtNGNiNS05ZmNkLTcwYzhlMWIwYzZhNH0AAAAA", + "docIdentifier": 94, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397729, + "docshellUUID": "{43584cab-ac21-4bd8-bc9b-cd5d22599d93}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ3NWUxYjZkLTE4Y2MtNDRmMS1hNTY3LWI1NDgzNWRkMzMyNH0AAAAA", + "docIdentifier": 95 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397730, + "docshellUUID": "{7266f212-5701-4962-88f6-daf21b0cd491}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezFkNGJhMWMxLWRkYTctNDExNC1iMGRmLTlkYzBiMWU4Y2E4Nn0AAAAA", + "docIdentifier": 96 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397731, + "docshellUUID": "{76a8f95b-bf8b-4ec5-b161-8ba52f6afae2}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQzMDRhY2MwLWE3ZWEtNGM1OS1hNGMwLWIxMzA2YjdhMDU1NX0AAAAA", + "docIdentifier": 97 + }], + "persist": true + }], + "lastAccessed": 1528451787934, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "about:home", + "title": "Nightly Start Page", + "cacheKey": 0, + "ID": 3738397860, + "docshellUUID": "{221c40fa-3210-415f-869b-d4d279ed5fc8}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdjOGM3MGM3LWQyZTgtNDAzYS05ZDkyLTViY2MxOTEzMDI2Y30AAAAA", + "docIdentifier": 93, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=twitter.com/", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397861, + "docshellUUID": "{221c40fa-3210-415f-869b-d4d279ed5fc8}", + "referrer": "http://localhost:8080/?httpsurl=twitter.com/", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA4ODdlYWNhLTUyZDYtNGM1My1iZjAxLTk2NTk5YjRiZWIzMX0AAAAA", + "docIdentifier": 94, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397862, + "docshellUUID": "{797ed9aa-9c8d-4540-90a1-21a221af9baa}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2Q3Yzk0Y2ZkLWI2NGYtNDJlYS04Zjc0LTk4OTk2ODNhYjUxN30AAAAA", + "docIdentifier": 95 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397863, + "docshellUUID": "{825230d4-e859-444c-8661-b7e2aa63dc33}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2E5ZmE3OGZiLTYyY2MtNDgzZi1iNWE0LTY5OGQ0OTIwZDcwMn0AAAAA", + "docIdentifier": 96 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397864, + "docshellUUID": "{16b2e3e5-fcf0-45f2-9df2-7b167c44a22e}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2IyODA0N2M2LTc5YTAtNDgzYy05NjVjLTg4N2QzZjU5OWY4M30AAAAA", + "docIdentifier": 97 + }], + "persist": true + }], + "lastAccessed": 1528451788059, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 2, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAALGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAAAXAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAAAVAAAAFf////8BAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=twitter.com/Telegraph/status/437962536407666688/photo/1", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738397986, + "docshellUUID": "{c88a8410-8d3d-479c-b38a-db837696dfcd}", + "referrer": "http://localhost:8080/?url=t.co/FslmElOVwY", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezg1N2I1NTNlLTU0Y2UtNGRlZi05M2Y2LTIyZDg2ZGI3MmQyM30AAAAA", + "docIdentifier": 100, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397987, + "docshellUUID": "{e8979a67-52ae-4d6e-8b94-8de24a2a0733}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezc5ZGRiYzZjLTFhOTYtNDk2My04YTAyLWE1MWE5MDMxYzgwNX0AAAAA", + "docIdentifier": 101 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397988, + "docshellUUID": "{946a54d1-68a3-41e3-9a78-60a643045e94}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezQ0MjQ3M2MwLTM1NzEtNGUzNy1hYjIwLWI5N2FkOTM0ZmU0MX0AAAAA", + "docIdentifier": 102 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738397989, + "docshellUUID": "{c2df782f-1821-48ce-a941-d9d492f5a71b}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U4YzFhYWJlLWI1N2UtNDA1Yi1hMTIzLWRhOTU5MzgwZTBmZn0AAAAA", + "docIdentifier": 103 + }], + "persist": true + }], + "lastAccessed": 1528451788199, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "storage": { + "http://localhost:8080": { + "ScribeTransport": "{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"items\":[{}],\"associations\":{\"2\":{\"association_id\":null,\"association_type\":3},\"3\":{\"association_id\":null,\"association_type\":3}},\"message\":\"//twitter.com/Telegraph/status/437962536407666688/photo/1/large\",\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"element\":\"platform_photo_card\",\"action\":\"show\"},\"triggered_on\":1393256185388,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"captured\"},\"triggered_on\":1393256185472,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"ignored\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"direct\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"all\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAV2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9dHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAQgAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAQAAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=www.google.fr/search?q=google+docs&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=aGcLU8r5I4Hf8geZ5YHABg&gws_rd=cr", + "title": "google docs - Recherche Google", + "cacheKey": 0, + "ID": 3738398126, + "docshellUUID": "{5a45bd4d-c522-4b3d-b59c-15db35d421cd}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezVkYTFkYmQwLTViZjAtNDg3Mi04NWJjLTdmODI0MzFlOTg1MH0AAAAA", + "docIdentifier": 93, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=accounts.google.com/ServiceLogin?service=writely&passive=1209600&continue=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou%23&followup=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou<mpl=homepage&hl=fr", + "title": "Google Drive", + "cacheKey": 0, + "ID": 3738398127, + "docshellUUID": "{5a45bd4d-c522-4b3d-b59c-15db35d421cd}", + "referrer": "http://localhost:8080/?httpsurl=docs.google.com/?hl=fr", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VkODJiZTMyLTJhMjQtNGY1ZS04YThlLTI1MDUwZGYzOTUzZX0AAAAA", + "docIdentifier": 94, + "persist": true + }, { + "url": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0#my-drive", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738398128, + "docshellUUID": "{5a45bd4d-c522-4b3d-b59c-15db35d421cd}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezk0Zjc0ZjQxLTFmMGUtNDdmMC1iNTIxLTk0MDkxMDRkODM4OX0AAAAA", + "docIdentifier": 95, + "persist": true + }], + "lastAccessed": 1528451788495, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 3, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAqmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZHJpdmUuZ29vZ2xlLmNvbS8/aGw9ZnImdXJwPWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9d3d3Lmdvb2dsZS5mci91cmw/c2ElM0R0JTI2cmN0JTNEaiUyNnElM0QlMjZlc3JjJTNEcyUyNnNvdSZhdXRodXNlcj0wI215LWRyaXZlAAAAAAAAAAQAAAAHAAAADgAAAAf/////AAAAB/////8AAAAHAAAACQAAABUAAACVAAAAFQAAAAEAAAAVAAAAAQAAABYAAAAAAAAAFv////8AAAAA/////wAAABcAAACKAAAAogAAAAgBAAAAAAAAAAAAAAAA" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/drawings/d/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA/edit", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738398427, + "docshellUUID": "{ad22e4e1-16ae-4222-8df5-45138c4cd7d4}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezA5YmY5MjhkLTM0YzgtNDkyNS1iZTlmLTFmODI5OTYwODhiY30AAAAA", + "docIdentifier": 98, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451788780, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZG9jcy5nb29nbGUuY29tL2RyYXdpbmdzL2QvMUtxNjV5VnFXVDdIeHJHTGVOZHhBaXBxYlg3UDRPdVM0TWQzMjVSMGVkckEvZWRpdAAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAVwAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAVQAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/document/d/1dm2Z_yaEU506PHeJE64BReXQyIlJgJk7mXOjKx36MbE/edit", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738353580, + "docshellUUID": "{be70618a-6e3d-4859-989a-298fcb3027ad}", + "referrer": "http://localhost:8080/?httpsurl=docs.google.com/drawings/d/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA/edit", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZjYWVkOGIxLWNhZjktNGIxNy04YzdiLTE0OWFjODBlZjEzOX0AAAAA", + "docIdentifier": 1, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "persist": true + }], + "lastAccessed": 1528451857677, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 1, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/aHR0cHN1cmw9ZG9jcy5nb29nbGUuY29tL2RvY3VtZW50L2QvMWRtMlpfeWFFVTUwNlBIZUpFNjRCUmVYUXlJbEpnSms3bVhPakt4MzZNYkUvZWRpdAAAAAAAAAAEAAAABwAAAA4AAAAH/////wAAAAf/////AAAABwAAAAkAAAAVAAAAVwAAABUAAAABAAAAFQAAAAEAAAAWAAAAAAAAABb/////AAAAAP////8AAAAXAAAAVQAAABX/////AQAAAAAAAAAAAAAAAA==" + }, { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=www.google.fr/search?q=movies&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=U6UMU8XlJYHf8geZ5YHABg&gws_rd=cr", + "title": "movies - Google Search", + "cacheKey": 0, + "ID": 3738391809, + "docshellUUID": "{9dfafab7-31b0-424c-b085-d3a4df8906de}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2M1MGY5NjljLTMxNzItNDdhNS1hNzdkLWM1MDQyZTcwYzU5Nn0AAAAA", + "docIdentifier": 53, + "persist": true + }, { + "url": "http://localhost:8080/?url=www.youtube.com/user/YouTubeMoviesFR", + "title": "Films - YouTube", + "cacheKey": 0, + "ID": 3738391810, + "docshellUUID": "{9dfafab7-31b0-424c-b085-d3a4df8906de}", + "referrer": "http://localhost:8080/?url=www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDUQFjAB&url=http%3A%2F%2Fwww.youtube.com%2Fuser%2Fmovies&ei=U6UMU9fnKIOb0AXAgYFg&usg=AFQjCNHrmNe-ykFP-4R2NPUvq_YQh3LfQw&sig2=k395eaN4vi_NxXCeQwBYtg&bvm=bv.61725948,d.d2k", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2NkM2FkMWM2LTMxYmUtNGNjNy1iNWE0LWQwM2ZiNDAxYzc4ZH0AAAAA", + "docIdentifier": 54, + "structuredCloneState": "AAAAAAgA//8LAAAABAD//3MAcABmAC0AcgBlAGYAZQByAGUAcgAAAO0AAAAEAP//aAB0AHQAcAA6AC8ALwB3AHcAdwAuAGcAbwBvAGcAbABlAC4AZgByAC8AdQByAGwAPwBzAGEAPQB0ACYAcgBjAHQAPQBqACYAcQA9ACYAZQBzAHIAYwA9AHMAJgBzAG8AdQByAGMAZQA9AHcAZQBiACYAYwBkAD0AMgAmAHYAZQBkAD0AMABDAEQAVQBRAEYAagBBAEIAJgB1AHIAbAA9AGgAdAB0AHAAJQAzAEEAJQAyAEYAJQAyAEYAdwB3AHcALgB5AG8AdQB0AHUAYgBlAC4AYwBvAG0AJQAyAEYAdQBzAGUAcgAlADIARgBtAG8AdgBpAGUAcwAmAGUAaQA9AFUANgBVAE0AVQA5AGYAbgBLAEkATwBiADAAQQBYAEEAZwBZAEYAZwAmAHUAcwBnAD0AQQBGAFEAagBDAE4ASAByAG0ATgBlAC0AeQBrAEYAUAAtADQAUgAyAE4AUABVAHYAcQBfAFkAUQBoADMATABmAFEAdwAmAHMAaQBnADIAPQBrADMAOQA1AGUAYQBOADQAdgBpAF8ATgB4AFgAQwBlAFEAdwBCAFkAdABnACYAYgB2AG0APQBiAHYALgA2ADEANwAyADUAOQA0ADgALABkAC4AZAAyAGsAAAAAAAAADQAAAAQA//9zAHAAZgAtAHQAaQBtAGUAcwB0AGEAbQBwAAAAAAAAAAAwaV6WRnRCAAAAAAAA//8=", + "structuredCloneVersion": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738391811, + "docshellUUID": "{269707f0-f4f5-450b-a5da-ef1fe3bad30d}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezdmYWY2MWEyLTBiNDgtNGNiMC1hYjlmLTRkYjNmMzJkZGJmNn0AAAAA", + "docIdentifier": 55 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738391812, + "docshellUUID": "{cde4b193-6588-492d-b575-85c5796d1a7c}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezE1YzM0Y2Q1LTJhMDQtNGU0MS1iZTdiLTU0NmE5MmM5MmU2Zn0AAAAA", + "docIdentifier": 56 + }, { + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738391813, + "docshellUUID": "{58a19b11-699b-4d3c-b6d8-b796fd6ba9f1}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2VkODY5MzY2LTQwNzMtNDQxNy1iMjcxLTI4NmNjNzYzNjBmYX0AAAAA", + "docIdentifier": 57 + }], + "persist": true + }, { + "url": "http://localhost:8080/?url=www.youtube.com/watch?v=gYCzg8xg4c0&feature=c4-overview", + "title": "Apache2 Ubuntu Default Page: It works", + "cacheKey": 0, + "ID": 3738391814, + "docshellUUID": "{9dfafab7-31b0-424c-b085-d3a4df8906de}", + "referrer": "http://localhost:8080/?url=www.youtube.com/user/YouTubeMoviesFR", + "referrerPolicy": 0, + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6ezZhZWM0YTdlLTBmYzUtNDc3YS05MTJlLWI3OTcwOTEzYzM2ZH0AAAAA", + "docIdentifier": 58, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2, + "children": [{ + "url": "about:blank", + "title": "about:blank", + "cacheKey": 0, + "ID": 3738391815, + "docshellUUID": "{9c3dc524-a7c4-4e3b-9152-8ef3114a6db4}", + "resultPrincipalURI": null, + "triggeringPrincipal_base64": "vQZuXxRvRHKDMXv9BbHtkAAAAAAAAAAAwAAAAAAAAEYAAAA4bW96LW51bGxwcmluY2lwYWw6e2U3YzExOWNlLTMwOTYtNGZjOS05NjEwLTE4YzA2MmViOWE1Yn0AAAAA", + "docIdentifier": 59 + }], + "persist": true + }], + "lastAccessed": 1528451792927, + "hidden": false, + "attributes": {}, + "userContextId": 0, + "index": 3, + "scroll": { + "scroll": "0,374" + }, + "image": "http://localhost:8080/favicon.ico", + "iconLoadingPrincipal": "ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4cYEyCMYAAAACAAAfkAAAAFABAAAAUmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8/dXJsPXd3dy55b3V0dWJlLmNvbS93YXRjaD92PWdZQ3pnOHhnNGMwJmZlYXR1cmU9YzQtb3ZlcnZpZXcAAAAAAAAABAAAAAcAAAAOAAAAB/////8AAAAH/////wAAAAcAAAAJAAAAFQAAAD0AAAAVAAAAAQAAABUAAAABAAAAFgAAAAAAAAAW/////wAAAAD/////AAAAFwAAADsAAAAV/////wEAAAAAAAAAAAAAAAA=" + }], + "selected": 39, + "_closedTabs": [{ + "state": { + "entries": [{ + "url": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "ID": 17, + "docshellID": 15, + "docIdentifier": 17, + "children": [{ + "url": "http://localhost:8080/?url=player.vimeo.com/video/73623354?title=0&byline=0&portrait=0", + "title": "Hamdam Centre Walk Thru at World Jnr Champs from SWIMSWAM on Vimeo", + "ID": 19, + "docshellID": 16, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 19 + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/plugins/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=box_count&show_faces=false&width=50&action=like&colorscheme=light&height=90", + "ID": 24, + "docshellID": 17, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 24 + }, { + "url": "http://localhost:8080/?httpsurl=www.facebook.com/plugins/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=button_count&show_faces=false&width=85&action=like&colorscheme=light&height=21", + "title": "Facebook", + "ID": 25, + "docshellID": 19, + "referrer": "http://localhost:8080/?url=swimswam.com/video-walk-2013-junior-world-championships-hamdem-center/", + "docIdentifier": 25 + }] + }], + "lastAccessed": 1393256151290, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?url=cdn.swimswam.com/wp-content/themes/swimswam/favicon.ico", + "index": 1 + }, + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "image": "http://localhost:8080/?url=cdn.swimswam.com/wp-content/themes/swimswam/favicon.ico", + "pos": 1, + "closedAt": 1393256151290 + }, { + "state": { + "entries": [{ + "url": "about:newtab", + "title": "New Tab", + "ID": 17, + "docshellID": 18, + "owner_b64": "SmIS26zLEdO3ZQBgsLbOywAAAAAAAAAAwAAAAAAAAEY=", + "docIdentifier": 17 + }], + "lastAccessed": 1393256966807, + "userTypedValue": "sess", + "userTypedClear": 0, + "hidden": false, + "attributes": {}, + "image": null, + "index": 1 + }, + "title": "New Tab", + "image": null, + "pos": 4, + "closedAt": 1393256966808 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/presentation/d/1oTncQrrq06b1ow-BdKkaFaNr5IlZaWQEhqjsNSgcEdM/edit#slide=id.i0", + "title": "Untitled Presentation - Google Drive", + "ID": 45, + "docshellID": 38, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 46, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }], + "lastAccessed": 1393256660847, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/presentations/images/favicon4.ico", + "index": 1 + }, + "title": "Untitled Presentation - Google Drive", + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/presentations/images/favicon4.ico", + "pos": 4, + "closedAt": 1393256660847 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/document/d/1lzeZ7lKYsBq1mXs6I1KwNAF4gbrCR7qVW1jr_5Ka0tQ/edit", + "title": "Untitled document - Google Drive", + "ID": 51, + "docshellID": 45, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }], + "lastAccessed": 1393256601337, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/documents/images/kix-favicon6.ico", + "index": 1 + }, + "title": "Untitled document - Google Drive", + "image": "http://localhost:8080/?httpsurl=ssl.gstatic.com/docs/documents/images/kix-favicon6.ico", + "pos": 3, + "closedAt": 1393256601337 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=docs.google.com/spreadsheet/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web", + "title": "SessionFile.read() - Google Drive", + "ID": 39, + "docshellID": 33, + "referrer": "http://localhost:8080/?httpsurl=drive.google.com/?hl=fr&urp=http://localhost:8080/?httpsurl=www.google.fr/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 40, + "structuredCloneState": "AAAAAAAA//8=", + "structuredCloneVersion": 2 + }, { + "url": "http://localhost:8080/?httpsurl=docs.google.com/spreadsheet/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web#gid=0", + "title": "SessionFile.read()", + "ID": 40, + "docshellID": 33, + "docIdentifier": 40 + }], + "lastAccessed": 1393256373871, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=docs.google.com/favicon.ico", + "index": 2, + "pageStyle": { + "pageStyle": "gridCss" + } + }, + "title": "SessionFile.read()", + "image": "http://localhost:8080/?httpsurl=docs.google.com/favicon.ico", + "pos": 3, + "closedAt": 1393256373871 + }, { + "state": { + "entries": [{ + "url": "http://localhost:8080/?httpsurl=github.com/andrewray/iocamljs", + "title": "andrewray/iocamljs · GitHub", + "ID": 16, + "docshellID": 16, + "referrer": "http://localhost:8080/?httpsurl=t.co/Lgc1R8XU0T", + "docIdentifier": 16 + }], + "lastAccessed": 1393256206748, + "hidden": false, + "attributes": {}, + "image": "http://localhost:8080/?httpsurl=github.com/favicon.ico", + "index": 1, + "scroll": { + "scroll": "0,625" + } + }, + "title": "andrewray/iocamljs · GitHub", + "image": "http://localhost:8080/?httpsurl=github.com/favicon.ico", + "pos": 2, + "closedAt": 1393256298987 + }], + "busy": false, + "width": 960, + "height": 521, + "screenX": 2988, + "screenY": 443, + "sizemode": "normal", + "zIndex": 2 + }], + "selectedWindow": 2, + "_closedWindows": [], + "session": { + "lastUpdate": 1528451857947, + "startTime": 1393256133774, + "recentCrashes": 0 + }, + "global": {}, + "cookies": [] +} \ No newline at end of file diff --git a/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.jsonlz4 b/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.jsonlz4 new file mode 100644 index 0000000000..66cf54d02e Binary files /dev/null and b/testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.jsonlz4 differ diff --git a/testing/talos/talos/startup_test/sessionrestore/profile/sessionCheckpoints.json b/testing/talos/talos/startup_test/sessionrestore/profile/sessionCheckpoints.json new file mode 100644 index 0000000000..e02c421c3b --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/profile/sessionCheckpoints.json @@ -0,0 +1,11 @@ +{ + "profile-after-change": true, + "final-ui-startup": true, + "sessionstore-windows-restored": true, + "quit-application-granted": true, + "quit-application": true, + "sessionstore-final-state-write-complete": true, + "profile-change-net-teardown": true, + "profile-change-teardown": true, + "profile-before-change": true +} diff --git a/testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js b/testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js new file mode 100644 index 0000000000..78163db192 --- /dev/null +++ b/testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js @@ -0,0 +1,6203 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +{ + "windows": [ + { + "tabs": [ + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 6, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/", + "title": "Welcome to Facebook - Log In, Sign Up or Learn More", + "ID": 9, + "docshellID": 6, + "docIdentifier": 9 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "title": "Facebook", + "ID": 10, + "docshellID": 6, + "referrer": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/", + "docIdentifier": 10 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "title": "Facebook", + "cacheKey": 1393256027, + "ID": 11, + "docshellID": 6, + "referrer": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "docIdentifier": 11 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "title": "Facebook", + "cacheKey": 1393256028, + "ID": 12, + "docshellID": 6, + "referrer": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "docIdentifier": 12 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "title": "Facebook", + "cacheKey": 1393256029, + "ID": 13, + "docshellID": 6, + "referrer": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "docIdentifier": 13 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/", + "title": "Facebook", + "ID": 14, + "docshellID": 6, + "referrer": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/checkpoint\/?next", + "docIdentifier": 14, + "structuredCloneState": "GQAAAAQA\/\/9oAHQAdABwAHMAOgAvAC8AdwB3AHcALgBmAGEAYwBlAGIAbwBvAGsALgBjAG8AbQAvAAAAAAAAAA==", + "structuredCloneVersion": 2 + } + ] + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "about:home", + "title": "Nightly Start Page", + "ID": 2, + "docshellID": 5, + "docIdentifier": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "title": "Twitter", + "ID": 6, + "docshellID": 5, + "referrer": "http:\/\/localhost:8080/?httpsurl=twitter.com\/", + "docIdentifier": 6, + "children": [ + { + "url": "about:blank", + "ID": 7, + "docshellID": 9, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 7 + }, + { + "url": "about:blank", + "ID": 8, + "docshellID": 10, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 8 + }, + { + "url": "about:blank", + "ID": 9, + "docshellID": 11, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAFGh0dHBzOi8vdHdpdHRlci5jb20vAAAAAAAAAAUAAAAIAAAACwAAAAj\/\/\/\/\/AAAACP\/\/\/\/8AAAAIAAAACwAAABMAAAABAAAAEwAAAAEAAAATAAAAAQAAABQAAAAAAAAAFP\/\/\/\/8AAAAA\/\/\/\/\/wAAABP\/\/\/\/\/AAAAE\/\/\/\/\/8BAAAAAAAAAAAAAQHelHLQgDQR05OZABBLoP1AOV\/gRX0YStuj\/a+YyKGvEQAAAAL\/\/\/\/\/AAABuwEAAAAUaHR0cHM6Ly90d2l0dGVyLmNvbS8AAAAAAAAABQAAAAgAAAALAAAACP\/\/\/\/8AAAAI\/\/\/\/\/wAAAAgAAAALAAAAEwAAAAEAAAATAAAAAQAAABMAAAABAAAAFAAAAAAAAAAU\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAE\/\/\/\/\/8AAAAT\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAA", + "docIdentifier": 9 + } + ] + } + ], + "lastAccessed": 1393256652207, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 2, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"url\":\"http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs\",\"items\":[{\"position\":4,\"id\":\"437966178300882944\",\"item_type\":0}],\"message\":\"http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T\",\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet\",\"action\":\"open_link\"},\"triggered_on\":1393256192216,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256261047,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"send_tweet\"},\"triggered_on\":1393256261081,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"id\":\"437974593618198528\",\"item_type\":0}],\"message\":2,\"event_info\":0,\"format_version\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_box\",\"element\":\"tweet_box\",\"action\":\"entities\"},\"triggered_on\":1393256261081,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256467268,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"items\":[{\"position\":0,\"id\":\"437975419758080001\",\"item_type\":0}],\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"tweet_stream\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256649260,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":\"\/\",\"client_version\":\"macaw-swift\",\"woeid\":1,\"referring_event\":\"newer\",\"items\":[{\"name\":\"#RoamingBouygues\",\"item_type\":8,\"item_query\":\"#RoamingBouygues\",\"position\":0,\"promoted_id\":17833},{\"name\":\"#JeMeRappelleQuEnPrimaire\",\"item_type\":8,\"item_query\":\"#JeMeRappelleQuEnPrimaire\",\"position\":1},{\"name\":\"#LRT\",\"item_type\":8,\"item_query\":\"#LRT\",\"position\":2},{\"name\":\"#LOSCOL\",\"item_type\":8,\"item_query\":\"#LOSCOL\",\"position\":3},{\"name\":\"#enqueteexclusive\",\"item_type\":8,\"item_query\":\"#enqueteexclusive\",\"position\":4},{\"name\":\"#TeamDubuisson\",\"item_type\":8,\"item_query\":\"#TeamDubuisson\",\"position\":5},{\"name\":\"Talking Angela\",\"item_type\":8,\"item_query\":\"Talking Angela\",\"position\":6},{\"name\":\"SFR\",\"item_type\":8,\"item_query\":\"SFR\",\"position\":7},{\"name\":\"wAllah\",\"item_type\":8,\"item_query\":\"wAllah\",\"position\":8},{\"name\":\"Verts\",\"item_type\":8,\"item_query\":\"Verts\",\"position\":9}],\"promoted\":true,\"event_initiator\":2,\"event_namespace\":{\"client\":\"web\",\"page\":\"home\",\"section\":\"home\",\"component\":\"trends\",\"element\":\"newer\",\"action\":\"results\"},\"triggered_on\":1393256947261,\"format_version\":2,\"_category_\":\"client_event\"}" + } + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='page-container']\/xhtml:div[2]\/xhtml:div\/xhtml:div[2]\/xhtml:form\/xhtml:div\/xhtml:textarea[@name='status']": "So, let's see how much Twitter impacts @Firefox Session Restore #perf." + }, + "id": { + "age-gate-year": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-month": { + "selectedIndex": -1, + "value": "" + }, + "age-gate-day": { + "selectedIndex": -1, + "value": "" + } + }, + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/" + } + }, + { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=twitter.com\/Telegraph\/status\/437962536407666688\/photo\/1", + "title": "Twitter \/ Telegraph: Harry Potter stars win stage ...", + "ID": 11, + "docshellID": 12, + "referrer": "http:\/\/localhost:8080/?url=t.co\/FslmElOVwY", + "docIdentifier": 11, + "children": [ + { + "url": "about:blank", + "ID": 12, + "docshellID": 13, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAP2h0dHBzOi8vdHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAFAAAACAAAAAsAAAAI\/\/\/\/\/wAAAAj\/\/\/\/\/AAAACAAAAAsAAAATAAAALAAAABMAAAAsAAAAEwAAACsAAAA+AAAAAQAAAD7\/\/\/\/\/AAAAAP\/\/\/\/8AAAAT\/\/\/\/\/wAAABP\/\/\/\/\/AQAAAAAAAAAAAAEB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAP2h0dHBzOi8vdHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAFAAAACAAAAAsAAAAI\/\/\/\/\/wAAAAj\/\/\/\/\/AAAACAAAAAsAAAATAAAALAAAABMAAAAsAAAAEwAAACsAAAA+AAAAAQAAAD7\/\/\/\/\/AAAAAP\/\/\/\/8AAAAT\/\/\/\/\/wAAABP\/\/\/\/\/AQAAAAAAAAAAAAEAAAAAAAA=", + "docIdentifier": 12 + }, + { + "url": "about:blank", + "ID": 13, + "docshellID": 14, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAP2h0dHBzOi8vdHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAFAAAACAAAAAsAAAAI\/\/\/\/\/wAAAAj\/\/\/\/\/AAAACAAAAAsAAAATAAAALAAAABMAAAAsAAAAEwAAACsAAAA+AAAAAQAAAD7\/\/\/\/\/AAAAAP\/\/\/\/8AAAAT\/\/\/\/\/wAAABP\/\/\/\/\/AQAAAAAAAAAAAAEB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAP2h0dHBzOi8vdHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAFAAAACAAAAAsAAAAI\/\/\/\/\/wAAAAj\/\/\/\/\/AAAACAAAAAsAAAATAAAALAAAABMAAAAsAAAAEwAAACsAAAA+AAAAAQAAAD7\/\/\/\/\/AAAAAP\/\/\/\/8AAAAT\/\/\/\/\/wAAABP\/\/\/\/\/AQAAAAAAAAAAAAEAAAAAAAA=", + "docIdentifier": 13 + }, + { + "url": "about:blank", + "ID": 14, + "docshellID": 15, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAP2h0dHBzOi8vdHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAFAAAACAAAAAsAAAAI\/\/\/\/\/wAAAAj\/\/\/\/\/AAAACAAAAAsAAAATAAAALAAAABMAAAAsAAAAEwAAACsAAAA+AAAAAQAAAD7\/\/\/\/\/AAAAAP\/\/\/\/8AAAAT\/\/\/\/\/wAAABP\/\/\/\/\/AQAAAAAAAAAAAAEB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAbsBAAAAP2h0dHBzOi8vdHdpdHRlci5jb20vVGVsZWdyYXBoL3N0YXR1cy80Mzc5NjI1MzY0MDc2NjY2ODgvcGhvdG8vMQAAAAAAAAAFAAAACAAAAAsAAAAI\/\/\/\/\/wAAAAj\/\/\/\/\/AAAACAAAAAsAAAATAAAALAAAABMAAAAsAAAAEwAAACsAAAA+AAAAAQAAAD7\/\/\/\/\/AAAAAP\/\/\/\/8AAAAT\/\/\/\/\/wAAABP\/\/\/\/\/AQAAAAAAAAAAAAEAAAAAAAA=", + "docIdentifier": 14 + } + ] + } + ], + "lastAccessed": 0, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=abs.twimg.com\/favicons\/favicon.ico", + "index": 1, + "storage": { + "http:\/\/localhost:8080/?httpsurl=twitter.com": { + "ScribeTransport": "{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"items\":[{}],\"associations\":{\"2\":{\"association_id\":null,\"association_type\":3},\"3\":{\"association_id\":null,\"association_type\":3}},\"message\":\"\/\/twitter.com\/Telegraph\/status\/437962536407666688\/photo\/1\/large\",\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"element\":\"platform_photo_card\",\"action\":\"show\"},\"triggered_on\":1393256185388,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"captured\"},\"triggered_on\":1393256185472,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"ignored\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"direct\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"},{\"internal_referer\":null,\"client_version\":\"macaw-swift\",\"event_value\":0,\"event_namespace\":{\"client\":\"web\",\"page\":\"permalink\",\"section\":\"permalink\",\"component\":\"reduced_action_queue\",\"action\":\"all\"},\"triggered_on\":1393256185473,\"format_version\":2,\"_category_\":\"client_event\"}" + } + } + }, + { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=www.google.fr\/search?q=google+docs&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=aGcLU8r5I4Hf8geZ5YHABg&gws_rd=cr", + "title": "google docs - Recherche Google", + "ID": 18, + "docshellID": 7, + "docIdentifier": 18 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=accounts.google.com\/ServiceLogin?service=writely&passive=1209600&continue=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou%23&followup=https%3A%2F%2Fdocs.google.com%2F%3Fhl%3Dfr%26urp%3Dhttps%3A%2F%2Fwww.google.fr%2Furl%3Fsa%253Dt%2526rct%253Dj%2526q%253D%2526esrc%253Ds%2526sou<mpl=homepage&hl=fr", + "title": "Google\u00a0Drive", + "ID": 21, + "docshellID": 7, + "referrer": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/?hl=fr", + "docIdentifier": 22 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=drive.google.com\/?hl=fr&urp=http:\/\/localhost:8080/?httpsurl=www.google.fr\/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0#my-drive", + "title": "My Drive - Google Drive", + "ID": 27, + "docshellID": 7, + "docIdentifier": 27 + } + ], + "lastAccessed": 1393256606155, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=drive.google.com\/favicon.ico", + "index": 3 + }, + { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/drawings\/d\/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA\/edit", + "title": "Untitled drawing - Google Drive", + "ID": 60, + "docshellID": 54, + "docIdentifier": 61, + "structuredCloneState": "AAAAAAAA\/\/8=", + "structuredCloneVersion": 2 + } + ], + "lastAccessed": 1393257103880, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=ssl.gstatic.com\/docs\/drawings\/images\/favicon5.ico", + "index": 1 + }, + { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/document\/d\/1dm2Z_yaEU506PHeJE64BReXQyIlJgJk7mXOjKx36MbE\/edit", + "title": "Untitled document - Google Drive", + "ID": 1757193939, + "docshellID": 65, + "referrer": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/drawings\/d\/1Kq65yVqWT7HxrGLeNdxAipqbX7P4OuS4Md325R0edrA\/edit", + "docIdentifier": 8, + "structuredCloneState": "AAAAAAAA\/\/8=", + "structuredCloneVersion": 2 + } + ], + "lastAccessed": 1393359020203, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=ssl.gstatic.com\/docs\/documents\/images\/kix-favicon6.ico", + "index": 1, + "scroll": { + "children": [ + { + "scroll": "0,8" + } + ] + }, + "formdata": { + "xpath": { + "\/\/xhtml:div[@id='zoomSelect']\/xhtml:div\/xhtml:div\/xhtml:div\/xhtml:input": "100%", + "\/\/xhtml:div[@id='fontSizeSelect']\/xhtml:div\/xhtml:div\/xhtml:div\/xhtml:input": "11" + }, + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/document\/d\/1dm2Z_yaEU506PHeJE64BReXQyIlJgJk7mXOjKx36MbE\/edit", + "children": [ + { + "innerHTML": "
", + "url": "about:blank" + } + ] + } + }, + { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=www.google.fr\/search?q=movies&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:unofficial&client=firefox-nightly&channel=fflb&gfe_rd=ctrl&ei=U6UMU8XlJYHf8geZ5YHABg&gws_rd=cr", + "title": "movies - Google Search", + "ID": 1789616335, + "docshellID": 7, + "docIdentifier": 47 + }, + { + "url": "http:\/\/localhost:8080/?url=www.youtube.com\/user\/YouTubeMoviesFR", + "title": "Films - YouTube", + "ID": 1789616336, + "docshellID": 7, + "referrer": "http:\/\/localhost:8080/?url=www.google.fr\/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDUQFjAB&url=http%3A%2F%2Fwww.youtube.com%2Fuser%2Fmovies&ei=U6UMU9fnKIOb0AXAgYFg&usg=AFQjCNHrmNe-ykFP-4R2NPUvq_YQh3LfQw&sig2=k395eaN4vi_NxXCeQwBYtg&bvm=bv.61725948,d.d2k", + "docIdentifier": 48, + "structuredCloneState": "AAAAAAgA\/\/8LAAAABAD\/\/3MAcABmAC0AcgBlAGYAZQByAGUAcgAAAO0AAAAEAP\/\/aAB0AHQAcAA6AC8ALwB3AHcAdwAuAGcAbwBvAGcAbABlAC4AZgByAC8AdQByAGwAPwBzAGEAPQB0ACYAcgBjAHQAPQBqACYAcQA9ACYAZQBzAHIAYwA9AHMAJgBzAG8AdQByAGMAZQA9AHcAZQBiACYAYwBkAD0AMgAmAHYAZQBkAD0AMABDAEQAVQBRAEYAagBBAEIAJgB1AHIAbAA9AGgAdAB0AHAAJQAzAEEAJQAyAEYAJQAyAEYAdwB3AHcALgB5AG8AdQB0AHUAYgBlAC4AYwBvAG0AJQAyAEYAdQBzAGUAcgAlADIARgBtAG8AdgBpAGUAcwAmAGUAaQA9AFUANgBVAE0AVQA5AGYAbgBLAEkATwBiADAAQQBYAEEAZwBZAEYAZwAmAHUAcwBnAD0AQQBGAFEAagBDAE4ASAByAG0ATgBlAC0AeQBrAEYAUAAtADQAUgAyAE4AUABVAHYAcQBfAFkAUQBoADMATABmAFEAdwAmAHMAaQBnADIAPQBrADMAOQA1AGUAYQBOADQAdgBpAF8ATgB4AFgAQwBlAFEAdwBCAFkAdABnACYAYgB2AG0APQBiAHYALgA2ADEANwAyADUAOQA0ADgALABkAC4AZAAyAGsAAAAAAAAADQAAAAQA\/\/9zAHAAZgAtAHQAaQBtAGUAcwB0AGEAbQBwAAAAAAAAAAAwaV6WRnRCAAAAAAAA\/\/8=", + "structuredCloneVersion": 2, + "children": [ + { + "url": "about:blank", + "ID": 1789616337, + "docshellID": 23, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAK2h0dHA6Ly93d3cueW91dHViZS5jb20vdXNlci9Zb3VUdWJlTW92aWVzRlIAAAAAAAAABAAAAAcAAAAPAAAAB\/\/\/\/\/8AAAAH\/\/\/\/\/wAAAAcAAAAPAAAAFgAAABUAAAAWAAAAFQAAABYAAAAGAAAAHAAAAA8AAAAc\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAFv\/\/\/\/8AAAAW\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAAAA==", + "docIdentifier": 49 + }, + { + "url": "about:blank", + "ID": 1789616338, + "docshellID": 24, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAK2h0dHA6Ly93d3cueW91dHViZS5jb20vdXNlci9Zb3VUdWJlTW92aWVzRlIAAAAAAAAABAAAAAcAAAAPAAAAB\/\/\/\/\/8AAAAH\/\/\/\/\/wAAAAcAAAAPAAAAFgAAABUAAAAWAAAAFQAAABYAAAAGAAAAHAAAAA8AAAAc\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAFv\/\/\/\/8AAAAW\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAAAA==", + "docIdentifier": 50 + }, + { + "url": "about:blank", + "ID": 1789616339, + "docshellID": 25, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAK2h0dHA6Ly93d3cueW91dHViZS5jb20vdXNlci9Zb3VUdWJlTW92aWVzRlIAAAAAAAAABAAAAAcAAAAPAAAAB\/\/\/\/\/8AAAAH\/\/\/\/\/wAAAAcAAAAPAAAAFgAAABUAAAAWAAAAFQAAABYAAAAGAAAAHAAAAA8AAAAc\/\/\/\/\/wAAAAD\/\/\/\/\/AAAAFv\/\/\/\/8AAAAW\/\/\/\/\/wEAAAAAAAAAAAABAAAAAAAAAA==", + "docIdentifier": 51 + } + ] + }, + { + "url": "http:\/\/localhost:8080/?url=www.youtube.com\/watch?v=gYCzg8xg4c0&feature=c4-overview", + "title": "\u25b6 Gravity (VF) - YouTube", + "ID": 1789616340, + "docshellID": 7, + "referrer": "http:\/\/localhost:8080/?url=www.youtube.com\/user\/YouTubeMoviesFR", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA\/\/8=", + "structuredCloneVersion": 2, + "children": [ + { + "url": "about:blank", + "ID": 1789616341, + "docshellID": 27, + "owner_b64": "CbflmEkNQj+opi5sTsh3UAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QDlf4EV9GErbo\/2vmMihrxEAAAAC\/\/\/\/\/wAAAFABAAAAPmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g\/dj1nWUN6Zzh4ZzRjMCZmZWF0dXJlPWM0LW92ZXJ2aWV3AAAAAAAAAAQAAAAHAAAADwAAAAf\/\/\/\/\/AAAAB\/\/\/\/\/8AAAAHAAAADwAAABYAAAAoAAAAFgAAAAYAAAAWAAAAAQAAABcAAAAFAAAAF\/\/\/\/\/8AAAAA\/\/\/\/\/wAAAB0AAAAhAAAAFv\/\/\/\/8BAAAAAAAAAAAAAQAAAAAAAAA=", + "docIdentifier": 53 + } + ] + } + ], + "lastAccessed": 1393368180318, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?url=s.ytimg.com\/yts\/img\/favicon_32-vflWoMFGx.png", + "index": 3, + "scroll": { + "scroll": "0,374" + } + } + ], + "selected": 6, + "_closedTabs": [ + { + "state": { + "entries": [ + { + "url": "http:\/\/localhost:8080/?url=swimswam.com\/video-walk-2013-junior-world-championships-hamdem-center\/", + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "ID": 17, + "docshellID": 15, + "docIdentifier": 17, + "children": [ + { + "url": "http:\/\/localhost:8080/?url=player.vimeo.com\/video\/73623354?title=0&byline=0&portrait=0", + "title": "Hamdam Centre Walk Thru at World Jnr Champs from SWIMSWAM on Vimeo", + "ID": 19, + "docshellID": 16, + "referrer": "http:\/\/localhost:8080/?url=swimswam.com\/video-walk-2013-junior-world-championships-hamdem-center\/", + "docIdentifier": 19 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/plugins\/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=box_count&show_faces=false&width=50&action=like&colorscheme=light&height=90", + "ID": 24, + "docshellID": 17, + "referrer": "http:\/\/localhost:8080/?url=swimswam.com\/video-walk-2013-junior-world-championships-hamdem-center\/", + "docIdentifier": 24 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=www.facebook.com\/plugins\/like.php?href=http%3A%2F%2Fswimswam.com%2Fvideo-walk-2013-junior-world-championships-hamdem-center%2F&layout=button_count&show_faces=false&width=85&action=like&colorscheme=light&height=21", + "title": "Facebook", + "ID": 25, + "docshellID": 19, + "referrer": "http:\/\/localhost:8080/?url=swimswam.com\/video-walk-2013-junior-world-championships-hamdem-center\/", + "docIdentifier": 25 + } + ] + } + ], + "lastAccessed": 1393256151290, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?url=cdn.swimswam.com\/wp-content\/themes\/swimswam\/favicon.ico", + "index": 1 + }, + "title": "Video Walk Through: 2013 Junior World Championships, Hamdan Center", + "image": "http:\/\/localhost:8080/?url=cdn.swimswam.com\/wp-content\/themes\/swimswam\/favicon.ico", + "pos": 1, + "closedAt": 1393256151290 + }, + { + "state": { + "entries": [ + { + "url": "about:newtab", + "title": "New Tab", + "ID": 17, + "docshellID": 18, + "owner_b64": "SmIS26zLEdO3ZQBgsLbOywAAAAAAAAAAwAAAAAAAAEY=", + "docIdentifier": 17 + } + ], + "lastAccessed": 1393256966807, + "userTypedValue": "sess", + "userTypedClear": 0, + "hidden": false, + "attributes": { + + }, + "image": null, + "index": 1 + }, + "title": "New Tab", + "image": null, + "pos": 4, + "closedAt": 1393256966808 + }, + { + "state": { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/presentation\/d\/1oTncQrrq06b1ow-BdKkaFaNr5IlZaWQEhqjsNSgcEdM\/edit#slide=id.i0", + "title": "Untitled Presentation - Google Drive", + "ID": 45, + "docshellID": 38, + "referrer": "http:\/\/localhost:8080/?httpsurl=drive.google.com\/?hl=fr&urp=http:\/\/localhost:8080/?httpsurl=www.google.fr\/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 46, + "structuredCloneState": "AAAAAAAA\/\/8=", + "structuredCloneVersion": 2 + } + ], + "lastAccessed": 1393256660847, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=ssl.gstatic.com\/docs\/presentations\/images\/favicon4.ico", + "index": 1 + }, + "title": "Untitled Presentation - Google Drive", + "image": "http:\/\/localhost:8080/?httpsurl=ssl.gstatic.com\/docs\/presentations\/images\/favicon4.ico", + "pos": 4, + "closedAt": 1393256660847 + }, + { + "state": { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/document\/d\/1lzeZ7lKYsBq1mXs6I1KwNAF4gbrCR7qVW1jr_5Ka0tQ\/edit", + "title": "Untitled document - Google Drive", + "ID": 51, + "docshellID": 45, + "referrer": "http:\/\/localhost:8080/?httpsurl=drive.google.com\/?hl=fr&urp=http:\/\/localhost:8080/?httpsurl=www.google.fr\/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 52, + "structuredCloneState": "AAAAAAAA\/\/8=", + "structuredCloneVersion": 2 + } + ], + "lastAccessed": 1393256601337, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=ssl.gstatic.com\/docs\/documents\/images\/kix-favicon6.ico", + "index": 1 + }, + "title": "Untitled document - Google Drive", + "image": "http:\/\/localhost:8080/?httpsurl=ssl.gstatic.com\/docs\/documents\/images\/kix-favicon6.ico", + "pos": 3, + "closedAt": 1393256601337 + }, + { + "state": { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/spreadsheet\/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web", + "title": "SessionFile.read() - Google Drive", + "ID": 39, + "docshellID": 33, + "referrer": "http:\/\/localhost:8080/?httpsurl=drive.google.com\/?hl=fr&urp=http:\/\/localhost:8080/?httpsurl=www.google.fr\/url?sa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26sou&authuser=0", + "docIdentifier": 40, + "structuredCloneState": "AAAAAAAA\/\/8=", + "structuredCloneVersion": 2 + }, + { + "url": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/spreadsheet\/ccc?key=0AsDW-iLj4J3pdEFaYkRmajhsMTJoTTd4U2k4V1E4U2c&usp=drive_web#gid=0", + "title": "SessionFile.read()", + "ID": 40, + "docshellID": 33, + "docIdentifier": 40 + } + ], + "lastAccessed": 1393256373871, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/favicon.ico", + "index": 2, + "pageStyle": { + "pageStyle": "gridCss" + } + }, + "title": "SessionFile.read()", + "image": "http:\/\/localhost:8080/?httpsurl=docs.google.com\/favicon.ico", + "pos": 3, + "closedAt": 1393256373871 + }, + { + "state": { + "entries": [ + { + "url": "http:\/\/localhost:8080/?httpsurl=github.com\/andrewray\/iocamljs", + "title": "andrewray\/iocamljs \u00b7 GitHub", + "ID": 16, + "docshellID": 16, + "referrer": "http:\/\/localhost:8080/?httpsurl=t.co\/Lgc1R8XU0T", + "docIdentifier": 16 + } + ], + "lastAccessed": 1393256206748, + "hidden": false, + "attributes": { + + }, + "image": "http:\/\/localhost:8080/?httpsurl=github.com\/favicon.ico", + "index": 1, + "scroll": { + "scroll": "0,625" + } + }, + "title": "andrewray\/iocamljs \u00b7 GitHub", + "image": "http:\/\/localhost:8080/?httpsurl=github.com\/favicon.ico", + "pos": 2, + "closedAt": 1393256298987 + } + ], + "busy": false, + "width": "960", + "height": "521", + "screenX": "4", + "screenY": "22", + "sizemode": "maximized" + } + ], + "selectedWindow": 1, + "_closedWindows": [ + + ], + "session": { + "lastUpdate": 1393368180441, + "startTime": 1393256133774, + "recentCrashes": 0 + }, + "global": { + + } +} diff --git a/testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.jsonlz4 b/testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.jsonlz4 new file mode 100644 index 0000000000..e1c0254c17 Binary files /dev/null and b/testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.jsonlz4 differ diff --git a/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js b/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js new file mode 100644 index 0000000000..0ae7b709fb --- /dev/null +++ b/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js @@ -0,0 +1,86 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* globals ExtensionAPI, Services, XPCOMUtils */ + +ChromeUtils.defineESModuleGetters(this, { + TalosParentProfiler: "resource://talos-powers/TalosParentProfiler.sys.mjs", + setTimeout: "resource://gre/modules/Timer.sys.mjs", +}); + +XPCOMUtils.defineLazyModuleGetters(this, { + BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", +}); + +const SCALAR_KEY = "timestamps.about_home_topsites_first_paint"; + +const MAX_ATTEMPTS = 10; + +let gAttempts = 0; + +this.startup_about_home_paint = class extends ExtensionAPI { + onStartup() { + Services.obs.addObserver(this, "browser-idle-startup-tasks-finished"); + } + + async wait(aMs) { + return new Promise(resolve => { + setTimeout(resolve, aMs); + }); + } + + observe(subject, topic, data) { + if (topic == "browser-idle-startup-tasks-finished") { + this.checkForTelemetry(); + } + } + + async checkForTelemetry() { + let snapshot = Services.telemetry.getSnapshotForScalars("main"); + let measurement = snapshot.parent[SCALAR_KEY]; + let win = BrowserWindowTracker.getTopWindow(); + if (!measurement) { + if (gAttempts == MAX_ATTEMPTS) { + dump(`Failed to get ${SCALAR_KEY} scalar probe in time.\n`); + await this.quit(); + return; + } + gAttempts++; + + await this.wait(1000); + ChromeUtils.idleDispatch(() => { + this.checkForTelemetry(); + }); + } else { + // Got our measurement. + dump("__start_report" + measurement + "__end_report\n\n"); + dump("__startTimestamp" + win.performance.now() + "__endTimestamp\n"); + + if (Services.env.exists("TPPROFILINGINFO")) { + let profilingInfo = Services.env.get("TPPROFILINGINFO"); + if (profilingInfo !== null) { + TalosParentProfiler.initFromObject(JSON.parse(profilingInfo)); + await TalosParentProfiler.finishStartupProfiling(); + } + } + + await this.quit(); + } + } + + async quit() { + for (let domWindow of Services.wm.getEnumerator(null)) { + domWindow.close(); + } + + try { + await this.wait(0); + Services.startup.quit(Services.startup.eForceQuit); + } catch (e) { + dump("Force Quit failed: " + e); + } + } + + onShutdown() {} +}; diff --git a/testing/talos/talos/startup_test/startup_about_home_paint/addon/manifest.json b/testing/talos/talos/startup_test/startup_about_home_paint/addon/manifest.json new file mode 100644 index 0000000000..8adf9d2004 --- /dev/null +++ b/testing/talos/talos/startup_test/startup_about_home_paint/addon/manifest.json @@ -0,0 +1,23 @@ +{ + "manifest_version": 2, + "name": "First about:home paint performance test", + "description": "Add-on that quits the browser once the about:home paint measurement has been taken.", + "version": "0.1", + + "browser_specific_settings": { + "gecko": { + "id": "startup_about_home_paint@mozilla.org" + } + }, + + "experiment_apis": { + "startup_about_home_paint": { + "schema": "schema.json", + "parent": { + "scopes": ["addon_parent"], + "script": "api.js", + "events": ["startup"] + } + } + } +} diff --git a/testing/talos/talos/startup_test/startup_about_home_paint/addon/schema.json b/testing/talos/talos/startup_test/startup_about_home_paint/addon/schema.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/testing/talos/talos/startup_test/startup_about_home_paint/addon/schema.json @@ -0,0 +1 @@ +[] diff --git a/testing/talos/talos/startup_test/startup_about_home_paint/startup_about_home_paint.manifest b/testing/talos/talos/startup_test/startup_about_home_paint/startup_about_home_paint.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testing/talos/talos/startup_test/tspaint_test.html b/testing/talos/talos/startup_test/tspaint_test.html new file mode 100644 index 0000000000..9561105b7b --- /dev/null +++ b/testing/talos/talos/startup_test/tspaint_test.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + diff --git a/testing/talos/talos/talos-powers/README b/testing/talos/talos/talos-powers/README new file mode 100644 index 0000000000..37f23274bc --- /dev/null +++ b/testing/talos/talos/talos-powers/README @@ -0,0 +1,5 @@ +# Talos Powers Add-on + +This add-ons purpose is to give talos content some special powers +that are normally restricted to the browser. + diff --git a/testing/talos/talos/talos-powers/api.js b/testing/talos/talos/talos-powers/api.js new file mode 100644 index 0000000000..b25cec5018 --- /dev/null +++ b/testing/talos/talos/talos-powers/api.js @@ -0,0 +1,465 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* globals ExtensionAPI, Services, XPCOMUtils */ + +const { ComponentUtils } = ChromeUtils.importESModule( + "resource://gre/modules/ComponentUtils.sys.mjs" +); + +ChromeUtils.defineESModuleGetters(this, { + AboutHomeStartupCache: "resource:///modules/BrowserGlue.sys.mjs", + PerTestCoverageUtils: + "resource://testing-common/PerTestCoverageUtils.sys.mjs", + SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs", + setTimeout: "resource://gre/modules/Timer.sys.mjs", +}); + +XPCOMUtils.defineLazyModuleGetters(this, { + AboutNewTab: "resource:///modules/AboutNewTab.jsm", + BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", +}); + +XPCOMUtils.defineLazyServiceGetter( + this, + "resProto", + "@mozilla.org/network/protocol;1?name=resource", + "nsISubstitutingProtocolHandler" +); + +// These are not automagically defined for us because we are an extension. +// +// eslint-disable-next-line mozilla/reject-importGlobalProperties +Cu.importGlobalProperties(["IOUtils", "PathUtils"]); + +const Cm = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); + +let frameScriptURL; +let profilerStartTime; + +function TalosPowersService() { + this.wrappedJSObject = this; + + this.init(); +} + +TalosPowersService.prototype = { + factory: ComponentUtils.generateSingletonFactory(TalosPowersService), + classDescription: "Talos Powers", + classID: Components.ID("{f5d53443-d58d-4a2f-8df0-98525d4f91ad}"), + contractID: "@mozilla.org/talos/talos-powers-service;1", + QueryInterface: ChromeUtils.generateQI([]), + + register() { + Cm.registerFactory( + this.classID, + this.classDescription, + this.contractID, + this.factory + ); + + void Cc[this.contractID].getService(); + }, + + unregister() { + Cm.unregisterFactory(this.classID, this.factory); + }, + + init() { + if (!frameScriptURL) { + throw new Error("Cannot find frame script url (extension not started?)"); + } + Services.mm.loadFrameScript(frameScriptURL, true); + Services.mm.addMessageListener("Talos:ForceQuit", this); + Services.mm.addMessageListener("TalosContentProfiler:Command", this); + Services.mm.addMessageListener("TalosPowersContent:ForceCCAndGC", this); + Services.mm.addMessageListener("TalosPowersContent:GetStartupInfo", this); + Services.mm.addMessageListener("TalosPowers:ParentExec:QueryMsg", this); + }, + + receiveMessage(message) { + switch (message.name) { + case "Talos:ForceQuit": { + this.forceQuit(message.data); + break; + } + case "TalosContentProfiler:Command": { + this.receiveProfileCommand(message); + break; + } + case "TalosPowersContent:ForceCCAndGC": { + Cu.forceGC(); + Cu.forceCC(); + Cu.forceShrinkingGC(); + break; + } + case "TalosPowersContent:GetStartupInfo": { + this.receiveGetStartupInfo(message); + break; + } + case "TalosPowers:ParentExec:QueryMsg": { + this.RecieveParentExecCommand(message); + break; + } + } + }, + + /** + * Enable the Gecko Profiler with some settings and then pause immediately. + * + * @param data (object) + * A JavaScript object with the following properties: + * + * entries (int): + * The sampling buffer size in bytes. + * + * interval (int): + * The sampling interval in milliseconds. + * + * threadsArray (array of strings): + * The thread names to sample. + */ + profilerBegin(data) { + Services.profiler.StartProfiler( + data.entries, + data.interval, + data.featuresArray, + data.threadsArray + ); + + Services.profiler.PauseSampling(); + }, + + /** + * Assuming the Profiler is running, dumps the Profile from all sampled + * processes and threads to the disk. The Profiler will be stopped once + * the profiles have been dumped. This method returns a Promise that + * will resolve once this has occurred. + * + * @param profileDir (string) + * The name of the directory to write the profile in. + * @param profileFile (string) + * The name of the file to write to. + * + * @returns Promise + */ + profilerFinish(profileDir, profileFile) { + const profilePath = PathUtils.join(profileDir, profileFile); + return new Promise((resolve, reject) => { + Services.profiler.Pause(); + Services.profiler.getProfileDataAsync().then( + profile => + IOUtils.writeJSON(profilePath, profile, { + tmpPath: `${profilePath}.tmp`, + }).then(() => { + Services.profiler.StopProfiler(); + resolve(); + Services.obs.notifyObservers(null, "talos-profile-gathered"); + }), + error => { + console.error("Failed to gather profile: " + error); + // FIXME: We should probably send a message down to the + // child which causes it to reject the waiting Promise. + reject(); + } + ); + }); + }, + + /** + * Pauses the Profiler, optionally setting a parent process marker before + * doing so. + * + * @param marker (string, optional) + * A marker to set before pausing. + */ + profilerPause(marker = null) { + if (marker) { + this.addIntervalMarker(marker, profilerStartTime); + } + Services.profiler.PauseSampling(); + }, + + /** + * Resumes a pausedProfiler, optionally setting a parent process marker + * after doing so. + * + * @param marker (string, optional) + * A marker to set after resuming. + */ + profilerResume(marker = null) { + Services.profiler.ResumeSampling(); + + profilerStartTime = Cu.now(); + + if (marker) { + this.addInstantMarker(marker); + } + }, + + /** + * Adds an instant marker to the Profile in the parent process. + * + * @param marker (string) A marker to set. + * + */ + addInstantMarker(marker) { + ChromeUtils.addProfilerMarker("Talos", { category: "Test" }, marker); + }, + + /** + * Adds a marker to the Profile in the parent process. + * + * @param marker (string) + * A marker to set before pausing. + * + * @param startTime (number) + * Start time, used to create an interval profile marker. If + * undefined, a single instance marker will be placed. + */ + addIntervalMarker(marker, startTime) { + ChromeUtils.addProfilerMarker( + "Talos", + { startTime, category: "Test" }, + marker + ); + }, + + receiveProfileCommand(message) { + const ACK_NAME = "TalosContentProfiler:Response"; + let mm = message.target.messageManager; + let name = message.data.name; + let data = message.data.data; + + switch (name) { + case "Profiler:Begin": { + this.profilerBegin(data); + // profilerBegin will cause the parent to send an async message to any + // child processes to start profiling. Because messages are serviced + // in order, we know that by the time that the child services the + // ACK message, that the profiler has started in its process. + mm.sendAsyncMessage(ACK_NAME, { name }); + break; + } + + case "Profiler:Finish": { + // The test is done. Dump the profile. + this.profilerFinish(data.profileDir, data.profileFile).then(() => { + mm.sendAsyncMessage(ACK_NAME, { name }); + }); + break; + } + + case "Profiler:Pause": { + this.profilerPause(data.marker, data.startTime); + mm.sendAsyncMessage(ACK_NAME, { name }); + break; + } + + case "Profiler:Resume": { + this.profilerResume(data.marker); + mm.sendAsyncMessage(ACK_NAME, { name }); + break; + } + + case "Profiler:Marker": { + this.profilerMarker(data.marker, data.startTime); + mm.sendAsyncMessage(ACK_NAME, { name }); + break; + } + } + }, + + async forceQuit(messageData) { + if (messageData && messageData.waitForStartupFinished) { + // We can wait for various startup items here to complete during + // the getInfo.html step for Talos so that subsequent runs don't + // have to do things like re-request the SafeBrowsing list. + let { SafeBrowsing } = ChromeUtils.importESModule( + "resource://gre/modules/SafeBrowsing.sys.mjs" + ); + + // Speed things up in case nobody else called this: + SafeBrowsing.init(); + + try { + await SafeBrowsing.addMozEntriesFinishedPromise; + } catch (e) { + // We don't care if things go wrong here - let's just shut down. + } + + // We wait for the AboutNewTab's TopSitesFeed (and its "Contile" + // integration, which shows the sponsored Top Sites) to finish + // being enabled here. This is because it's possible for getInfo.html + // to run so quickly that the feed will still be initializing, and + // that would cause us to write a mostly empty cache to the + // about:home startup cache on shutdown, which causes that test + // to break periodically. + AboutNewTab.onBrowserReady(); + // There aren't currently any easily observable notifications or + // events to let us know when the feed is ready, so we'll just poll + // for now. + let pollForFeed = async function () { + let foundFeed = AboutNewTab.activityStream.store.feeds.get( + "feeds.system.topsites" + ); + if (!foundFeed) { + await new Promise(resolve => setTimeout(resolve, 500)); + return pollForFeed(); + } + return foundFeed; + }; + let feed = await pollForFeed(); + await feed._contile.refresh(); + await feed.refresh({ broadcast: true }); + await AboutHomeStartupCache.cacheNow(); + } + + await SessionStore.promiseAllWindowsRestored; + + // Check to see if the top-most browser window still needs to fire its + // idle tasks notification. If so, we'll wait for it before shutting + // down, since some caching that can influence future runs in this profile + // keys off of that notification. + let topWin = BrowserWindowTracker.getTopWindow(); + if (topWin && topWin.gBrowserInit) { + await topWin.gBrowserInit.idleTasksFinishedPromise; + } + + for (let domWindow of Services.wm.getEnumerator(null)) { + domWindow.close(); + } + + try { + Services.startup.quit(Services.startup.eForceQuit); + } catch (e) { + dump("Force Quit failed: " + e); + } + }, + + receiveGetStartupInfo(message) { + let mm = message.target.messageManager; + let startupInfo = Services.startup.getStartupInfo(); + + if (!startupInfo.firstPaint) { + // It's possible that we were called early enough that + // the firstPaint measurement hasn't been set yet. In + // that case, we set up an observer for the next time + // a window is painted and re-retrieve the startup info. + let obs = function (subject, topic) { + Services.obs.removeObserver(this, topic); + startupInfo = Services.startup.getStartupInfo(); + mm.sendAsyncMessage( + "TalosPowersContent:GetStartupInfo:Result", + startupInfo + ); + }; + Services.obs.addObserver(obs, "widget-first-paint"); + } else { + mm.sendAsyncMessage( + "TalosPowersContent:GetStartupInfo:Result", + startupInfo + ); + } + }, + + // These services are exposed to local unprivileged content. + // Each service is a function which accepts an argument, a callback for sending + // the reply (possibly async), and the parent window as a utility. + // arg/reply semantice are service-specific. + // To add a service: add a method at ParentExecServices here, then at the content: + // + // and then e.g. TalosPowersParent.exec("sampleParentService", myArg, myCallback) + // Sample service: + /* + // arg: anything. return: sample reply + sampleParentService: function(arg, callback, win) { + win.setTimeout(function() { + callback("sample reply for: " + arg); + }, 500); + }, + */ + ParentExecServices: { + ping(arg, callback, win) { + callback(); + }, + + // arg: ignored. return: handle (number) for use with stopFrameTimeRecording + startFrameTimeRecording(arg, callback, win) { + var rv = win.windowUtils.startFrameTimeRecording(); + callback(rv); + }, + + // arg: handle from startFrameTimeRecording. return: array with composition intervals + stopFrameTimeRecording(arg, callback, win) { + var rv = win.windowUtils.stopFrameTimeRecording(arg); + callback(rv); + }, + + requestDumpCoverageCounters(arg, callback, win) { + PerTestCoverageUtils.afterTest().then(callback); + }, + + requestResetCoverageCounters(arg, callback, win) { + PerTestCoverageUtils.beforeTest().then(callback); + }, + + dumpAboutSupport(arg, callback, win) { + const { Troubleshoot } = ChromeUtils.importESModule( + "resource://gre/modules/Troubleshoot.sys.mjs" + ); + Troubleshoot.snapshot().then(snapshot => { + dump("about:support\t" + JSON.stringify(snapshot) + "\n"); + callback(); + }); + }, + }, + + RecieveParentExecCommand(msg) { + function sendResult(result) { + let mm = msg.target.messageManager; + mm.sendAsyncMessage("TalosPowers:ParentExec:ReplyMsg", { + id: msg.data.id, + result, + }); + } + + let command = msg.data.command; + if (!this.ParentExecServices.hasOwnProperty(command.name)) { + throw new Error( + "TalosPowers:ParentExec: Invalid service '" + command.name + "'" + ); + } + + this.ParentExecServices[command.name]( + command.data, + sendResult, + msg.target.ownerGlobal + ); + }, +}; + +this.talos_powers = class extends ExtensionAPI { + onStartup() { + let uri = Services.io.newURI("content/", null, this.extension.rootURI); + resProto.setSubstitutionWithFlags( + "talos-powers", + uri, + resProto.ALLOW_CONTENT_ACCESS + ); + + frameScriptURL = this.extension.rootURI.resolve( + "chrome/talos-powers-content.js" + ); + + TalosPowersService.prototype.register(); + } + + onShutdown() { + TalosPowersService.prototype.unregister(); + + frameScriptURL = null; + resProto.setSubstitution("talos-powers", null); + } +}; diff --git a/testing/talos/talos/talos-powers/chrome/talos-powers-content.js b/testing/talos/talos/talos-powers/chrome/talos-powers-content.js new file mode 100644 index 0000000000..4b7276e7a5 --- /dev/null +++ b/testing/talos/talos/talos-powers/chrome/talos-powers-content.js @@ -0,0 +1,214 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +addEventListener( + "TalosContentProfilerCommand", + e => { + let name = e.detail.name; + let data = e.detail.data; + sendAsyncMessage("TalosContentProfiler:Command", { name, data }); + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); + +addMessageListener("TalosContentProfiler:Response", msg => { + let name = msg.data.name; + let data = msg.data.data; + + let event = Cu.cloneInto( + { + bubbles: true, + detail: { + name, + data, + }, + }, + content + ); + content.dispatchEvent( + new content.CustomEvent("TalosContentProfilerResponse", event) + ); +}); + +addEventListener( + "TalosPowersContentForceCCAndGC", + e => { + Cu.forceGC(); + Cu.forceCC(); + Cu.forceShrinkingGC(); + sendSyncMessage("TalosPowersContent:ForceCCAndGC"); + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); + +addEventListener( + "TalosPowersContentFocus", + e => { + if ( + content.location.protocol != "file:" && + content.location.hostname != "localhost" && + content.location.hostname != "127.0.0.1" + ) { + throw new Error( + "TalosPowersContentFocus may only be used with local content" + ); + } + content.focus(); + let contentEvent = Cu.cloneInto( + { + bubbles: true, + }, + content + ); + content.dispatchEvent( + new content.CustomEvent("TalosPowersContentFocused", contentEvent) + ); + }, + { capture: true, wantUntrusted: true } // since we're exposing to unprivileged +); + +addEventListener( + "TalosPowersContentGetStartupInfo", + e => { + sendAsyncMessage("TalosPowersContent:GetStartupInfo"); + addMessageListener( + "TalosPowersContent:GetStartupInfo:Result", + function onResult(msg) { + removeMessageListener( + "TalosPowersContent:GetStartupInfo:Result", + onResult + ); + let event = Cu.cloneInto( + { + bubbles: true, + detail: msg.data, + }, + content + ); + + content.dispatchEvent( + new content.CustomEvent( + "TalosPowersContentGetStartupInfoResult", + event + ) + ); + } + ); + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); + +addEventListener( + "TalosPowersContentDumpConsole", + e => { + var messages; + try { + messages = Services.console.getMessageArray(); + } catch (ex) { + dump(ex + "\n"); + messages = []; + } + + for (var i = 0; i < messages.length; i++) { + dump(messages[i].message + "\n"); + } + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); + +/** + * Content that wants to quit the whole session should + * fire the TalosPowersGoQuitApplication custom event. This will + * attempt to force-quit the browser. + */ +addEventListener( + "TalosPowersGoQuitApplication", + e => { + // If we're loaded in a low-priority background process, like + // the background page thumbnailer, then we shouldn't be allowed + // to quit the whole application. This is a workaround until + // bug 1164459 is fixed. + let priority = docShell + .QueryInterface(Ci.nsIDocumentLoader) + .loadGroup.QueryInterface(Ci.nsISupportsPriority).priority; + if (priority != Ci.nsISupportsPriority.PRIORITY_LOWEST) { + sendAsyncMessage("Talos:ForceQuit", e.detail); + } + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); + +/** + * Content that wants to trigger a WebRender capture should fire the + * TalosPowersWebRenderCapture custom event. + */ +addEventListener( + "TalosPowersWebRenderCapture", + e => { + if (content && content.windowUtils) { + content.windowUtils.wrCapture(); + } else { + dump("Unable to obtain DOMWindowUtils for TalosPowersWebRenderCapture\n"); + } + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); + +/* * + * Mediator for the generic ParentExec mechanism. + * Listens for a query event from the content, forwards it as a query message + * to the parent, listens to a parent reply message, and forwards it as a reply + * event for the content to capture. + * The consumer API for this mechanism is at content/TalosPowersContent.js + * and the callees are at ParentExecServices at components/TalosPowersService.js + */ +addEventListener( + "TalosPowers:ParentExec:QueryEvent", + function (e) { + if ( + content.location.protocol != "file:" && + content.location.hostname != "localhost" && + content.location.hostname != "127.0.0.1" + ) { + throw new Error( + "TalosPowers:ParentExec may only be used with local content" + ); + } + let uniqueMessageId = + "TalosPowers:ParentExec:" + + content.document.documentURI + + content.window.performance.now() + + Math.random(); + + // Listener for the reply from the parent process + addMessageListener("TalosPowers:ParentExec:ReplyMsg", function done(reply) { + if (reply.data.id != uniqueMessageId) { + return; + } + + removeMessageListener("TalosPowers:ParentExec:ReplyMsg", done); + + // reply to content via an event + let contentEvent = Cu.cloneInto( + { + bubbles: true, + detail: reply.data.result, + }, + content + ); + content.dispatchEvent( + new content.CustomEvent(e.detail.listeningTo, contentEvent) + ); + }); + + // Send the query to the parent process + sendAsyncMessage("TalosPowers:ParentExec:QueryMsg", { + command: e.detail.command, + id: uniqueMessageId, + }); + }, + { wantUntrusted: true } // since we're exposing to unprivileged +); diff --git a/testing/talos/talos/talos-powers/content/TalosContentProfiler.js b/testing/talos/talos/talos-powers/content/TalosContentProfiler.js new file mode 100644 index 0000000000..b5ba7a6cbd --- /dev/null +++ b/testing/talos/talos/talos-powers/content/TalosContentProfiler.js @@ -0,0 +1,311 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* eslint-env mozilla/frame-script */ + +/** + * This utility script is for instrumenting your Talos test for + * performance profiles while running within content. If your test + * is running in the parent process, you should use + * TalosParentProfiler.js instead to avoid the messaging overhead. + * + * This file can be loaded directly into a test page, or can be loaded + * as a frame script into a browser by the parent process. + */ + +if (typeof window !== "undefined") { + window.onerror = (message, source, lineno) => { + dump(`TEST-UNEXPECTED-FAIL | ${source}, line ${lineno}: ${message}\n`); + }; +} + +var TalosContentProfiler; + +(function () { + // Whether or not this TalosContentProfiler object has had initFromObject + // or initFromURLQueryParams called on it. Any functions that will send + // events to the parent to change the behaviour of the Gecko Profiler + // should only be called after calling either initFromObject or + // initFromURLQueryParams. + var initted = false; + + // The subtest name that beginTest() was called with. + var currentTest = "unknown"; + + // Profiler settings. + var interval, entries, featuresArray, threadsArray, profileDir; + + /** + * Emits a TalosContentProfiler prefixed event and then returns a Promise + * that resolves once a corresponding acknowledgement event is + * dispatched on our document. + * + * @param name + * The name of the event that will be TalosContentProfiler prefixed and + * eventually sent to the parent. + * @param data (optional) + * The data that will be sent to the parent. + * @returns Promise + * Resolves when a corresponding acknowledgement event is dispatched + * on this document. + */ + function sendEventAndWait(name, data = {}) { + // If we're running as a frame script, we can send messages directly to + // the parent, rather than going through the talos-powers-content.js + // mediator, which ends up being more complicated. + if (typeof sendAsyncMessage !== "undefined") { + return new Promise(resolve => { + sendAsyncMessage("TalosContentProfiler:Command", { name, data }); + addMessageListener( + "TalosContentProfiler:Response", + function onMsg(msg) { + if (msg.data.name != name) { + return; + } + + removeMessageListener("TalosContentProfiler:Response", onMsg); + resolve(msg.data); + } + ); + }); + } + + return new Promise(resolve => { + var event = new CustomEvent("TalosContentProfilerCommand", { + bubbles: true, + detail: { + name, + data, + }, + }); + document.dispatchEvent(event); + + addEventListener( + "TalosContentProfilerResponse", + function onResponse(event) { + if (event.detail.name != name) { + return; + } + + removeEventListener("TalosContentProfilerResponse", onResponse); + + resolve(event.detail.data); + } + ); + }); + } + + /** + * Parses an url query string into a JS object. + * + * @param locationSearch (string) + * The location string to parse. + * @returns Object + * The GET params from the location string as + * key-value pairs in the Object. + */ + function searchToObject(locationSearch) { + var pairs = locationSearch.substring(1).split("&"); + var result = {}; + + for (var i in pairs) { + if (pairs[i] !== "") { + var pair = pairs[i].split("="); + result[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ""); + } + } + + return result; + } + + TalosContentProfiler = { + /** + * Initialize the profiler using profiler settings supplied in a JS object. + * + * @param obj (object) + * The following properties on the object are respected: + * gecko_profile_interval (int) + * gecko_profile_entries (int) + * gecko_profile_features (string, comma separated list of features to enable) + * gecko_profile_threads (string, comma separated list of threads to filter with) + * gecko_profile_dir (string) + */ + initFromObject(obj = {}) { + if (!initted) { + if ( + "gecko_profile_dir" in obj && + typeof obj.gecko_profile_dir == "string" && + "gecko_profile_interval" in obj && + Number.isFinite(obj.gecko_profile_interval * 1) && + "gecko_profile_entries" in obj && + Number.isFinite(obj.gecko_profile_entries * 1) && + "gecko_profile_features" in obj && + typeof obj.gecko_profile_features == "string" && + "gecko_profile_threads" in obj && + typeof obj.gecko_profile_threads == "string" + ) { + interval = obj.gecko_profile_interval; + entries = obj.gecko_profile_entries; + featuresArray = obj.gecko_profile_features.split(","); + threadsArray = obj.gecko_profile_threads.split(","); + profileDir = obj.gecko_profile_dir; + initted = true; + } else { + console.error( + "Profiler could not init with object: " + JSON.stringify(obj) + ); + } + } + }, + + /** + * Initialize the profiler using a string from a location string. + * + * @param locationSearch (string) + * The location string to initialize with. + */ + initFromURLQueryParams(locationSearch) { + this.initFromObject(searchToObject(locationSearch)); + }, + + /** + * A Talos test is about to start. This will return a Promise that + * resolves once the Profiler has been initialized. Note that the + * Gecko Profiler will be paused immediately after starting and that + * resume() should be called in order to collect samples. + * + * @param testName (string) + * The name of the test to use in Profiler markers. + * @returns Promise + * Resolves once the Gecko Profiler has been initialized and paused. + * If the TalosContentProfiler is not initialized, then this resolves + * without doing anything. + */ + beginTest(testName) { + if (initted) { + currentTest = testName; + return sendEventAndWait("Profiler:Begin", { + interval, + entries, + featuresArray, + threadsArray, + }); + } + return Promise.resolve(); + }, + + /** + * A Talos test has finished. This will stop the Gecko Profiler from + * sampling, and return a Promise that resolves once the Profiler has + * finished dumping the multi-process profile to disk. + * + * @returns Promise + * Resolves once the profile has been dumped to disk. The test should + * not try to quit the browser until this has resolved. + * If the TalosContentProfiler is not initialized, then this resolves + * without doing anything. + */ + finishTest() { + if (initted) { + let profileFile = `${currentTest}.profile`; + return sendEventAndWait("Profiler:Finish", { profileDir, profileFile }); + } + return Promise.resolve(); + }, + + /** + * A start-up test has finished. Callers don't need to run beginTest or + * finishTest, but should pause the sampler as soon as possible, and call + * this function to dump the profile. + * + * @returns Promise + * Resolves once the profile has been dumped to disk. The test should + * not try to quit the browser until this has resolved. + */ + finishStartupProfiling() { + if (initted) { + let profileFile = "startup.profile"; + return sendEventAndWait("Profiler:Finish", { profileDir, profileFile }); + } + return Promise.resolve(); + }, + + /** + * Resumes the Gecko Profiler sampler. Can also simultaneously set a marker. + * + * @param marker (string, optional) + * If non-empty, will set a marker immediately after resuming. + * @param inittedInParent (bool, optional) + * If true, it is assumed that the parent has already started profiling + * for us, and we can skip the initialization check. This is usually + * true for pageloader tests. + * @returns Promise + * Resolves once the Gecko Profiler has resumed. + */ + resume(marker = "", inittedInParent = false) { + if (initted || inittedInParent) { + return sendEventAndWait("Profiler:Resume", { marker }); + } + return Promise.resolve(); + }, + + /** + * Pauses the Gecko Profiler sampler. Can also simultaneously set a marker. + * + * @param marker (string, optional) + * If non-empty, will set a marker immediately before pausing. + * @param inittedInParent (bool, optional) + * If true, it is assumed that the parent has already started profiling + * for us, and we can skip the initialization check. This is usually + * true for pageloader tests. + * @param startTime (number, optional) + * Start time, used to create an interval profile marker. If + * undefined, a single instance marker will be placed. + * @returns Promise + * Resolves once the Gecko Profiler has paused. + */ + pause(marker = "", inittedInParent = false, startTime = undefined) { + if (initted || inittedInParent) { + return sendEventAndWait("Profiler:Pause", { marker, startTime }); + } + + return Promise.resolve(); + }, + + /** + * Adds a marker to the profile. + * + * @param marker (string) + * If non-empty, will set a marker immediately before pausing. + * @param inittedInParent (bool, optional) + * If true, it is assumed that the parent has already started profiling + * for us, and we can skip the initialization check. This is usually + * true for pageloader tests. + * @param startTime (number, optional) + * Start time, used to create an interval profile marker. If + * undefined, a single instance marker will be placed. + * @returns Promise + * Resolves once the marker has been set. + */ + mark(marker, inittedInParent = false, startTime = undefined) { + if (initted || inittedInParent) { + // If marker is omitted, just use the test name + if (!marker) { + marker = currentTest; + } + + return sendEventAndWait("Profiler:Marker", { marker, startTime }); + } + + return Promise.resolve(); + }, + }; + + // sendAsyncMessage is a hack-y mechanism to determine whether or not + // we're running as a frame script. If we are, jam TalosContentProfiler + // into the content scope. + if (typeof sendAsyncMessage !== "undefined") { + content.wrappedJSObject.TalosContentProfiler = TalosContentProfiler; + } +})(); diff --git a/testing/talos/talos/talos-powers/content/TalosParentProfiler.sys.mjs b/testing/talos/talos/talos-powers/content/TalosParentProfiler.sys.mjs new file mode 100644 index 0000000000..e36c5a21a0 --- /dev/null +++ b/testing/talos/talos/talos-powers/content/TalosParentProfiler.sys.mjs @@ -0,0 +1,238 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * This module is for instrumenting your Talos test for + * performance profiles while running within the parent process. + * Almost all of the functions that this script exposes to the + * Gecko Profiler are synchronous, except for finishTest, since that + * involves requesting the profiles from any content processes and + * then writing to disk. + * + * If your test is running in the content process, you should use the + * TalosContentProfiler.js utility script instead. + */ + +export const TalosParentProfiler = { + // Whether or not this TalosContentProfiler object has had initFromObject + // or initFromURLQueryParams called on it. Any functions that change the + // state of the Gecko Profiler should only be called after calling either + // initFromObject or initFromURLQueryParams. + initted: false, + // The subtest name that beginTest() was called with. + currentTest: "unknown", + // Profiler settings. + interval: undefined, + entries: undefined, + featuresArray: undefined, + threadsArray: undefined, + profileDir: undefined, + + get TalosPowers() { + // Use a bit of XPCOM hackery to get at the Talos Powers service + // implementation... + return Cc["@mozilla.org/talos/talos-powers-service;1"].getService( + Ci.nsISupports + ).wrappedJSObject; + }, + + /** + * Initialize the profiler using profiler settings supplied in a JS object. + * + * @param obj (object) + * The following properties on the object are respected: + * gecko_profile_interval (int) + * gecko_profile_entries (int) + * gecko_profile_features (string, comma separated list of features to enable) + * gecko_profile_threads (string, comma separated list of threads to filter with) + * gecko_profile_dir (string) + */ + initFromObject(obj = {}) { + if (!this.initted) { + if ( + "gecko_profile_dir" in obj && + typeof obj.gecko_profile_dir == "string" && + "gecko_profile_interval" in obj && + Number.isFinite(obj.gecko_profile_interval * 1) && + "gecko_profile_entries" in obj && + Number.isFinite(obj.gecko_profile_entries * 1) && + "gecko_profile_features" in obj && + typeof obj.gecko_profile_features == "string" && + "gecko_profile_threads" in obj && + typeof obj.gecko_profile_threads == "string" + ) { + this.interval = obj.gecko_profile_interval; + this.entries = obj.gecko_profile_entries; + this.featuresArray = obj.gecko_profile_features.split(","); + this.threadsArray = obj.gecko_profile_threads.split(","); + this.profileDir = obj.gecko_profile_dir; + this.initted = true; + } else { + console.error( + "Profiler could not init with object: " + JSON.stringify(obj) + ); + } + } + }, + + /** + * Initialize the profiler using a string from a location string. + * + * @param locationSearch (string) + * The location string to initialize with. + */ + initFromURLQueryParams(locationSearch) { + this.initFromObject(this.searchToObject(locationSearch)); + }, + + /** + * Parses an url query string into a JS object. + * + * @param locationSearch (string) + * The location string to parse. + * @returns Object + * The GET params from the location string as + * key-value pairs in the Object. + */ + searchToObject(locationSearch) { + let pairs = locationSearch.substring(1).split("&"); + let result = {}; + + for (let i in pairs) { + if (pairs[i] !== "") { + let pair = pairs[i].split("="); + result[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ""); + } + } + + return result; + }, + + /** + * A Talos test is about to start. Note that the Gecko Profiler will be + * paused immediately after starting and that resume() should be called + * in order to collect samples. + * + * @param testName (string) + * The name of the test to use in Profiler markers. + */ + beginTest(testName) { + if (this.initted) { + this.currentTest = testName; + this.TalosPowers.profilerBegin({ + entries: this.entries, + interval: this.interval, + featuresArray: this.featuresArray, + threadsArray: this.threadsArray, + }); + } else { + let msg = + "You should not call beginTest without having first " + + "initted the Profiler"; + console.error(msg); + } + }, + + /** + * A Talos test has finished. This will stop the Gecko Profiler from + * sampling, and return a Promise that resolves once the Profiler has + * finished dumping the multi-process profile to disk. + * + * @returns Promise + * Resolves once the profile has been dumped to disk. The test should + * not try to quit the browser until this has resolved. + */ + finishTest() { + if (this.initted) { + let profileFile = `${this.currentTest}.profile`; + return this.TalosPowers.profilerFinish(this.profileDir, profileFile); + } + let msg = + "You should not call finishTest without having first " + + "initted the Profiler"; + console.error(msg); + return Promise.reject(msg); + }, + + /** + * A start-up test has finished. Callers don't need to run beginTest or + * finishTest, but should pause the sampler as soon as possible, and call + * this function to dump the profile. + * + * @returns Promise + * Resolves once the profile has been dumped to disk. The test should + * not try to quit the browser until this has resolved. + */ + finishStartupProfiling() { + if (this.initted) { + let profileFile = "startup.profile"; + return this.TalosPowers.profilerFinish(this.profileDir, profileFile); + } + return Promise.resolve(); + }, + + /** + * Resumes the Gecko Profiler sampler. Can also simultaneously set a marker. + * + * @returns Promise + * Resolves once the Gecko Profiler has resumed. + */ + resume(marker = "") { + if (this.initted) { + this.TalosPowers.profilerResume(marker); + } + }, + + /** + * Pauses the Gecko Profiler sampler. Can also simultaneously set a marker. + * + * @param marker (string, optional) + * If non-empty, will set a marker immediately before pausing. + * @param startTime (number, optional) + * Start time, used to create an interval profile marker. If + * undefined, a single instance marker will be placed. + * @returns Promise + * Resolves once the Gecko Profiler has resumed. + */ + pause(marker = "", startTime = undefined) { + if (this.initted) { + this.TalosPowers.profilerPause(marker, startTime); + } + }, + + /** + * Adds a marker to the profile. + * + * @param marker (string, optional) + * If non-empty, will set a marker immediately before pausing. + * @param startTime (number, optional) + * Start time, used to create an interval profile marker. If + * undefined, a single instance marker will be placed. + * @returns Promise + * Resolves once the marker has been set. + */ + mark(marker, startTime = undefined) { + if (this.initted) { + // If marker is omitted, just use the test name + if (!marker) { + marker = this.currentTest; + } + + this.TalosPowers.addIntervalMarker(marker, startTime); + } + }, + + afterProfileGathered() { + if (!this.initted) { + return Promise.resolve(); + } + + return new Promise(resolve => { + Services.obs.addObserver(function onGathered() { + Services.obs.removeObserver(onGathered, "talos-profile-gathered"); + resolve(); + }, "talos-profile-gathered"); + }); + }, +}; diff --git a/testing/talos/talos/talos-powers/content/TalosPowersContent.js b/testing/talos/talos/talos-powers/content/TalosPowersContent.js new file mode 100644 index 0000000000..b50e1360c6 --- /dev/null +++ b/testing/talos/talos/talos-powers/content/TalosPowersContent.js @@ -0,0 +1,151 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// This file should be executed by the [possibly unprivileged] consumer, e.g.: +// +// and then e.g. TalosPowersParent.exec("sampleParentService", myArg, myCallback) +// It marely sends a query event and possibly listens to a reply event, and does not +// depend on any special privileges. + +var TalosPowers; +var TalosPowersContent; +var TalosPowersParent; + +(function () { + // The talos powers chrome event/message listeners are set up + // asynchronously during startup so attempts to use this code too early + // may race against the extension initialization. Code that has might + // be vulnerable to that race can use `await TalosPowers.loadPromise;` + // which waits until it can successfully exchange a simple "ping" message + // with the extension. + async function tryPing() { + let pingPromise = new Promise(resolve => { + TalosPowersParent.exec("ping", null, resolve); + }); + let timeoutPromise = new Promise((resolve, reject) => { + setTimeout(reject, 500); + }); + + try { + await Promise.race([pingPromise, timeoutPromise]); + } catch (e) { + return tryPing(); + } + + return null; + } + + TalosPowers = {}; + Object.defineProperty(TalosPowers, "loadPromise", { + get: () => tryPing(), + configurable: true, + enumerable: true, + }); + + TalosPowersContent = { + /** + * Synchronously force CC and GC in this process, as well as in the + * parent process. + */ + forceCCAndGC() { + var event = new CustomEvent("TalosPowersContentForceCCAndGC", { + bubbles: true, + }); + document.dispatchEvent(event); + }, + + focus(callback) { + if (callback) { + addEventListener("TalosPowersContentFocused", function focused() { + removeEventListener("TalosPowersContentFocused", focused); + callback(); + }); + } + document.dispatchEvent( + new CustomEvent("TalosPowersContentFocus", { + bubbles: true, + }) + ); + }, + + getStartupInfo() { + return new Promise(resolve => { + var event = new CustomEvent("TalosPowersContentGetStartupInfo", { + bubbles: true, + }); + document.dispatchEvent(event); + + addEventListener( + "TalosPowersContentGetStartupInfoResult", + function onResult(e) { + removeEventListener( + "TalosPowersContentGetStartupInfoResult", + onResult + ); + resolve(e.detail); + } + ); + }); + }, + + dumpConsole() { + var event = new CustomEvent("TalosPowersContentDumpConsole", { + bubbles: true, + }); + document.dispatchEvent(event); + }, + + goQuitApplication(waitForStartupFinished) { + var event = new CustomEvent("TalosPowersGoQuitApplication", { + bubbles: true, + detail: { waitForStartupFinished }, + }); + document.dispatchEvent(event); + }, + + wrCapture() { + var event = new CustomEvent("TalosPowersWebRenderCapture", { + bubbles: true, + }); + document.dispatchEvent(event); + }, + }; + + /** + * Generic interface to service functions which run at the parent process. + */ + // If including this script proves too much touble, you may embed the following + // code verbatim instead, and keep the copy up to date with its source here: + TalosPowersParent = { + replyId: 1, + + // dispatch an event to the framescript and register the result/callback event + exec(commandName, arg, callback, opt_custom_window) { + let win = opt_custom_window || window; + let replyEvent = "TalosPowers:ParentExec:ReplyEvent:" + this.replyId++; + if (callback) { + win.addEventListener( + replyEvent, + function (e) { + callback(e.detail); + }, + { once: true } + ); + } + win.dispatchEvent( + new win.CustomEvent("TalosPowers:ParentExec:QueryEvent", { + bubbles: true, + detail: { + command: { + name: commandName, + data: arg, + }, + listeningTo: replyEvent, + }, + }) + ); + }, + }; + // End of possibly embedded code +})(); diff --git a/testing/talos/talos/talos-powers/manifest.json b/testing/talos/talos/talos-powers/manifest.json new file mode 100644 index 0000000000..f31c9fe1fa --- /dev/null +++ b/testing/talos/talos/talos-powers/manifest.json @@ -0,0 +1,23 @@ +{ + "manifest_version": 2, + "name": "Talos Powers", + "description": "Gives Talos content special powers.", + "version": "1.1", + + "browser_specific_settings": { + "gecko": { + "id": "talos-powers@mozilla.org" + } + }, + + "experiment_apis": { + "talos_powers": { + "schema": "schema.json", + "parent": { + "scopes": ["addon_parent"], + "script": "api.js", + "events": ["startup"] + } + } + } +} diff --git a/testing/talos/talos/talos-powers/schema.json b/testing/talos/talos/talos-powers/schema.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/testing/talos/talos/talos-powers/schema.json @@ -0,0 +1 @@ +[] diff --git a/testing/talos/talos/talos_process.py b/testing/talos/talos/talos_process.py new file mode 100644 index 0000000000..db3a5f4b85 --- /dev/null +++ b/testing/talos/talos/talos_process.py @@ -0,0 +1,278 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. +import pprint +import signal +import subprocess +import sys +import time +import traceback +from threading import Event + +import mozcrash +import psutil +import six +from mozlog import get_proxy_logger +from mozprocess import ProcessHandler + +from talos.utils import TalosError + +LOG = get_proxy_logger() + + +class ProcessContext(object): + """ + Store useful results of the browser execution. + """ + + def __init__(self, is_launcher=False): + self.output = None + self.process = None + self.is_launcher = is_launcher + + @property + def pid(self): + return self.process and self.process.pid + + def kill_process(self): + """ + Kill the process, returning the exit code or None if the process + is already finished. + """ + parentProc = self.process + # If we're using a launcher process, terminate that instead of us: + kids = parentProc and parentProc.is_running() and parentProc.children() + if self.is_launcher and kids and len(kids) == 1 and kids[0].is_running(): + LOG.debug( + ( + "Launcher process {} detected. Terminating parent" + " process {} instead." + ).format(parentProc, kids[0]) + ) + parentProc = kids[0] + + if parentProc and parentProc.is_running(): + LOG.debug("Terminating %s" % parentProc) + try: + parentProc.terminate() + except psutil.NoSuchProcess: + procs = parentProc.children() + for p in procs: + c = ProcessContext() + c.process = p + c.kill_process() + return parentProc.returncode + try: + return parentProc.wait(3) + except psutil.TimeoutExpired: + LOG.debug("Killing %s" % parentProc) + parentProc.kill() + # will raise TimeoutExpired if unable to kill + return parentProc.wait(3) + + +class Reader(object): + def __init__(self, event): + self.output = [] + self.got_end_timestamp = False + self.got_timeout = False + self.timeout_message = "" + self.got_error = False + self.event = event + self.proc = None + + def __call__(self, line): + line = six.ensure_str(line) + if line.find("__endTimestamp") != -1: + self.got_end_timestamp = True + self.event.set() + elif line == "TART: TIMEOUT": + self.got_timeout = True + self.timeout_message = "TART" + self.event.set() + elif line.startswith("TEST-UNEXPECTED-FAIL | "): + self.got_error = True + self.event.set() + + if not ( + "JavaScript error:" in line + or "JavaScript warning:" in line + or "SyntaxError:" in line + or "TypeError:" in line + ): + LOG.process_output(self.proc.pid, line) + self.output.append(line) + + +def run_browser( + command, + minidump_dir, + timeout=None, + on_started=None, + debug=None, + debugger=None, + debugger_args=None, + **kwargs +): + """ + Run the browser using the given `command`. + + After the browser prints __endTimestamp, we give it 5 + seconds to quit and kill it if it's still alive at that point. + + Note that this method ensure that the process is killed at + the end. If this is not possible, an exception will be raised. + + :param command: the commad (as a string list) to run the browser + :param minidump_dir: a path where to extract minidumps in case the + browser hang. This have to be the same value + used in `mozcrash.check_for_crashes`. + :param timeout: if specified, timeout to wait for the browser before + we raise a :class:`TalosError` + :param on_started: a callback that can be used to do things just after + the browser has been started. The callback must takes + an argument, which is the psutil.Process instance + :param kwargs: additional keyword arguments for the :class:`ProcessHandler` + instance + + Returns a ProcessContext instance, with available output and pid used. + """ + + debugger_info = find_debugger_info(debug, debugger, debugger_args) + if debugger_info is not None: + return run_in_debug_mode( + command, debugger_info, on_started=on_started, env=kwargs.get("env") + ) + + is_launcher = sys.platform.startswith("win") and "-wait-for-browser" in command + context = ProcessContext(is_launcher) + first_time = int(time.time()) * 1000 + wait_for_quit_timeout = 20 + event = Event() + reader = Reader(event) + + LOG.info("Using env: %s" % pprint.pformat(kwargs["env"])) + + kwargs["storeOutput"] = False + kwargs["processOutputLine"] = reader + kwargs["onFinish"] = event.set + proc = ProcessHandler(command, **kwargs) + reader.proc = proc + proc.run() + + LOG.process_start(proc.pid, " ".join(command)) + try: + context.process = psutil.Process(proc.pid) + if on_started: + on_started(context.process) + # wait until we saw __endTimestamp in the proc output, + # or the browser just terminated - or we have a timeout + if not event.wait(timeout): + LOG.info("Timeout waiting for test completion; killing browser...") + # try to extract the minidump stack if the browser hangs + kill_and_get_minidump(context, minidump_dir) + raise TalosError("timeout") + if reader.got_end_timestamp: + for i in six.moves.range(1, wait_for_quit_timeout): + if proc.wait(1) is not None: + break + if proc.poll() is None: + LOG.info( + "Browser shutdown timed out after {0} seconds, killing" + " process.".format(wait_for_quit_timeout) + ) + kill_and_get_minidump(context, minidump_dir) + raise TalosError( + "Browser shutdown timed out after {0} seconds, killed" + " process.".format(wait_for_quit_timeout) + ) + elif reader.got_timeout: + raise TalosError("TIMEOUT: %s" % reader.timeout_message) + elif reader.got_error: + raise TalosError("unexpected error") + finally: + # this also handle KeyboardInterrupt + # ensure early the process is really terminated + return_code = None + try: + return_code = context.kill_process() + if return_code is None: + return_code = proc.wait(1) + except Exception: + # Maybe killed by kill_and_get_minidump(), maybe ended? + LOG.info("Unable to kill process") + LOG.info(traceback.format_exc()) + + reader.output.append( + "__startBeforeLaunchTimestamp%d__endBeforeLaunchTimestamp" % first_time + ) + reader.output.append( + "__startAfterTerminationTimestamp%d__endAfterTerminationTimestamp" + % (int(time.time()) * 1000) + ) + + if return_code is not None: + LOG.process_exit(proc.pid, return_code) + else: + LOG.debug("Unable to detect exit code of the process %s." % proc.pid) + context.output = reader.output + return context + + +def find_debugger_info(debug, debugger, debugger_args): + debuggerInfo = None + if debug or debugger or debugger_args: + import mozdebug + + if not debugger: + # No debugger name was provided. Look for the default ones on + # current OS. + debugger = mozdebug.get_default_debugger_name( + mozdebug.DebuggerSearch.KeepLooking + ) + + debuggerInfo = None + if debugger: + debuggerInfo = mozdebug.get_debugger_info(debugger, debugger_args) + + if debuggerInfo is None: + raise TalosError("Could not find a suitable debugger in your PATH.") + + return debuggerInfo + + +def run_in_debug_mode(command, debugger_info, on_started=None, env=None): + signal.signal(signal.SIGINT, lambda sigid, frame: None) + context = ProcessContext() + command_under_dbg = [debugger_info.path] + debugger_info.args + command + + ttest_process = subprocess.Popen(command_under_dbg, env=env) + + context.process = psutil.Process(ttest_process.pid) + if on_started: + on_started(context.process) + + return_code = ttest_process.wait() + + if return_code is not None: + LOG.process_exit(ttest_process.pid, return_code) + else: + LOG.debug("Unable to detect exit code of the process %s." % ttest_process.pid) + + return context + + +def kill_and_get_minidump(context, minidump_dir): + proc = context.process + if context.is_launcher: + kids = context.process.children() + if len(kids) == 1: + LOG.debug( + ( + "Launcher process {} detected. Killing parent" + " process {} instead." + ).format(proc, kids[0]) + ) + proc = kids[0] + LOG.debug("Killing %s and writing a minidump file" % proc) + mozcrash.kill_and_get_minidump(proc.pid, minidump_dir) diff --git a/testing/talos/talos/talosconfig.py b/testing/talos/talos/talosconfig.py new file mode 100644 index 0000000000..a3f0d6f807 --- /dev/null +++ b/testing/talos/talos/talosconfig.py @@ -0,0 +1,61 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import json +import os + + +def writeConfigFile(obj, vals): + data = dict((opt, obj[opt]) for opt in (vals or obj.keys())) + return json.dumps(data) + + +def generateTalosConfig(command_line, browser_config, test_config, pid=None): + bcontroller_vars = [ + "command", + "child_process", + "process", + "browser_wait", + "test_timeout", + "browser_path", + "error_filename", + ] + + if "xperf_path" in browser_config: + bcontroller_vars.append("xperf_path") + bcontroller_vars.extend(["buildid", "sourcestamp", "repository", "title"]) + if "name" in test_config: + bcontroller_vars.append("testname") + browser_config["testname"] = test_config["name"] + + browser_config["command"] = " ".join(command_line) + + if ( + ("xperf_providers" in test_config) + and ("xperf_user_providers" in test_config) + and ("xperf_stackwalk" in test_config) + ): # noqa + + print("extending with xperf!") + browser_config["xperf_providers"] = test_config["xperf_providers"] + browser_config["xperf_user_providers"] = test_config["xperf_user_providers"] + browser_config["xperf_stackwalk"] = test_config["xperf_stackwalk"] + browser_config["processID"] = pid + browser_config["approot"] = os.path.dirname(browser_config["browser_path"]) + bcontroller_vars.extend( + [ + "xperf_providers", + "xperf_user_providers", + "xperf_stackwalk", + "processID", + "approot", + ] + ) + + content = writeConfigFile(browser_config, bcontroller_vars) + + with open(browser_config["bcontroller_config"], "w") as fhandle: + fhandle.write(content) + + return content diff --git a/testing/talos/talos/test.py b/testing/talos/talos/test.py new file mode 100644 index 0000000000..d710b20534 --- /dev/null +++ b/testing/talos/talos/test.py @@ -0,0 +1,1219 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os + +from talos import filter + +""" +test definitions for Talos +""" + +_TESTS = {} # internal dict of Talos test classes + + +def register_test(): + """Decorator to register Talos test classes""" + + def wrapper(klass): + assert issubclass(klass, Test) + assert klass.name() not in _TESTS + + _TESTS[klass.name()] = klass + return klass + + return wrapper + + +def test_dict(): + """Return the dict of the registered test classes""" + return _TESTS + + +class Test(object): + """abstract base class for a Talos test case""" + + __test__ = False # not pytest + + cycles = None # number of cycles + keys = [] + desktop = True + filters = filter.ignore_first.prepare(1) + filter.median.prepare() + lower_is_better = True + alert_threshold = 2.0 + perfherder_framework = "talos" + subtest_alerts = False + suite_should_alert = True + + @classmethod + def name(cls): + return cls.__name__ + + @classmethod + def description(cls): + if cls.__doc__ is None: + return "No documentation available yet." + else: + doc = cls.__doc__ + description_lines = [i.strip() for i in doc.strip().splitlines()] + return "\n".join(description_lines) + + def __init__(self, **kw): + self.update(**kw) + + def update(self, **kw): + self.__dict__.update(kw) + + def items(self): + """ + returns a list of 2-tuples + """ + retval = [("name", self.name())] + for key in self.keys: + value = getattr(self, key, None) + if value is not None: + retval.append((key, value)) + return retval + + def __str__(self): + """string form appropriate for YAML output""" + items = self.items() + + key, value = items.pop(0) + lines = ["- %s: %s" % (key, value)] + for key, value in items: + lines.append(" %s: %s" % (key, value)) + return "\n".join(lines) + + +# ts-style startup tests (ts, twinopen, ts_cold, etc) +# The overall test number is calculated by excluding the max opening time +# and taking an average of the remaining numbers. +class TsBase(Test): + """abstract base class for ts-style tests""" + + keys = [ + "url", + "url_timestamp", + "timeout", + "cycles", + "profile_path", # The path containing the template profile. This + # directory is copied to the temporary profile during + # initialization of the test. If some of the files may + # be overwritten by Firefox and need to be reinstalled + # before each pass, use key |reinstall| + "gecko_profile", + "gecko_profile_interval", + "gecko_profile_entries", + "gecko_profile_features", + "gecko_profile_threads", + "gecko_profile_startup", + "preferences", + "xperf_counters", + "xperf_providers", + "xperf_user_providers", + "xperf_stackwalk", + "tpmozafterpaint", + "fnbpaint", + "tphero", + "tpmanifest", + "profile", + "firstpaint", + "userready", + "testeventmap", + "base_vs_ref", + "extensions", + "filters", + "setup", + "cleanup", + "pine", + "skip_reason", + "webextensions", + "webextensions_folder", + "reinstall", # A list of files from the profile directory that + # should be copied to the temporary profile prior to + # running each cycle, to avoid one cycle overwriting + # the data used by the next another cycle (may be used + # e.g. for sessionstore.js to ensure that all cycles + # use the exact same sessionstore.js, rather than a + # more recent copy). + ] + + def __init__(self, **kw): + super(TsBase, self).__init__(**kw) + + # Unless set to False explicitly, all TsBase tests will have the blocklist + # enabled by default in order to more accurately test the startup paths. + BLOCKLIST_PREF = "extensions.blocklist.enabled" + + if not hasattr(self, "preferences"): + self.preferences = { + BLOCKLIST_PREF: True, + } + elif BLOCKLIST_PREF not in self.preferences: + self.preferences[BLOCKLIST_PREF] = True + + +@register_test() +class ts_paint(TsBase): + """ + Launches tspaint_test.html with the current timestamp in the url, + waits for [MozAfterPaint and onLoad] to fire, then records the end + time and calculates the time to startup. + """ + + cycles = 20 + timeout = 150 + gecko_profile_startup = True + gecko_profile_entries = 10000000 + url = "startup_test/tspaint_test.html" + xperf_counters = [] + win7_counters = [] + filters = filter.ignore_first.prepare(1) + filter.median.prepare() + tpmozafterpaint = True + mainthread = False + responsiveness = False + unit = "ms" + + +@register_test() +class ts_paint_webext(ts_paint): + webextensions = "${talos}/webextensions/dummy/dummy.xpi" + preferences = {"xpinstall.signatures.required": False} + + +@register_test() +class ts_paint_heavy(ts_paint): + """ + ts_paint test ran against a heavy-user profile + """ + + profile = "simple" + + +@register_test() +class startup_about_home_paint(ts_paint): + """ + Tests loading about:home on startup with the about:home startup cache + disabled, to more accurately simulate startup when the cache does not + exist. + """ + + url = None + cycles = 20 + timeout = 600 + extensions = ["${talos}/startup_test/startup_about_home_paint/addon"] + tpmanifest = "${talos}/startup_test/startup_about_home_paint/startup_about_home_paint.manifest" + preferences = { + "browser.startup.homepage.abouthome_cache.enabled": False, + } + pine = False + + +@register_test() +class startup_about_home_paint_cached(ts_paint): + """ + Tests loading about:home on startup with the about:home startup cache + enabled. + """ + + url = None + cycles = 20 + extensions = ["${talos}/startup_test/startup_about_home_paint/addon"] + tpmanifest = "${talos}/startup_test/startup_about_home_paint/startup_about_home_paint.manifest" + preferences = { + "browser.startup.homepage.abouthome_cache.enabled": True, + } + pine = False + + +@register_test() +class startup_about_home_paint_realworld_webextensions(ts_paint): + url = None + cycles = 20 + extensions = [ + "${talos}/startup_test/startup_about_home_paint/addon", + "${talos}/getinfooffline", + ] + tpmanifest = "${talos}/startup_test/startup_about_home_paint/startup_about_home_paint.manifest" + webextensions_folder = "${talos}/webextensions" + preferences = { + "browser.startup.homepage.abouthome_cache.enabled": False, + } + pine = False + + +@register_test() +class sessionrestore(TsBase): + """ + A start up test measuring the time it takes to load a sessionstore.js file. + + 1. Set up Firefox to restore from a given sessionstore.js file. + 2. Launch Firefox. + 3. Measure the delta between firstPaint and sessionRestored. + """ + + extensions = ["${talos}/startup_test/sessionrestore/addon"] + cycles = 10 + timeout = 900 + gecko_profile_startup = True + gecko_profile_entries = 10000000 + profile_path = "${talos}/startup_test/sessionrestore/profile" + reinstall = ["sessionstore.jsonlz4", "sessionstore.js", "sessionCheckpoints.json"] + # Restore the session. We have to provide a URL, otherwise Talos + # asks for a manifest URL. + url = "about:home" + preferences = {"browser.startup.page": 3} + unit = "ms" + pine = False + + +@register_test() +class sessionrestore_no_auto_restore(sessionrestore): + """ + A start up test measuring the time it takes to load a sessionstore.js file. + + 1. Set up Firefox to *not* restore automatically from sessionstore.js file. + 2. Launch Firefox. + 3. Measure the delta between firstPaint and sessionRestored. + """ + + timeout = 300 + preferences = { + "browser.startup.page": 1, + "talos.sessionrestore.norestore": True, + } + + +@register_test() +class sessionrestore_many_windows(sessionrestore): + """ + A start up test measuring the time it takes to load a sessionstore.js file. + + 1. Set up Firefox to restore automatically from sessionstore.js file. + 2. Launch Firefox. + 3. Measure the delta between firstPaint and sessionRestored. + """ + + profile_path = "${talos}/startup_test/sessionrestore/profile-manywindows" + + +# pageloader tests(tp5, etc) + +# The overall test number is determined by first calculating the median +# page load time for each page in the set (excluding the max page load +# per individual page). The max median from that set is then excluded and +# the average is taken; that becomes the number reported to the tinderbox +# waterfall. + + +class PageloaderTest(Test): + """abstract base class for a Talos Pageloader test""" + + extensions = ["${talos}/pageloader"] + tpmanifest = None # test manifest + tpcycles = 1 # number of time to run each page + cycles = None + timeout = None + + keys = [ + "tpmanifest", + "tpcycles", + "tppagecycles", + "tprender", + "tpchrome", + "tpmozafterpaint", + "fnbpaint", + "tphero", + "tploadnocache", + "firstpaint", + "userready", + "testeventmap", + "base_vs_ref", + "mainthread", + "resolution", + "cycles", + "gecko_profile", + "gecko_profile_interval", + "gecko_profile_entries", + "gecko_profile_features", + "gecko_profile_threads", + "tptimeout", + "win_counters", + "w7_counters", + "linux_counters", + "mac_counters", + "tpscrolltest", + "xperf_counters", + "timeout", + "responsiveness", + "profile_path", + "xperf_providers", + "xperf_user_providers", + "xperf_stackwalk", + "format_pagename", + "filters", + "preferences", + "extensions", + "setup", + "cleanup", + "pine", + "skip_reason", + "lower_is_better", + "alert_threshold", + "unit", + "webextensions", + "profile", + "suite_should_alert", + "subtest_alerts", + "perfherder_framework", + "pdfpaint", + "webextensions_folder", + "a11y", + ] + + +class QuantumPageloadTest(PageloaderTest): + """ + Base class for a Quantum Pageload test + """ + + tpcycles = 1 + tppagecycles = 25 + gecko_profile_interval = 1 + gecko_profile_entries = 2000000 + filters = filter.ignore_first.prepare(5) + filter.median.prepare() + unit = "ms" + lower_is_better = True + fnbpaint = True + + +@register_test() +class twinopen(PageloaderTest): + """ + Tests the amount of time it takes an open browser to open a new browser + window and paint the browser chrome. This test does not include startup + time. Multiple test windows are opened in succession. + (Measures ctrl-n performance.) + """ + + extensions = ["${talos}/pageloader", "${talos}/tests/twinopen"] + tpmanifest = "${talos}/tests/twinopen/twinopen.manifest" + tppagecycles = 20 + timeout = 300 + gecko_profile_interval = 1 + gecko_profile_entries = 2000000 + tpmozafterpaint = True + filters = filter.ignore_first.prepare(5) + filter.median.prepare() + unit = "ms" + preferences = {"browser.startup.homepage": "about:blank"} + + +@register_test() +class pdfpaint(PageloaderTest): + """ + Tests the amount of time it takes for the the first page of a PDF to + be rendered. + """ + + tpmanifest = "${talos}/tests/pdfpaint/pdfpaint.manifest" + tppagecycles = 20 + timeout = 600 + gecko_profile_entries = 1000000 + pdfpaint = True + unit = "ms" + preferences = {"pdfjs.eventBusDispatchToDOM": True} + + +@register_test() +class cpstartup(PageloaderTest): + """ + Tests the amount of time it takes to start up a new content process and + initialize it to the point where it can start processing incoming URLs + to load. + """ + + extensions = ["${talos}/pageloader", "${talos}/tests/cpstartup/extension"] + tpmanifest = "${talos}/tests/cpstartup/cpstartup.manifest" + tppagecycles = 20 + timeout = 600 + gecko_profile_entries = 1000000 + tploadnocache = True + unit = "ms" + preferences = { + # By default, Talos is configured to open links from + # content in new windows. We're overriding them so that + # they open in new tabs instead. + # See http://kb.mozillazine.org/Browser.link.open_newwindow + # and http://kb.mozillazine.org/Browser.link.open_newwindow.restriction + "browser.link.open_newwindow": 3, + "browser.link.open_newwindow.restriction": 2, + } + + +@register_test() +class tabpaint(PageloaderTest): + """ + Tests the amount of time it takes to open new tabs, triggered from + both the parent process and the content process. + """ + + extensions = ["${talos}/tests/tabpaint", "${talos}/pageloader"] + tpmanifest = "${talos}/tests/tabpaint/tabpaint.manifest" + tppagecycles = 20 + timeout = 600 + gecko_profile_entries = 1000000 + tploadnocache = True + unit = "ms" + preferences = { + # By default, Talos is configured to open links from + # content in new windows. We're overriding them so that + # they open in new tabs instead. + # See http://kb.mozillazine.org/Browser.link.open_newwindow + # and http://kb.mozillazine.org/Browser.link.open_newwindow.restriction + "browser.link.open_newwindow": 3, + "browser.link.open_newwindow.restriction": 2, + "browser.newtab.preload": False, + } + + +@register_test() +class tabswitch(PageloaderTest): + """ + Tests the amount of time it takes to switch between tabs + """ + + extensions = ["${talos}/tests/tabswitch", "${talos}/pageloader"] + tpmanifest = "${talos}/tests/tabswitch/tabswitch.manifest" + tppagecycles = 5 + timeout = 900 + gecko_profile_entries = 5000000 + tploadnocache = True + preferences = { + "addon.test.tabswitch.urlfile": os.path.join("${talos}", "tests", "tp5o.html"), + "addon.test.tabswitch.webserver": "${webserver}", + "addon.test.tabswitch.maxurls": -1, + # Avoid the bookmarks toolbar interfering with our measurements. + # See bug 1674053 and bug 1675809 for context. + "browser.toolbars.bookmarks.visibility": "never", + } + unit = "ms" + + +@register_test() +class cross_origin_pageload(PageloaderTest): + """ + Tests the amount of time it takes to load a page which + has 20 cross origin iframes + """ + + preferences = {"dom.ipc.processPrelaunch.fission.number": 30} + extensions = ["${talos}/pageloader"] + tpmanifest = "${talos}/tests/cross_origin_pageload/cross_origin_pageload.manifest" + tppagecycles = 10 + timeout = 100 + tploadnocache = True + unit = "ms" + + +@register_test() +class tart(PageloaderTest): + """ + Tab Animation Regression Test + Tests tab animation on these cases: + 1. Simple: single new tab of about:blank open/close without affecting + (shrinking/expanding) other tabs. + 2. icon: same as above with favicons and long title instead of about:blank. + 3. Newtab: newtab open with thumbnails preview - without affecting other + tabs, with and without preload. + 4. Fade: opens a tab, then measures fadeout/fadein (tab animation without + the overhead of opening/closing a tab). + - Case 1 is tested with DPI scaling of 1. + - Case 2 is tested with DPI scaling of 1.0 and 2.0. + - Case 3 is tested with the default scaling of the test system. + - Case 4 is tested with DPI scaling of 2.0 with the "icon" tab + (favicon and long title). + - Each animation produces 3 test results: + - error: difference between the designated duration and the actual + completion duration from the trigger. + - half: average interval over the 2nd half of the animation. + - all: average interval over all recorded intervals. + """ + + tpmanifest = "${talos}/tests/tart/tart.manifest" + extensions = ["${talos}/pageloader", "${talos}/tests/tart/addon"] + tpcycles = 1 + tppagecycles = 25 + tploadnocache = True + tpmozafterpaint = False + gecko_profile_interval = 10 + gecko_profile_entries = 1000000 + win_counters = w7_counters = linux_counters = mac_counters = None + """ + ASAP mode + The recording API is broken with OMTC before ~2013-11-27 + After ~2013-11-27, disabling OMTC will also implicitly disable + OGL HW composition to disable OMTC with older firefox builds, also + set 'layers.offmainthreadcomposition.enabled': False + """ + preferences = { + "layout.frame_rate": 0, + "docshell.event_starvation_delay_hint": 1, + "dom.send_after_paint_to_content": False, + } + filters = filter.ignore_first.prepare(1) + filter.median.prepare() + unit = "ms" + pine = False + + +@register_test() +class damp(PageloaderTest): + """ + Devtools At Maximum Performance + Tests the speed of DevTools toolbox open, close, and page reload + for each tool, across a very simple and very complicated page. + """ + + tpmanifest = "${talos}/tests/devtools/damp.manifest" + extensions = ["${talos}/pageloader", "${talos}/tests/devtools/addon"] + cycles = 5 + tpcycles = 1 + tppagecycles = 5 + tploadnocache = True + tpmozafterpaint = False + gecko_profile_interval = 10 + gecko_profile_entries = 10000000 + win_counters = w7_counters = linux_counters = mac_counters = None + filters = filter.ignore_first.prepare(1) + filter.median.prepare() + preferences = {"devtools.memory.enabled": True} + unit = "ms" + subtest_alerts = True + perfherder_framework = "devtools" + + +@register_test() +class glterrain(PageloaderTest): + """ + Simple rotating WebGL scene with moving light source over a + textured terrain. + Measures average frame intervals. + The same sequence is measured 4 times for combinations of alpha and + antialias as canvas properties. + Each of these 4 runs is reported as a different test name. + """ + + tpmanifest = "${talos}/tests/webgl/glterrain.manifest" + tpcycles = 1 + tppagecycles = 25 + tploadnocache = True + tpmozafterpaint = False + tpchrome = False + timeout = 600 + gecko_profile_interval = 10 + gecko_profile_entries = 2000000 + win_counters = w7_counters = linux_counters = mac_counters = None + """ ASAP mode """ + preferences = { + "layout.frame_rate": 0, + "docshell.event_starvation_delay_hint": 1, + "dom.send_after_paint_to_content": False, + } + filters = filter.ignore_first.prepare(1) + filter.median.prepare() + unit = "frame interval" + + +@register_test() +class glvideo(PageloaderTest): + """ + WebGL video texture update with 1080p video. + Measures mean tick time across 100 ticks. + (each tick is texImage2D(