Ejemplo n.º 1
0
 def create_network(self):
     self.back_channel, self.bridge = jsbridge.wait_and_create_network("127.0.0.1", self.jsbridge_port)
     # Assign listeners to the back channel
     for listener in self.listeners:
         self.back_channel.add_listener(listener[0], **listener[1])
     for global_listener in self.global_listeners:
         self.back_channel.add_global_listener(global_listener)
Ejemplo n.º 2
0
def start_jsbridge(options):
    import mozrunner
    import jsbridge

    resolve_options(options)

    if not options.get('port'):
        options.port = '24242'
    options.port = int(options.port)
    options.binary = options.get('binary')

    plugins = [jsbridge.extension_path, options.path_to_ext_root]
    if options.app == 'firefox':
        profile_class = mozrunner.FirefoxProfile
        preferences = DEFAULT_FIREFOX_PREFS
        runner_class = mozrunner.FirefoxRunner
    elif options.app == 'thunderbird':
        profile_class = mozrunner.ThunderbirdProfile
        preferences = DEFAULT_THUNDERBIRD_PREFS
        runner_class = mozrunner.ThunderbirdRunner

    profile = profile_class(plugins=plugins, preferences=preferences)
    runner = runner_class(profile=profile,
                          binary=options.binary,
                          cmdargs=["-jsbridge", str(options.port)])
    runner.start()

    back_channel, bridge = jsbridge.wait_and_create_network("127.0.0.1",
                                                            options.port)

    return Bunch(back_channel = back_channel,
                 bridge = bridge,
                 runner = runner)
Ejemplo n.º 3
0
def start_jsbridge(options):
    import mozrunner
    import jsbridge

    resolve_options(options)

    if not options.get('port'):
        options.port = '24242'
    options.port = int(options.port)
    options.binary = options.get('binary')

    plugins = [jsbridge.extension_path, options.path_to_ext_root]
    profile = mozrunner.FirefoxProfile(plugins=plugins,
                                       preferences={
                                           'browser.startup.homepage':
                                           'about:blank',
                                           'startup.homepage_welcome_url':
                                           'about:blank'
                                       })
    runner = mozrunner.FirefoxRunner(profile=profile,
                                     binary=options.binary,
                                     cmdargs=["-jsbridge",
                                              str(options.port)])
    runner.start()

    back_channel, bridge = jsbridge.wait_and_create_network(
        "127.0.0.1", options.port)

    return Bunch(back_channel=back_channel, bridge=bridge, runner=runner)
Ejemplo n.º 4
0
def start_jsbridge(options):
    import mozrunner
    import jsbridge

    resolve_options(options)

    if not options.get('port'):
        options.port = '24242'
    options.port = int(options.port)
    options.binary = options.get('binary')

    plugins = [jsbridge.extension_path, options.path_to_ext_root]
    profile = mozrunner.FirefoxProfile(
        plugins=plugins,
        preferences={'browser.startup.homepage' : 'about:blank',
                     'javascript.options.showInConsole' : True,
                     'browser.dom.window.dump.enabled' : True,
                     'startup.homepage_welcome_url' : 'about:blank'}
        )
    runner = mozrunner.FirefoxRunner(profile=profile,
                                     binary=options.binary,
                                     cmdargs=["-jsbridge", str(options.port)])
    runner.start()

    back_channel, bridge = jsbridge.wait_and_create_network("127.0.0.1",
                                                            options.port)

    return Bunch(back_channel = back_channel,
                 bridge = bridge,
                 runner = runner)
Ejemplo n.º 5
0
def start_jsbridge(options):
    import mozrunner
    import jsbridge

    resolve_options(options)

    if not options.get('port'):
        options.port = '24242'
    options.port = int(options.port)
    options.binary = options.get('binary')

    plugins = [jsbridge.extension_path, options.path_to_ext_root]
    if options.app == 'firefox':
        profile_class = mozrunner.FirefoxProfile
        preferences = DEFAULT_FIREFOX_PREFS
        runner_class = mozrunner.FirefoxRunner
    elif options.app == 'thunderbird':
        profile_class = mozrunner.ThunderbirdProfile
        preferences = DEFAULT_THUNDERBIRD_PREFS
        runner_class = mozrunner.ThunderbirdRunner

    profile = profile_class(plugins=plugins, preferences=preferences)
    runner = runner_class(profile=profile,
                          binary=options.binary,
                          cmdargs=["-jsbridge", str(options.port)])
    runner.start()

    back_channel, bridge = jsbridge.wait_and_create_network(
        "127.0.0.1", options.port)

    return Bunch(back_channel=back_channel, bridge=bridge, runner=runner)
Ejemplo n.º 6
0
 def start(self, profile=None, runner=None):
     if not profile:
         profile = self.profile_class(plugins=[jsbridge.extension_path, extension_path])
     if not runner:
         runner = self.runner_class(profile=self.profile, 
                                    cmdargs=["-jsbridge", str(self.jsbridge_port)])
     
     self.profile = profile; self.runner = runner
     self.runner.start()
     
     self.back_channel, self.bridge = jsbridge.wait_and_create_network("127.0.0.1", self.jsbridge_port)
Ejemplo n.º 7
0
    def create_network(self):

        # get the bridge and the back-channel
        self.back_channel, self.bridge = jsbridge.wait_and_create_network("127.0.0.1", self.jsbridge_port)
        # set a timeout on jsbridge actions in order to ensure termination
        self.back_channel.timeout = self.bridge.timeout = self.jsbridge_timeout

        # Assign listeners to the back channel
        for listener in self.listeners:
            self.back_channel.add_listener(listener[0], **listener[1])
        for global_listener in self.global_listeners:
            self.back_channel.add_global_listener(global_listener)
Ejemplo n.º 8
0
    def create_network(self):

        # get the bridge and the back-channel
        self.back_channel, \
        self.bridge = jsbridge.wait_and_create_network("127.0.0.1",
                                                       self.jsbridge_port)
        # set a timeout on jsbridge actions in order to ensure termination
        self.back_channel.timeout = self.bridge.timeout = self.jsbridge_timeout

        # Assign listeners to the back channel
        for listener in self.listeners:
            self.back_channel.add_listener(listener[0], **listener[1])
        for global_listener in self.global_listeners:
            self.back_channel.add_global_listener(global_listener)
Ejemplo n.º 9
0
 def start_runner(self):
     self.runner.start()
     back_channel, bridge = jsbridge.wait_and_create_network("127.0.0.1", self.jsbridge_port)
     
     for listener in self.listeners:
         back_channel.add_listener(listener[0], **listener[1])
     for global_listener in self.global_listeners:
         back_channel.add_global_listener(global_listener)
     
     self.back_channel = back_channel
     self.endRunnerCalled = False
     
     frame = jsbridge.JSObject(bridge, "Components.utils.import('resource://mozmill/modules/frame.js')")
     self.bridge = bridge
     return frame
