예제 #1
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.TEST_URL = "https://www.mediawiki.org/wiki/MediaWiki"

        self.ATTRIBUTES = {
            "navigationStart": 0,
            "unloadEventStart": 0,
            "unloadEventEnd": 0,
            "redirectStart": 0,
            "redirectEnd": 0,
            "fetchStart": 0,
            "domainLookupStart": 0,
            "domainLookupEnd": 0,
            "connectStart": 0,
            "connectEnd": 0,
            "secureConnectionStart": 0,
            "requestStart": 0,
            "responseStart": 0,
            "responseEnd": 0,
            "domLoading": 0,
            "domInteractive": 0,
            "domContentLoadedEventStart": 0,
            "domContentLoadedEventEnd": 0,
            "domComplete": 0,
            "loadEventStart": 0,
            "loadEventEnd": 0,
        }
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.URL = "file://%s/testfile.pdf" % ts.t['options']['test_data_dir']
예제 #3
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.URL = "file://%s/testfile.pdf" % ts.t['options']['test_data_dir']
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.URL = 'https://pinning-test.badssl.com/'
예제 #5
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.set_context("chrome")
     self.win = self.marionette.current_window_handle
     self.marionette.execute_script("window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen');")
     self.marionette.switch_to_window('foo')
     self.assertNotEqual(self.win, self.marionette.current_window_handle)
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.svg_dir = "file://%s/svg/" % ts.t['options']['test_data_dir']
예제 #7
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.TEST_URL = "https://www.mediawiki.org/wiki/MediaWiki"

        self.ATTRIBUTES = {
                "navigationStart": 0,
                "unloadEventStart": 0,
                "unloadEventEnd": 0,
                "redirectStart": 0,
                "redirectEnd": 0,
                "fetchStart": 0,
                "domainLookupStart": 0,
                "domainLookupEnd": 0,
                "connectStart": 0,
                "connectEnd": 0,
                "secureConnectionStart": 0,
                "requestStart": 0,
                "responseStart": 0,
                "responseEnd": 0,
                "domLoading": 0,
                "domInteractive": 0,
                "domContentLoadedEventStart": 0,
                "domContentLoadedEventEnd": 0,
                "domComplete": 0,
                "loadEventStart": 0,
                "loadEventEnd": 0,
                }
예제 #8
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     if self.marionette.session_capabilities["platformName"] == "darwin":
         self.mod_key = Keys.META
     else:
         self.mod_key = Keys.CONTROL
     self.action = Actions(self.marionette)
예제 #9
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.URL = 'https://pinning-test.badssl.com/'
예제 #10
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.logger = mozlog.structured.structuredlog.get_default_logger()
        self.marionette.set_context('chrome')
        self._resultsDir = self.testvars["resultsDir"]

        self._binary = self.testvars['bin']
        self._run_local = self.testvars.get('run_local', False)

        # Cleanup our files from previous runs.
        for patt in ('memory-report-*.json.gz',
                     'perfherder_data.json',
                     'dmd-*.json.gz'):
            for f in glob.glob(os.path.join(self._resultsDir, patt)):
                os.unlink(f)

        # Optional testvars.
        self._pages_to_load = self.testvars.get("entities", 0)
        self._iterations = self.testvars.get("iterations", ITERATIONS)
        self._perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE)
        self._settleWaitTime = self.testvars.get("settleWaitTime", SETTLE_WAIT_TIME)
        self._maxTabs = self.testvars.get("maxTabs", MAX_TABS)
        self._dmd = self.testvars.get("dmd", False)

        self.logger.info("areweslimyet run by %d pages, %d iterations,"
                         " %d perTabPause, %d settleWaitTime"
                         % (self._pages_to_load, self._iterations,
                            self._perTabPause, self._settleWaitTime))
        self.reset_state()
예제 #11
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     if self.marionette.session_capabilities["platformName"] == "darwin":
         self.mod_key = Keys.META
     else:
         self.mod_key = Keys.CONTROL
     self.action = Actions(self.marionette)
예제 #12
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.marionette.enforce_gecko_prefs({"dom.webcomponents.enabled": True})
        self.marionette.navigate(self.marionette.absolute_url("test_shadow_dom.html"))

        self.host = self.marionette.find_element(By.ID, "host")
        self.marionette.switch_to_shadow_root(self.host)
        self.button = self.marionette.find_element(By.ID, "button")
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.enforce_gecko_prefs(
         {"marionette.test.bool": True,
          "marionette.test.string": "testing",
          "marionette.test.int": 3
          })
     self.marionette.set_context("chrome")
예제 #14
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.HTTP_URL = "http://httpbin.org/"
        self.HTTPS_URL = "https://httpbin.org/"
예제 #15
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.root_window = self.marionette.current_window_handle
     self.marionette.set_context("chrome")
     self.marionette.execute_script(
         "window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen')")
     self.marionette.switch_to_window("foo")
     self.assertNotEqual(self.root_window, self.marionette.current_window_handle)
예제 #16
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.setUpScriptData()

        self.reset_profile_path = None
        self.desktop_backup_path = None

        self.createProfileData()
예제 #17
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.setUpScriptData()

        self.reset_profile_path = None
        self.desktop_backup_path = None

        self.createProfileData()
예제 #18
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.http_url = "%s/noscript/" % ts.t['options']['test_data_url']
        self.https_url = "%s/noscript/" % ts.t['options']['test_data_url_https']
예제 #19
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.http_url = "%s/noscript/" % ts.t['options']['test_data_url']
        self.https_url = "%s/noscript/" % ts.t['options']['test_data_url_https']
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.HTTP_URL = "http://httpbin.org/"
        self.HTTPS_URL = "https://httpbin.org/"
예제 #21
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     test_url = self.marionette.absolute_url('test.html')
     self.marionette.navigate(test_url)
     self.COOKIE_A = {"name": "foo",
                      "value": "bar",
                      "path": "/",
                      "secure": False}
예제 #22
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.enforce_gecko_prefs({
         "marionette.test.bool": True,
         "marionette.test.string": "testing",
         "marionette.test.int": 3
     })
     self.marionette.set_context("chrome")
예제 #23
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.linter = Linter(
         ResourceUriFileReader(self.marionette),
         JSHintEngine(self.marionette,
                      self._read_local_file(self.JSHINT_PATH),
                      self._read_local_file(self.JSHINTRC_PATH)),
         self._get_extended_error_message)
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.URLs = [
            'chrome://torlauncher/content/network-settings-wizard.xul',
        ]
예제 #25
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.pid = self.marionette.process_id
        self.session_id = self.marionette.session_id

        self.assertNotEqual(self.marionette.get_pref("browser.startup.page"),
                            3)
        self.marionette.set_pref("browser.startup.page", 3)
예제 #26
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.marionette.enforce_gecko_prefs(
            {"dom.webcomponents.enabled": True})
        self.marionette.navigate(
            self.marionette.absolute_url("test_shadow_dom.html"))

        self.host = self.marionette.find_element(By.ID, "host")
        self.marionette.switch_to_shadow_root(self.host)
        self.button = self.marionette.find_element(By.ID, "button")
예제 #27
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.pid = self.marionette.process_id
        self.session_id = self.marionette.session_id

        # Use a preference to check that the restart was successful. If its
        # value has not been forced, a restart will cause a reset of it.
        self.assertNotEqual(self.marionette.get_pref("startup.homepage_welcome_url"),
                            "about:")
        self.marionette.set_pref("startup.homepage_welcome_url", "about:")
    def setUp(self):
        MarionetteTestCase.setUp(self)

        # shortcuts to improve readability of these tests
        self.chrome = self.marionette.CONTEXT_CHROME
        self.content = self.marionette.CONTEXT_CONTENT

        test_url = self.marionette.absolute_url("empty.html")
        self.marionette.navigate(test_url)
        self.marionette.set_context(self.content)
        self.assertEquals(self.get_context(), self.content)
예제 #29
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.pid = self.marionette.process_id
        self.session_id = self.marionette.session_id

        # Use a preference to check that the restart was successful. If its
        # value has not been forced, a restart will cause a reset of it.
        self.assertNotEqual(
            self.marionette.get_pref("startup.homepage_welcome_url"), "about:")
        self.marionette.set_pref("startup.homepage_welcome_url", "about:")
예제 #30
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.logger = mozlog.structured.structuredlog.get_default_logger()

        with open(PAGE_SET) as page_set:
            self.pages = json.load(page_set)

        self.marionette.set_context('chrome')
        self.marionette.timeout.page_load = 20
        self.marionette.execute_script(CLEAR_PING_SCRIPT)
        self.logger.info("cleared telemetry ping")
예제 #31
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        # shortcuts to improve readability of these tests
        self.chrome = self.marionette.CONTEXT_CHROME
        self.content = self.marionette.CONTEXT_CONTENT

        test_url = self.marionette.absolute_url("empty.html")
        self.marionette.navigate(test_url)
        self.marionette.set_context(self.content)
        self.assertEquals(self.get_context(), self.content)
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.test_page_url = ts.t['test']['fpcentral_url']

        if 'timeout' in ts.t['test']:
            self.timeout = ts.t['test']['timeout']
        else:
            self.timeout = 50000
예제 #33
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.test_page_url = ts.t['test']['fpcentral_url']

        if 'timeout' in ts.t['test']:
            self.timeout = ts.t['test']['timeout']
        else:
            self.timeout = 50000
예제 #34
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.logger = mozlog.structured.structuredlog.get_default_logger()
        self.logger.info("setting up!")

        self.marionette.set_context('chrome')

        self._webroot_dir = self.testvars["webRootDir"]
        self._resultsDir = self.testvars["resultsDir"]
        # Be conservative in what we delete automatically.
        for f in glob.glob(
                os.path.join(self._resultsDir, 'memory-report-*.json.gz')):
            os.unlink(f)
        for f in glob.glob(
                os.path.join(self._resultsDir, 'perfherder_data.json')):
            os.unlink(f)
        for f in glob.glob(os.path.join(self._resultsDir, 'dmd-*.json.gz')):
            os.unlink(f)

        self._urls = []

        urls = None
        default_tp5n_manifest = os.path.join(self._webroot_dir,
                                             'page_load_test', 'tp5n',
                                             'tp5n.manifest')
        tp5n_manifest = self.testvars.get("pageManifest",
                                          default_tp5n_manifest)
        with open(tp5n_manifest) as fp:
            urls = fp.readlines()
        urls = map(lambda x: x.replace('localhost', 'localhost:{}'), urls)

        # Optional testvars.
        self._pages_to_load = self.testvars.get("entities", len(urls))
        self._iterations = self.testvars.get("iterations", ITERATIONS)
        self._perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE)
        self._settleWaitTime = self.testvars.get("settleWaitTime",
                                                 SETTLE_WAIT_TIME)
        self._maxTabs = self.testvars.get("maxTabs", MAX_TABS)
        self._dmd = self.testvars.get("dmd", False)

        self._webservers = webservers.WebServers("localhost", 8001,
                                                 self._webroot_dir,
                                                 self._pages_to_load)
        self._webservers.start()
        for url, server in zip(urls, self._webservers.servers):
            self._urls.append(url.strip().format(server.port))

        self.logger.info(
            "areweslimyet run by %d pages, %d iterations, %d perTabPause, %d settleWaitTime"
            % (self._pages_to_load, self._iterations, self._perTabPause,
               self._settleWaitTime))
        self.reset_state()
        self.logger.info("done setting up!")
예제 #35
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.marionette.set_context('chrome')
        self.logger = mozlog.structured.structuredlog.get_default_logger()

        self.urls = self.testvars["urls"]
        self.pages_to_load = self.testvars.get("entities", len(self.urls))
        self.perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE)
        self.settleWaitTime = self.testvars.get("settleWaitTime",
                                                SETTLE_WAIT_TIME)
        self.maxTabs = self.testvars.get("maxTabs", MAX_TABS)
        self.stats = self.testvars.get("stats")
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.max = self.marionette.execute_script("""
            return {
              width: window.screen.availWidth,
              height: window.screen.availHeight,
            }""", sandbox=None)

        # ensure window is not fullscreen
        actual = self.marionette.set_window_rect(
            width=self.max["width"] - 100, height=self.max["height"] - 100)
        self.assertNotEqual(actual["width"], self.max["width"])
        self.assertNotEqual(actual["height"], self.max["height"])

        self.original_size = actual
예제 #37
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.max = self.marionette.execute_script("""
            return {
              width: window.screen.availWidth,
              height: window.screen.availHeight,
            }""", sandbox=None)

        # ensure window is not maximized
        self.marionette.set_window_rect(
            width=self.max["width"] - 100, height=self.max["height"] - 100)
        actual = self.marionette.window_rect
        self.assertNotEqual(actual["width"], self.max["width"])
        self.assertNotEqual(actual["height"], self.max["height"])

        self.original_size = actual
예제 #38
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        if ts.t['test']['remote']:
            test_data_url = ts.t['options']['test_data_url']
        else:
            test_data_url = "file://%s" % ts.t['options']['test_data_dir']
        self.test_page_url = '%s/%s.html' % (test_data_url, ts.t['test']['name'])

        if ts.t['test']['timeout']:
            self.timeout = ts.t['test']['timeout']
        else:
            self.timeout = 50000
예제 #39
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.logger = mozlog.structured.structuredlog.get_default_logger()
        self.logger.info("setting up!")

        self.marionette.set_context('chrome')

        self._webroot_dir = self.testvars["webRootDir"]
        self._resultsDir = self.testvars["resultsDir"]
        # Be conservative in what we delete automatically.
        for f in glob.glob(os.path.join(self._resultsDir, 'memory-report-*.json.gz')):
            os.unlink(f)
        for f in glob.glob(os.path.join(self._resultsDir, 'perfherder_data.json')):
            os.unlink(f)
        for f in glob.glob(os.path.join(self._resultsDir, 'dmd-*.json.gz')):
            os.unlink(f)

        self._urls = []

        urls = None
        default_tp5n_manifest = os.path.join(self._webroot_dir, 'page_load_test', 'tp5n',
                                             'tp5n.manifest')
        tp5n_manifest = self.testvars.get("pageManifest", default_tp5n_manifest)
        with open(tp5n_manifest) as fp:
            urls = fp.readlines()
        urls = map(lambda x:x.replace('localhost', 'localhost:{}'), urls)

        # Optional testvars.
        self._pages_to_load = self.testvars.get("entities", len(urls))
        self._iterations = self.testvars.get("iterations", ITERATIONS)
        self._perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE)
        self._settleWaitTime = self.testvars.get("settleWaitTime", SETTLE_WAIT_TIME)
        self._maxTabs = self.testvars.get("maxTabs", MAX_TABS)
        self._dmd = self.testvars.get("dmd", False)

        self._webservers = webservers.WebServers("localhost",
                                                 8001,
                                                 self._webroot_dir,
                                                 self._pages_to_load)
        self._webservers.start()
        for url, server in zip(urls, self._webservers.servers):
            self._urls.append(url.strip().format(server.port))

        self.logger.info("areweslimyet run by %d pages, %d iterations, %d perTabPause, %d settleWaitTime"
                         % (self._pages_to_load, self._iterations, self._perTabPause, self._settleWaitTime))
        self.reset_state()
        self.logger.info("done setting up!")
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        if ts.t['test']['remote']:
            test_data_url = ts.t['options']['test_data_url']
        else:
            test_data_url = "file://%s" % ts.t['options']['test_data_dir']
        self.test_page_url = '%s/%s.html' % (test_data_url,
                                             ts.t['test']['name'])

        if ts.t['test']['timeout']:
            self.timeout = ts.t['test']['timeout']
        else:
            self.timeout = 50000
