Skip to content

feat: add scrollPage tool for viewport scrolling#149

Merged
ndthanhdev merged 1 commit into
mainfrom
scroll
Jun 28, 2026
Merged

feat: add scrollPage tool for viewport scrolling#149
ndthanhdev merged 1 commit into
mainfrom
scroll

Conversation

@ndthanhdev

Copy link
Copy Markdown
Owner

Add a scrollPage browser tool that scrolls the active tab's viewport in a direction (up/down/left/right) by an optional pixel amount, defaulting to ~one viewport. Works on both MV2 and MV3 since it needs no screenshot.

Threads through the existing hexagonal layers like the other interaction tools: ExtensionTools/BrowserDriverOutputPort ports, the extension and server tool-call use cases, the tab DOM adapter (instant scrollBy with a synchronous move check; already-at-edge counts as success), and the MCP server schema, registration, and description. Adds a scroll-test e2e fixture page and scroll-tools.spec.ts.

Add a scrollPage browser tool that scrolls the active tab's viewport in a
direction (up/down/left/right) by an optional pixel amount, defaulting to
~one viewport. Works on both MV2 and MV3 since it needs no screenshot.

Threads through the existing hexagonal layers like the other interaction
tools: ExtensionTools/BrowserDriverOutputPort ports, the extension and server
tool-call use cases, the tab DOM adapter (instant scrollBy with a synchronous
move check; already-at-edge counts as success), and the MCP server schema,
registration, and description. Adds a scroll-test e2e fixture page and
scroll-tools.spec.ts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ndthanhdev
ndthanhdev enabled auto-merge (squash) June 28, 2026 09:08
@ndthanhdev
ndthanhdev merged commit 571fe63 into main Jun 28, 2026
5 checks passed
@ndthanhdev
ndthanhdev deleted the scroll branch June 28, 2026 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant