#!/usr/bin/env python
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Enable chrome testing interface on ChromeOS.

Enables chrome automation over a named automation channel on ChromeOS.
Also, allows passing extra flags to chrome (--extra-chrome-flags).
The path to named testing interface automation socket is printed out.

Needs to be run with superuser privileges.

Usage:
  sudo python enable_testing.py --extra-chrome-flags="--homepage=about:blank"
"""

import dbus
import optparse
import os
import sys


class EnableChromeTestingOnChromeOS(object):
  """Helper to enable chrome testing interface on ChromeOS.

  Also, can add additional flags to chrome to be used for testing.
  """

  SESSION_MANAGER_INTERFACE = 'org.chromium.SessionManagerInterface'
  SESSION_MANAGER_PATH = '/org/chromium/SessionManager'
  SESSION_MANAGER_SERVICE = 'org.chromium.SessionManager'

  def _ParseArgs(self):
    parser = optparse.OptionParser()
    parser.add_option(
        '', '--extra-chrome-flags', action='append', default=[],
        help='Pass extra flags to chrome.')
    self._options, self._args = parser.parse_args()

  def Run(self):
    self._ParseArgs()
    assert os.geteuid() == 0, 'Needs superuser privileges.'
    system_bus = dbus.SystemBus()
    manager = dbus.Interface(system_bus.get_object(self.SESSION_MANAGER_SERVICE,
                                                   self.SESSION_MANAGER_PATH),
                             self.SESSION_MANAGER_INTERFACE)
    print manager.EnableChromeTesting(True, self._options.extra_chrome_flags)
    return 0


if __name__ == '__main__':
  sys.exit(EnableChromeTestingOnChromeOS().Run())

#!/usr/bin/env python
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Enable chrome testing interface on ChromeOS.

Enables chrome automation over a named automation channel on ChromeOS.
Also, allows passing extra flags to chrome (--extra-chrome-flags).
The path to named testing interface automation socket is printed out.

Needs to be run with superuser privileges.

Usage:
  sudo python enable_testing.py --extra-chrome-flags="--homepage=about:blank"
"""

import dbus
import optparse
import os
import sys


class EnableChromeTestingOnChromeOS(object):
  """Helper to enable chrome testing interface on ChromeOS.

  Also, can add additional flags to chrome to be used for testing.
  """

  SESSION_MANAGER_INTERFACE = 'org.chromium.SessionManagerInterface'
  SESSION_MANAGER_PATH = '/org/chromium/SessionManager'
  SESSION_MANAGER_SERVICE = 'org.chromium.SessionManager'

  def _ParseArgs(self):
    parser = optparse.OptionParser()
    parser.add_option(
        '', '--extra-chrome-flags', action='append', default=[],
        help='Pass extra flags to chrome.')
    self._options, self._args = parser.parse_args()

  def Run(self):
    self._ParseArgs()
    assert os.geteuid() == 0, 'Needs superuser privileges.'
    system_bus = dbus.SystemBus()
    manager = dbus.Interface(system_bus.get_object(self.SESSION_MANAGER_SERVICE,
                                                   self.SESSION_MANAGER_PATH),
                             self.SESSION_MANAGER_INTERFACE)
    print manager.EnableChromeTesting(True, self._options.extra_chrome_flags)
    return 0


if __name__ == '__main__':
  sys.exit(EnableChromeTestingOnChromeOS().Run())

#!/usr/bin/env python # Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. Enable chrome testing interface on ChromeOS.  Enables chrome automation over a named automation channel on ChromeOS. Also, allows passing extra flags to chrome (--extra-chrome-flags). The path to named testing interface automation socket is printed out.  Needs to be run with superuser privileges.  Usage:   sudo python enable_testing.py --extra-chrome-flags="--homepage=about:blank" Helper to enable chrome testing interface on ChromeOS.    Also, can add additional flags to chrome to be used for testing.