예제 #41
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.logger = mozlog.structured.structuredlog.get_default_logger()
        self.logger.info("setting up!")

        self.marionette.set_context('chrome')

        self._webroot_dir = os.path.join(os.getcwd(), 'page_load_test')
        if not os.path.exists(self._webroot_dir):
            os.mkdir(self._webroot_dir)
        self._webservers = webservers.WebServers("localhost", 8001,
                                                 os.getcwd(), 100)
        self._webservers.start()
        test_sites = []

        with open(os.path.join(self._webroot_dir, 'tp5n',
                               'tp5n.manifest')) as fp:
            urls = fp.readlines()
        if urls:
            urls = map(lambda x: x.replace('localhost', 'localhost:{}'), urls)
            self._urls = urls
        else:
            urls = TEST_SITES_TEMPLATES

        for url, server in zip(urls, self._webservers.servers):
            test_sites.append(url.format(server.port))

        self._urls = self.testvars.get("urls", test_sites)
        self._pages_to_load = self.testvars.get("entities", len(self._urls))
        self._iterations = self.testvars.get("iterations", ITERATIONS)
        self._perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE)
        self._settleWaitTime = self.testvars.get("settleWaitTime",
                                                 SETTLE_WAIT_TIME)
        self._maxTabs = self.testvars.get("maxTabs", MAX_TABS)
        self._resultsDir = os.path.join(os.getcwd(), "tests", "results")

        self.logger.info(
            "areweslimyet run by %d pages, %d iterations, %d perTabPause,%d settleWaitTime"
            % (self._pages_to_load, self._iterations, self._perTabPause,
               self._settleWaitTime))
        self.reset_state()
        self.logger.info("done setting up!")
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.kSecuritySettings = {
            #                                                 1-high 2-m    3-m    4-low
            "javascript.options.ion": [0, False, False, False, True],
            "javascript.options.baselinejit": [0, False, False, False, True],
            "javascript.options.native_regexp": [0, False, False, False, True],
            "media.webaudio.enabled": [0, False, False, False, True],
            "mathml.disabled": [0, True, True, True, False],
            "gfx.font_rendering.opentype_svg.enabled":
            [0, False, False, True, True],
            "svg.disabled": [0, True, False, False, False],
        }

        # Settings for Tor Browser 6.0.* versions
        self.kSecuritySettings_60 = {}
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        # This variable contains settings we want to check on all versions of
        # Tor Browser. See below for settings to check on specific versions.
        #
        # Most of the following checks and comments are taken from 
        # https://github.com/arthuredelstein/tor-browser/blob/12620/tbb-tests/browser_tor_TB4.js 
        self.SETTINGS = {
                "privacy.clearOnShutdown.cache": True,
                "privacy.clearOnShutdown.cookies": True,
                "privacy.clearOnShutdown.downloads": True,
                "privacy.clearOnShutdown.formdata": True,
                "privacy.clearOnShutdown.history": True,
                "privacy.clearOnShutdown.sessions": True,

                # #16632 : Turn on the background autoupdater
                "app.update.auto": True,

                "browser.search.update": False,
                "browser.rights.3.shown": True,

                # startup.homepage_welcome_url is changed by:
                # marionette/firefox-ui-tests/firefox_ui_harness/runners/base.py
                #"startup.homepage_welcome_url": "",

                # Disk activity: Disable Browsing History Storage
                "browser.privatebrowsing.autostart": True,
                "browser.cache.disk.enable": False,
                "browser.cache.offline.enable": False,
                "dom.indexedDB.enabled": True,
                "permissions.memory_only": True,
                "network.cookie.lifetimePolicy": 2,
                "browser.download.manager.retention": 1,
                "security.nocertdb": True,

                # Disk activity: TBB Directory Isolation
                "browser.download.useDownloadDir": False,
                "browser.shell.checkDefaultBrowser": False,
                "browser.download.manager.addToRecentDocs": False,

                # Misc privacy: Disk
                "signon.rememberSignons": False,
                "browser.formfill.enable": False,
                "signon.autofillForms": False,
                "browser.sessionstore.privacy_level": 2,

                # Misc privacy: Remote
                "browser.send_pings": False,
                "geo.enabled": False,
                "geo.wifi.uri": "",
                "browser.search.suggest.enabled": False,
                "browser.safebrowsing.enabled": False,
                "browser.safebrowsing.malware.enabled": False,
                "browser.download.manager.scanWhenDone": False, # prevents AV remote reporting of downloads
                "extensions.ui.lastCategory": "addons://list/extension",
                "datareporting.healthreport.service.enabled": False, # Yes, all three of these must be set
                "datareporting.healthreport.uploadEnabled": False,
                "datareporting.policy.dataSubmissionEnabled": False,
                "security.mixed_content.block_active_content": True, # Activated with bug #21323

                # Don't fetch a localized remote page that Tor Browser interacts with, see
                # #16727. And, yes, it is "reportUrl" and not "reportURL".
                "datareporting.healthreport.about.reportUrl": "data:text/plain,",
                "datareporting.healthreport.about.reportUrlUnified": "data:text/plain,",

                # Make sure Unified Telemetry is really disabled, see: #18738.
                "toolkit.telemetry.unified": False,
                "toolkit.telemetry.enabled": False,
                # No experiments, use Tor Browser. See 21797.
                "experiments.enabled": False,
                "browser.syncPromoViewsLeftMap": "{\"addons\":0, \"passwords\":0, \"bookmarks\":0}", # Don't promote sync
                "identity.fxaccounts.enabled": False, # Disable sync by default
                "services.sync.engine.prefs": False, # Never sync prefs, addons, or tabs with other browsers
                "services.sync.engine.addons": False,
                "services.sync.engine.tabs": False,
                "extensions.getAddons.cache.enabled": False, # https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/
                "browser.newtabpage.preload": False, # Bug 16316 - Avoid potential confusion over tiles for now.
                "browser.search.countryCode": "US", # The next three prefs disable GeoIP search lookups (#16254)
                "browser.search.region": "US",
                "browser.search.geoip.url": "",
                "browser.fixup.alternate.enabled": False, # Bug #16783: Prevent .onion fixups
                # Make sure there is no Tracking Protection active in Tor Browser, see: #17898.
                "privacy.trackingprotection.pbmode.enabled": False,
                # Disable the Pocket extension (Bug #18886)
                "browser.pocket.enabled": False,
                "browser.pocket.api": "",
                "browser.pocket.site": "",
                "network.http.referer.hideOnionSource": True,

                # Fingerprinting
                "webgl.disable-extensions": True,
                "webgl.disable-fail-if-major-performance-caveat": True,
                "webgl.enable-webgl2": False,
                "gfx.downloadable_fonts.fallback_delay": -1,
                "general.appname.override": "Netscape",
                "general.appversion.override": "5.0 (Windows)",
                "general.oscpu.override": "Windows NT 6.1",
                "general.platform.override": "Win32",
                "general.productSub.override": "20100101",
                "general.buildID.override": "20100101",
                "browser.startup.homepage_override.buildID": "20100101",
                "general.useragent.vendor": "",
                "general.useragent.vendorSub": "",
                "dom.enable_performance": False,
                "plugin.expose_full_path": False,
                "browser.zoom.siteSpecific": False,
                "intl.charset.default": "windows-1252",
                "browser.link.open_newwindow.restriction": 0, # Bug 9881: Open popups in new tabs (to avoid fullscreen popups)
                "dom.gamepad.enabled": False, # bugs.torproject.org/13023
                # Disable video statistics fingerprinting vector (bug 15757)
                "media.video_stats.enabled": False,
                # Set video VP9 to 0 for everyone (bug 22548)
                "media.benchmark.vp9.threshold": 0,
                # Disable device sensors as possible fingerprinting vector (bug 15758)
                "device.sensors.enabled": False,
                "dom.enable_resource_timing": False, # Bug 13024: To hell with this API
                "dom.enable_user_timing": False, # Bug 16336: To hell with this API
                "privacy.resistFingerprinting": True,
                "privacy.resistFingerprinting.block_mozAddonManager": True, # Bug 26114
                "dom.event.highrestimestamp.enabled": True, # Bug #17046: "Highres" (but truncated) timestamps prevent uptime leaks
                "privacy.suppressModifierKeyEvents": True, # Bug #17009: Suppress ALT and SHIFT events"
                "ui.use_standins_for_native_colors": True, # https://bugzilla.mozilla.org/232227
                "privacy.use_utc_timezone": True,
                "media.webspeech.synth.enabled": False, # Bug 10283: Disable SpeechSynthesis API
                "dom.webaudio.enabled": False, # Bug 13017: Disable Web Audio API
                "dom.maxHardwareConcurrency": 1, # Bug 21675: Spoof single-core cpu
                "dom.w3c_touch_events.enabled": 0, # Bug 10286: Always disable Touch API
                "dom.w3c_pointer_events.enabled": False,
                "dom.vr.enabled": False, # Bug 21607: Disable WebVR for now
                # Disable randomised Firefox HTTP cache decay user test groups (Bug: 13575)
                "security.webauth.webauthn": False, # Bug 26614: Disable Web Authentication API for now
                "browser.cache.frecency_experiment": -1,
                
                # Third party stuff
                "network.cookie.cookieBehavior": 1,
                "privacy.firstparty.isolate": True,
                "network.http.spdy.allow-push": False, # Disabled for now. See https://bugs.torproject.org/27127
                "network.predictor.enabled": False, # Temporarily disabled. See https://bugs.torproject.org/16633
                
                # Proxy and proxy security
                "network.proxy.socks": "127.0.0.1",
                "network.proxy.socks_remote_dns": True,
                "network.proxy.no_proxies_on": "", # For fingerprinting and local service vulns (#10419)
                "network.proxy.type": 1,
                "network.security.ports.banned": "9050,9051,9150,9151",
                "network.dns.disablePrefetch": True,
                "network.protocol-handler.external-default": False,
                "network.protocol-handler.external.mailto": False,
                "network.protocol-handler.external.news": False,
                "network.protocol-handler.external.nntp": False,
                "network.protocol-handler.external.snews": False,
                "network.protocol-handler.warn-external.mailto": True,
                "network.protocol-handler.warn-external.news": True,
                "network.protocol-handler.warn-external.nntp": True,
                "network.protocol-handler.warn-external.snews": True,
                "plugins.click_to_play": True,
                "plugin.state.flash": 1,
                "media.peerconnection.enabled": False, # Disable WebRTC interfaces
                # Disables media devices but only if `media.peerconnection.enabled` is set to
                # `false` as well. (see bug 16328 for this defense-in-depth measure)
                "media.navigator.enabled": False,
                # GMPs: We make sure they don't show up on the Add-on panel and confuse users.
                # And the external update/donwload server must not get pinged. We apply a
                # clever solution for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769716.
                "media.gmp-provider.enabled": False,
                "media.gmp-manager.url.override": "data:text/plain,",
                # Since ESR52 it is not enough anymore to block pinging the GMP update/download
                # server. There is a local fallback that must be blocked now as well. See:
                # https://bugzilla.mozilla.org/show_bug.cgi?id=1267495.
                "media.gmp-manager.updateEnabled": False,
                # Mozilla is relying on preferences to make sure no DRM blob is downloaded and
                # run. Even though those prefs should be set correctly by specifying
                # --disable-eme (which we do), we disable all of them here as well for defense
                # in depth.
                "browser.eme.ui.enabled": False,
                "media.gmp-eme-adobe.visible": False,
                "media.gmp-eme-adobe.enabled": False,
                "media.gmp-widevinecdm.visible": False,
                "media.gmp-widevinecdm.enabled": False,
                "media.eme.enabled": False,
                "media.eme.apiVisible": False,
                # WebIDE can bypass proxy settings for remote debugging. It also downloads
                # some additional addons that we have not reviewed. Turn all that off.
                "devtools.webide.autoinstallADBHelper": False,
                "devtools.webide.autoinstallFxdtAdapters": False,
                "devtools.webide.enabled": False,
                "devtools.appmanager.enabled": False,
                # The in-browser debugger for debugging chrome code is not coping with our
                # restrictive DNS look-up policy. We use "127.0.0.1" instead of "localhost" as
                # a workaround. See bug 16523 for more details.
                "devtools.debugger.chrome-debugging-host": "127.0.0.1",
                # Disable using UNC paths (bug 26424 and Mozilla's bug 1413868)
                "network.file.disable_unc_paths": True,
                # Enhance our treatment of file:// to avoid proxy bypasses (see Mozilla's bug
                # 1412081)
                "network.file.path_blacklist": "/net",

                # Network and performance
                "security.ssl.enable_false_start": True,
                "network.http.connection-retry-timeout": 0,
                "network.http.max-persistent-connections-per-proxy": 256,
                "network.manage-offline-status": False,
                # No need to leak things to Mozilla, see bug 21790
                "network.captive-portal-service.enabled": False,
                # As a "defense in depth" measure, configure an empty push server URL (the
                # DOM Push features are disabled by default via other prefs).
                "dom.push.serverURL": "",

                
                # Extension support
                "extensions.autoDisableScopes": 0,
                "extensions.bootstrappedAddons": "{}",
                "extensions.checkCompatibility.4.*": False,
                "extensions.enabledAddons": "https-everywhere%40eff.org:3.1.4,%7B73a6fe31-595d-460b-a920-fcc0f8843232%7D:2.6.6.1,torbutton%40torproject.org:1.5.2,ubufox%40ubuntu.com:2.6,tor-launcher%40torproject.org:0.1.1pre-alpha,%7B972ce4c6-7e08-4474-a285-3208198ce6fd%7D:17.0.5",
                "extensions.enabledItems": "[email protected]:,{73a6fe31-595d-460b-a920-fcc0f8843232}:1.9.9.57,{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.4,{972ce4c6-7e08-4474-a285-3208198ce6fd}:3.5.8",
                # extensions.enabledScopes is set to 5 by marionette_driver
                #"extensions.enabledScopes": 1,
                "extensions.pendingOperations": False,
                "xpinstall.whitelist.add": "",
                "xpinstall.whitelist.add.36": "",
                # We don't know what extensions Mozilla is advertising to our users and we
                # don't want to have some random Google Analytics script running either on the
                # about:addons page, see bug 22073 and 22900.
                "extensions.getAddons.showPane": False,
                # Show our legacy extensions directly on about:addons and get rid of the
                # warning for the default theme.
                "extensions.legacy.exceptions": "{972ce4c6-7e08-4474-a285-3208198ce6fd},[email protected],[email protected]",
                # Bug 26114: Allow NoScript to access addons.mozilla.org etc.
                "extensions.webextensions.restrictedDomains": "",

                # Audio_data is deprecated in future releases, but still present
                # in FF24. This is a dangerous combination (spotted by iSec)
                "media.audio_data.enabled": False,
                
                "dom.enable_resource_timing": False,

                # If true, remote JAR files will not be opened, regardless of content type
                # Patch written by Jeff Gibat (iSEC).
                "network.jar.block-remote-files": True,

                # Disable RC4 fallback. This will go live in Firefox 44, Chrome and IE/Edge:
                # https://blog.mozilla.org/security/2015/09/11/deprecating-the-rc4-cipher/
                "security.tls.unrestricted_rc4_fallback": False,

                # Enforce certificate pinning, see: https://bugs.torproject.org/16206
                "security.cert_pinning.enforcement_level": 2,

                # Don't allow MitM via Microsoft Family Safety, see bug 21686
                "security.family_safety.mode": 0,

                # Enforce SHA1 deprecation, see: bug 18042.
                "security.pki.sha1_enforcement_level": 2,

                # Disable the language pack signing check for now, see: bug 26465
                "extensions.langpacks.signatures.required": False,

                # Avoid report TLS errors to Mozilla. We might want to repurpose this feature
                # one day to help detecting bad relays (which is bug 19119). For now we just
                # hide the checkbox, see bug 22072.
                "security.ssl.errorReporting.enabled": False,

                # Workaround for https://bugs.torproject.org/13579. Progress on
                # `about:downloads` is only shown if the following preference is set to `true`
                # in case the download panel got removed from the toolbar.
                "browser.download.panel.shown": True,

                # Treat .onions as secure
                "dom.securecontext.whitelist_onions": True,

                # checking torbrowser.version match the version from the filename
                "torbrowser.version": ts.t["tbbinfos"]["version"],
                
                # Disable device sensors as possible fingerprinting vector (bug 15758)
                "device.sensors.enabled": False,
                # Disable video statistics fingerprinting vector (bug 15757)
                "media.video_stats.enabled": False,

                "startup.homepage_override_url": "https://blog.torproject.org/category/tags/tor-browser",
                "network.jar.block-remote-files": True,
                }

        # Settings for the Tor Browser 8.0
        self.SETTINGS_80 = {
                }

        # Settings for the Tor Browser 8.5 and Nightly
        self.SETTINGS_85 = {
                }
