code: protected void init() {
      if (settings.autostart()) {
        runner = settings.getRunner();
        logger.config("Using runner " + runner.getClass().getSimpleName());
      } else {
        settings.setPort(OperaDefaults.SERVER_DEFAULT_PORT_IDENTIFIER);
      }
  
      createScopeServices();
  
      // Launch Opera if the runner has been setup
      if (runner != null) {
        runner.startOpera();
      }
  
      services.init();
      debugger = services.getDebugger();
      debugger.setDriver(this);
  
      windowManager = services.getWindowManager();
      exec = services.getExec();
      core = services.getCore();
      cookieManager = services.getCookieManager();
      //cookieManager.updateCookieSettings();
  
      mouse = new OperaMouse(this);
      keyboard = new OperaKeyboard(this);
      services.getConsoleLogger().onConsoleMessage(new ConsoleMessageConverter(logs));
  
      // Get product from Opera
      settings.setProduct(utils().getProduct());
  
      // TODO(andreastt): Expose profile on core service
      if (!utils().getUserAgent().contains("Mini")) {
        preferences = new OperaScopePreferences(services.getPrefs());
  
        // Enable popups for testing purposes
        preferences().set("User Prefs", "Ignore Unrequested Popups", false);
  
        // Mobile has disabled JavaScript autofocus for usability reasons
        if (utils().getProduct().is(MOBILE)) {
          preferences().set("User Prefs", "Allow Autofocus Form Element", true);
        }
      }
  
      // Update browser's proxy configuration
      proxy = new OperaProxy(this);
      proxy.parse(settings.getProxy());
    }
docs: Initialize required Scope services.