Example #1
0
    def open_urls(self, urls, marionette_port=24242):
        testvars = {
            'perTabPause': self.per_tab_pause,
            'settleWaitTime': self.settle_wait_time,
            'entities': len(urls),
            'urls': urls,
            'stats': self.stats,
        }

        e10s = self.process_count > 0

        prefs = {

            # Don't open the first-run dialog, it loads a video
            'startup.homepage_welcome_url': '',
            'startup.homepage_override_url': '',
            'browser.newtab.url': 'about:blank',

            # make sure e10s is enabled
            "browser.tabs.remote.autostart": e10s,
            "browser.tabs.remote.autostart.1": e10s,
            "browser.tabs.remote.autostart.2": e10s,
            "browser.tabs.remote.autostart.3": e10s,
            "browser.tabs.remote.autostart.4": e10s,
            "browser.tabs.remote.autostart.5": e10s,
            "browser.tabs.remote.autostart.6": e10s,
            "dom.ipc.processCount": self.process_count,

            # prevent "You're using e10s!" dialog from showing up
            "browser.displayedE10SNotice": 1000,

            # override image expiration in hopes of getting less volatile
            # numbers
            "image.mem.surfacecache.min_expiration_ms": 10000,

            # Specify a communications port
            "marionette.defaultPrefs.port": marionette_port,
        }

        if self.proxy:
            # disable network access
            prefs.update({
                "network.proxy.socks": self.proxy,
                "network.proxy.socks_port": self.proxy_port,
                "network.proxy.socks_remote_dns": True,
                "network.proxy.type": 1,  # Socks
            })

        profile = mozprofile.FirefoxProfile(preferences=prefs)

        # TODO(ER): Figure out how to turn on debug level info again
        #commandline.formatter_option_defaults['level'] = 'debug'

        logger = commandline.setup_logging("MarionetteTest", {})
        runner = MarionetteTestRunner(binary=self.binary,
                                      profile=profile,
                                      logger=logger,
                                      startup_timeout=60,
                                      address="localhost:%d" % marionette_port,
                                      gecko_log="gecko_%d.log" %
                                      self.process_count)

        # Add our testvars
        runner.testvars.update(testvars)

        test_path = os.path.join(MODULE_DIR, "test_memory_usage.py")
        try:
            print "Marionette - running test"
            runner.run_tests([test_path])
            failures = runner.failed
        except Exception, e:
            print e
            pass