예제 #44
0
    def setUp(self):
        MarionetteTestCase.setUp(self)
        self.setUpScriptData()

        self.cleanups = []
    def setUp(self):
        MarionetteTestCase.setUp(self)

        ts = testsuite.TestSuite()
        self.ts = ts

        self.expectedObjects = [
                "AbortController",
                "AbortSignal",
                "addEventListener",
                "Array",
                "ArrayBuffer",
                "atob",
                "Blob",
                "Boolean",
                "BroadcastChannel",
                "btoa",
                "Cache",
                "caches",
                "CacheStorage",
                "clearInterval",
                "clearTimeout",
                "close",
                "CloseEvent",
                "console",
                "constructor",
                "createImageBitmap",
                "crypto",
                "Crypto",
                "CustomEvent",
                "DataView",
                "Date",
                "decodeURI",
                "decodeURIComponent",
                "DedicatedWorkerGlobalScope",
                "__defineGetter__",
                "__defineSetter__",
                "Directory",
                "dispatchEvent",
                "DOMCursor",
                "DOMError",
                "DOMException",
                "DOMRequest",
                "DOMStringList",
                "dump",
                "encodeURI",
                "encodeURIComponent",
                "Error",
                "ErrorEvent",
                "escape",
                "eval",
                "EvalError",
                "Event",
                "EventSource",
                "EventTarget",
                "fetch",
                "File",
                "FileList",
                "FileReader",
                "FileReaderSync",
                "Float32Array",
                "Float64Array",
                "FormData",
                "Function",
                "getAllPropertyNames",
                "hasOwnProperty",
                "Headers",
                "IDBCursor",
                "IDBCursorWithValue",
                "IDBDatabase",
                "IDBFactory",
                "IDBIndex",
                "IDBKeyRange",
                "IDBObjectStore",
                "IDBOpenDBRequest",
                "IDBRequest",
                "IDBTransaction",
                "IDBVersionChangeEvent",
                "ImageBitmap",
                "ImageBitmapRenderingContext",
                "ImageData",
                "importScripts",
                "indexedDB",
                "Infinity",
                "Int16Array",
                "Int32Array",
                "Int8Array",
                "InternalError",
                "Intl",
                "isFinite",
                "isNaN",
                "isPrototypeOf",
                "isSecureContext",
                "Iterator",
                "JSON",
                "location",
                "__lookupGetter__",
                "__lookupSetter__",
                "Map",
                "Math",
                "MessageChannel",
                "MessageEvent",
                "MessagePort",
                "name",
                "NaN",
                "navigator",
                "Notification",
                "Number",
                "Object",
                "onclose",
                "onerror",
                "onmessage",
                "onmessageerror",
                "onoffline",
                "ononline",
                "origin",
                "parseFloat",
                "parseInt",
                "performance",
                "Performance",
                "PerformanceEntry",
                "PerformanceMark",
                "PerformanceMeasure",
                "PerformanceObserver",
                "PerformanceObserverEntryList",
                "PerformanceResourceTiming",
                "postMessage",
                "ProgressEvent",
                "Promise",
                "propertyIsEnumerable",
                "__proto__",
                "Proxy",
                "RangeError",
                "ReferenceError",
                "Reflect",
                "RegExp",
                "removeEventListener",
                "Request",
                "Response",
                "self",
                "Set",
                "setInterval",
                "setTimeout",
                "StopIteration",
                "StorageManager",
                "String",
                "SubtleCrypto",
                "Symbol",
                "SyntaxError",
                "TextDecoder",
                "TextEncoder",
                "toLocaleString",
                "toSource",
                "toString",
                "TypeError",
                "Uint16Array",
                "Uint32Array",
                "Uint8Array",
                "Uint8ClampedArray",
                "undefined",
                "unescape",
                "uneval",
                "unwatch",
                "URIError",
                "URL",
                "URLSearchParams",
                "valueOf",
                "watch",
                "WeakMap",
                "WeakSet",
                "WebAssembly",
                "WebSocket",
                "Worker",
                "WorkerGlobalScope",
                "WorkerLocation",
                "WorkerNavigator",
                "XMLHttpRequest",
                "XMLHttpRequestEventTarget",
                "XMLHttpRequestUpload",
                ]