Ejemplo n.º 10
0
    def start(self):
        self.runner1.start()
        self.runner2.start()

        self.back_channel1, self.bridge1 = jsbridge.wait_and_create_network(
            '127.0.0.1', 24242)
        self.back_channel2, self.bridge2 = jsbridge.wait_and_create_network(
            '127.0.0.1', 24243)
        self.back_channel1.add_listener(self.save_release_listener,
                                        eventType='sitecompare.save')
        self.back_channel2.add_listener(self.save_nightly_listener,
                                        eventType='sitecompare.save')

        self.back_channel1.add_listener(self.framebust_listener,
                                        eventType='sitecompare.framebust')
        self.back_channel2.add_listener(self.framebust_listener,
                                        eventType='sitecompare.framebust')

        self.back_channel1.add_listener(self.timeout_listener,
                                        eventType='sitecompare.timeout')
        self.back_channel2.add_listener(self.timeout_listener,
                                        eventType='sitecompare.timeout')

        # def gl(name, obj):
        #     print 'gl', name, obj
        # self.back_channel1.add_global_listener(gl)
        sleep(5)

        js = "Components.utils.import('resource://sitecompare/modules/compare.js')"
        self.c1 = jsbridge.JSObject(self.bridge1, js)
        self.c2 = jsbridge.JSObject(self.bridge2, js)

        if self.store:
            self.build1 = self.get_build(self.bridge1)
            self.build2 = self.get_build(self.bridge2)
            run = {
                "type": "comparison-run",
                "allsites": self.all_sites,
                "starttime": datetime.now().isoformat(),
                "status": "running"
            }
            run.update(self.comparison_info)
            run['release_buildid'] = self.build1.buildid
            run['release_docid'] = self.build1._id
            run['release_buildstring'] = self.build1.productType + '-' + self.build1[
                'appInfo.platformVersion'] + '-' + self.build1.buildid
            run['nightly_buildid'] = self.build2.buildid

            run['nightly_docid'] = self.build2._id
            run['nightly_buildstring'] = self.build2.productType + '-' + self.build2[
                'appInfo.platformVersion'] + '-' + self.build2.buildid

            self.run_info = self.db.create(run)
        else:
            import uuid
            self.run_info = {"id": str(uuid.uuid1())}

        self.directory = os.path.join(self.base_directory, 'static', 'runs',
                                      self.run_info['id'])
        os.mkdir(self.directory)

        self.do_all_images()

        if self.store:
            obj = self.db.get(self.run_info['id'])
            obj = self.db.get(self.run_info['id'])
            obj['endtime'] = datetime.now().isoformat()
            obj['status'] = "done"
            self.db.update(dict(obj))
Ejemplo n.º 11
0
    def start(self):
        self.runner1.start()
        self.runner2.start()
        
        self.back_channel1, self.bridge1 = jsbridge.wait_and_create_network('127.0.0.1', 24242)
        self.back_channel2, self.bridge2 = jsbridge.wait_and_create_network('127.0.0.1', 24243)
        self.back_channel1.add_listener(self.save_release_listener,
                                        eventType='sitecompare.save')
        self.back_channel2.add_listener(self.save_nightly_listener, 
                                        eventType='sitecompare.save')
        
        self.back_channel1.add_listener(self.framebust_listener,
                                        eventType='sitecompare.framebust')
        self.back_channel2.add_listener(self.framebust_listener, 
                                        eventType='sitecompare.framebust')
        
        self.back_channel1.add_listener(self.timeout_listener,
                                        eventType='sitecompare.timeout')
        self.back_channel2.add_listener(self.timeout_listener, 
                                        eventType='sitecompare.timeout')
                                        
        # def gl(name, obj):
        #     print 'gl', name, obj
        # self.back_channel1.add_global_listener(gl)
        sleep(5)
        
        js = "Components.utils.import('resource://sitecompare/modules/compare.js')"
        self.c1 = jsbridge.JSObject(self.bridge1, js)
        self.c2 = jsbridge.JSObject(self.bridge2, js)
        
        if self.store:
            self.build1 = self.get_build(self.bridge1)
            self.build2 = self.get_build(self.bridge2)
            run = {"type":"comparison-run", "allsites":self.all_sites, 
                   "starttime":datetime.now().isoformat(), "status":"running"}
            run.update(self.comparison_info)
            run['release_buildid'] = self.build1.buildid
            run['release_docid'] = self.build1._id
            run['release_buildstring'] = self.build1.productType+'-'+self.build1['appInfo.platformVersion']+'-'+self.build1.buildid
            run['nightly_buildid'] = self.build2.buildid

            run['nightly_docid'] = self.build2._id
            run['nightly_buildstring'] = self.build2.productType+'-'+self.build2['appInfo.platformVersion']+'-'+self.build2.buildid
            
            self.run_info = self.db.create(run)
        else:
            import uuid
            self.run_info = {"id":str(uuid.uuid1())}
                     
        self.directory = os.path.join(self.base_directory, 'static', 'runs', self.run_info['id'])
        os.mkdir(self.directory)
        
        
        self.do_all_images()
        
        if self.store:
            obj = self.db.get(self.run_info['id'])
            obj = self.db.get(self.run_info['id'])
            obj['endtime'] = datetime.now().isoformat()
            obj['status'] = "done"
            self.db.update(dict(obj))