Add public install link for WDP.
Bug: 349606136
Test: npm run test:unit:ci
Change-Id: Ic0bd5bb3605a05f2dd5d92688093df1eee0e60e9
diff --git a/tools/winscope/src/app/components/wdp_setup_component.ts b/tools/winscope/src/app/components/wdp_setup_component.ts
index 0916441..76f59fa 100644
--- a/tools/winscope/src/app/components/wdp_setup_component.ts
+++ b/tools/winscope/src/app/components/wdp_setup_component.ts
@@ -36,11 +36,15 @@
Please check you have Web Device Proxy installed.
</p>
</div>
-
<div class="further-adb-info-actions">
<button
color="primary"
mat-stroked-button
+ class="install"
+ (click)="onInstallButtonClick()">Install Web Device Proxy</button>
+ <button
+ color="primary"
+ mat-stroked-button
class="retry"
(click)="onRetryButtonClick()">Retry</button>
</div>
@@ -72,6 +76,13 @@
@Input() state: ConnectionState | undefined;
@Output() readonly retryConnection = new EventEmitter();
+ onInstallButtonClick() {
+ window.open(
+ 'https://tools.google.com/dlpage/android_web_device_proxy',
+ '_blank',
+ );
+ }
+
onRetryButtonClick() {
this.retryConnection.emit();
}
diff --git a/tools/winscope/src/app/components/wdp_setup_component_test.ts b/tools/winscope/src/app/components/wdp_setup_component_test.ts
index b337165..46bfff7 100644
--- a/tools/winscope/src/app/components/wdp_setup_component_test.ts
+++ b/tools/winscope/src/app/components/wdp_setup_component_test.ts
@@ -55,6 +55,7 @@
htmlElement.querySelector('.connecting-message')?.textContent,
).toContain('Connecting...');
expect(htmlElement.querySelector('.retry')).toBeNull();
+ expect(htmlElement.querySelector('.install')).toBeNull();
});
it('correct icon and message displays if no proxy', () => {
@@ -67,7 +68,17 @@
"Failed to connect. Web Device Proxy doesn't seem to be running.",
);
expect(text).toContain('Please check you have Web Device Proxy installed.');
- expect(htmlElement.querySelector('.retry')).toBeTruthy();
+ checkRetryButton();
+
+ const windowSpy = spyOn(window, 'open');
+ assertDefined(
+ htmlElement.querySelector<HTMLButtonElement>('.install'),
+ ).click();
+ fixture.detectChanges();
+ expect(windowSpy).toHaveBeenCalledOnceWith(
+ 'https://tools.google.com/dlpage/android_web_device_proxy',
+ '_blank',
+ );
});
it('correct icon and message displays if unauthorized proxy', () => {
@@ -77,19 +88,16 @@
'Web Device Proxy not yet authorized. Enable popups and try again.',
);
expect(htmlElement.querySelector('.adb-icon')?.textContent).toEqual('lock');
- expect(htmlElement.querySelector('.retry')).toBeTruthy();
+ checkRetryButton();
+ expect(htmlElement.querySelector('.install')).toBeNull();
});
- it('retry button emits event', () => {
- component.state = ConnectionState.UNAUTH;
- fixture.detectChanges();
-
+ function checkRetryButton() {
const spy = spyOn(assertDefined(component.retryConnection), 'emit');
- const button = assertDefined(
+ assertDefined(
htmlElement.querySelector<HTMLButtonElement>('.retry'),
- );
- button.click();
+ ).click();
fixture.detectChanges();
expect(spy).toHaveBeenCalled();
- });
+ }
});
diff --git a/tools/winscope/src/trace_collection/controller/user_request_parser.ts b/tools/winscope/src/trace_collection/controller/user_request_parser.ts
index 5a928d0..5628381 100644
--- a/tools/winscope/src/trace_collection/controller/user_request_parser.ts
+++ b/tools/winscope/src/trace_collection/controller/user_request_parser.ts
@@ -32,7 +32,7 @@
export class UserRequestParser {
private readonly targetPerfettoDsMap = new Map([
- [UiTraceTarget.SURFACE_FLINGER_TRACE, 'android.surfaceflinger.layers'],
+ [UiTraceTarget.SURFACE_FLINGER_TRACE, 'android.surfaceflinger.layers'],
[UiTraceTarget.WINDOW_MANAGER_TRACE, 'android.windowmanager'],
[UiTraceTarget.IME, 'android.inputmethod'],
[UiTraceTarget.TRANSACTIONS, 'android.surfaceflinger.transactions'],