예제 #46
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.enforce_gecko_prefs({"prompts.tab_modal.enabled": False})
     self.marionette.navigate(self.marionette.absolute_url('modal_dialogs.html'))
예제 #47
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     BrowserMobProxyTestCaseMixin.setUp(self)
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.set_context(self.marionette.CONTEXT_CHROME)
예제 #49
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.op = self.marionette.protocol
     self.marionette.protocol = 2
예제 #50
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.browser_name = self.marionette.session_capabilities["browserName"]
     self.platform_name = self.marionette.session_capabilities["platformName"]
     self.delete_session()
예제 #51
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     ts = testsuite.TestSuite()
     self.test_page_url = '%s/acid3/' % ts.t['options']['test_data_url']
예제 #52
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.TEST_URL = "https://www.mediawiki.org/wiki/MediaWiki"
        self.RESOURCE_URL = "https://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png"
예제 #53
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     # clears log cache
     self.marionette.get_logs()
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.timeout.implicit = 0
예제 #55
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.delete_session()
     self.capabilities = self.marionette.start_session(
         {"requiredCapabilities": self.insecure_tls})
예제 #56
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.addons = Addons(self.marionette)
예제 #57
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.op = self.marionette.protocol
     self.marionette.protocol = 2
예제 #58
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.delete_session()
     self.marionette.start_session()
예제 #59
0
    def setUp(self):
        MarionetteTestCase.setUp(self)

        self.original_size = self.marionette.window_size