blob: ece4eaeb41197ddc3ca5e59292b42ca631ded53a [file] [log] [blame]
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import annotations
from crossbench.browsers.applescript import AppleScriptBrowser
from crossbench.browsers.attributes import BrowserAttributes
from crossbench.browsers.chromium.chromium import Chromium
# TODO: fix https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_commands_mac.mm;drc=ddf482c0cf47fc8e47e5cfc5c112e2313e066cb8;bpv=1;bpt=1;l=38
# TODO: Auto-set: prefs::kAllowJavascriptAppleEvents
# TODO: add --enable-automation flag
class ChromiumAppleScript(Chromium, AppleScriptBrowser):
APPLE_SCRIPT_ALLOW_JS_MENU: str = (
"View > Developer > Allow JavaScript from Apple Events")
APPLE_SCRIPT_JS_COMMAND: str = (
"tell the active tab of front window to execute javascript %(js_script)s")
APPLE_SCRIPT_SET_URL: str = (
"set URL of the active tab of front window to %(url)s")
def _setup_window(self) -> None:
pass
@property
def attributes(self) -> BrowserAttributes:
return (BrowserAttributes.CHROMIUM | BrowserAttributes.CHROMIUM_BASED
| BrowserAttributes.APPLESCRIPT)