From eb9ef64e7d3bab1dce48c6530eaa86e274023be8 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 25 Aug 2023 19:30:09 -0700 Subject: [PATCH] fix(android): use domain socket suffix chrome can discover (#26724) Fixes: https://github.com/microsoft/playwright/issues/26721 --- packages/playwright-core/src/server/android/android.ts | 6 ++++-- utils/avd_start.sh | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/android/android.ts b/packages/playwright-core/src/server/android/android.ts index d753b395ae..7ed128d7d5 100644 --- a/packages/playwright-core/src/server/android/android.ts +++ b/packages/playwright-core/src/server/android/android.ts @@ -262,13 +262,15 @@ export class AndroidDevice extends SdkObject { async launchBrowser(pkg: string = 'com.android.chrome', options: channels.AndroidDeviceLaunchBrowserParams): Promise { debug('pw:android')('Force-stopping', pkg); await this._backend.runCommand(`shell:am force-stop ${pkg}`); - const socketName = isUnderTest() ? 'webview_devtools_remote_playwright_test' : ('playwright-' + createGuid()); + const socketName = isUnderTest() ? 'webview_devtools_remote_playwright_test' : ('playwright_' + createGuid() + '_devtools_remote'); const commandLine = this._defaultArgs(options, socketName).join(' '); debug('pw:android')('Starting', pkg, commandLine); // encode commandLine to base64 to avoid issues (bash encoding) with special characters await this._backend.runCommand(`shell:echo "${Buffer.from(commandLine).toString('base64')}" | base64 -d > /data/local/tmp/chrome-command-line`); await this._backend.runCommand(`shell:am start -a android.intent.action.VIEW -d about:blank ${pkg}`); - return await this._connectToBrowser(socketName, options); + const browserContext = await this._connectToBrowser(socketName, options); + await this._backend.runCommand(`shell:rm /data/local/tmp/chrome-command-line`); + return browserContext; } private _defaultArgs(options: channels.AndroidDeviceLaunchBrowserParams, socketName: string): string[] { diff --git a/utils/avd_start.sh b/utils/avd_start.sh index 36ea6ee694..c060b5e944 100755 --- a/utils/avd_start.sh +++ b/utils/avd_start.sh @@ -11,6 +11,7 @@ fi bash $PWD/utils/avd_stop.sh echo "Starting emulator" +# nohup ${ANDROID_HOME}/emulator/emulator -avd android33 -gpu swiftshader & nohup ${ANDROID_HOME}/emulator/emulator -avd android33 -no-audio -no-window -no-boot-anim -no-snapshot & ${ANDROID_HOME}/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82' ${ANDROID_HOME}/platform-tools/adb devices