Skip to content

[WIP] Feat: Execute the page action in current tab#286

Open
ujiro99 wants to merge 2 commits intomainfrom
feat/pageAction-in-currentTab
Open

[WIP] Feat: Execute the page action in current tab#286
ujiro99 wants to merge 2 commits intomainfrom
feat/pageAction-in-currentTab

Conversation

@ujiro99
Copy link
Owner

@ujiro99 ujiro99 commented Feb 24, 2026

No description provided.

# Conflicts:
#	.claude/settings.local.json
#	.serena/project.yml
#	packages/extension/public/_locales/en/messages.json
#	packages/extension/public/_locales/ja/messages.json
#	packages/extension/src/components/option/field/OpenModeToggleField.tsx
@claude
Copy link

claude bot commented Feb 24, 2026

PR レビュー: Feat: Execute the page action in current tab

全体的に、機能の目的は明確で実装も概ね適切です。以下にいくつかのフィードバックをまとめます。


バグ・潜在的な問題

1. pageAction.ts — useSecondary での CURRENT_TAB チェックが冗長(デッドコード)

useSecondary ブランチ内の新しい CURRENT_TAB 条件分岐は、true/false どちらも同じ値(PAGE_ACTION_OPEN_MODE.TAB)を返すため意味をなしません。

変更前の else ブランチがすでに TAB を返しているため、以下のコードは削除しても動作は変わりません:

: command.pageActionOption.openMode === PAGE_ACTION_OPEN_MODE.CURRENT_TAB
  ? PAGE_ACTION_OPEN_MODE.TAB // Open in new tab when secondary is pressed
  : PAGE_ACTION_OPEN_MODE.TAB  // ← 同じ値が返る

2. background.ts — clipboardText = "" が clipboard を使うステップを壊す可能性

CURRENT_TAB ブランチでは clipboardText = "" と固定されています。その後のロジックで param.url.useClipboard が true かつ selectedText が空の場合、selectedText = clipboardText(= 空文字列)になります。

INSERT.CLIPBOARD シンボルを使うステップ(例: フォームへの入力)がある場合、CURRENT_TAB モードでは clipboard の内容が利用できません。他のモード(TAB, BACKGROUND_TAB)では openTab() から実際の clipboard 値を取得しているため、この制限が意図的であれば UI またはドキュメントに明記することを検討してください。


3. background.ts — isUrlParam の場合に URL 検証がスキップされる

param.url が UrlParam 型の場合(searchUrl プロパティを持つ)、startUrl が null になり URL の検証が完全にスキップされます。UrlParam.searchUrl を使った検証も検討してみてください:

const startUrl = isUrlParam(param.url) ? param.url.searchUrl : param.url

UX の懸念

4. URL 不一致時のユーザーへのフィードバックがない

URL が一致しない場合、console.warn のみで response(false) を返しています。コマンドを実行しようとしたユーザーには何も通知されないため、「なぜ動かないのか」が分からず混乱する可能性があります。トースト通知などで理由を伝える仕組みを検討してください。


良い点

  • matchesPageActionUrl のテストが充実しており(MU-01〜MU-08)、ワイルドカードの各パターンを適切にカバーしています。
  • 正規表現エスケープ処理が正しく実装されており、. など特殊文字を含む URL でも安全に動作します。
  • OpenModeToggleField.tsx でのグリッド列数の動的変更(pageAction 型のみ grid-cols-5)はクリーンな実装です。
  • i18n ファイル(英語・日本語)への追加も漏れなく行われています。

軽微な提案

matchesPageActionUrl の RegExp は呼び出しのたびに新規作成されますが、使用頻度が低いため現状は許容範囲です。将来的にループ内で多用する場合はキャッシュを検討してください。


まとめ: 上記の中で最も優先度が高いのは #1(デッドコード)#2(clipboardText の問題) です。特に #2 は既存機能(clipboard ステップ)との互換性に影響する可能性があります。

@ujiro99
Copy link
Owner Author

ujiro99 commented Feb 24, 2026

追加要件

  • クリップボードが取得できるか実験する
  • 起動URLがマッチしない場合は、ポップアップメニュー上で、コマンドを起動不能にする
  • 起動URLと設定用URLは別々に設定出来るようにする

@codecov
Copy link

codecov bot commented Feb 24, 2026

Codecov Report

❌ Patch coverage is 23.25581% with 33 lines in your changes missing coverage. Please review.
✅ Project coverage is 19.14%. Comparing base (a6ed462) to head (4ebebbd).
⚠️ Report is 11 commits behind head on main.

Files with missing lines Patch % Lines
...es/extension/src/services/pageAction/background.ts 4.54% 21 Missing ⚠️
...rc/components/option/field/OpenModeToggleField.tsx 0.00% 8 Missing ⚠️
packages/extension/src/action/pageAction.ts 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #286      +/-   ##
==========================================
+ Coverage   19.13%   19.14%   +0.01%     
==========================================
  Files         308      308              
  Lines       28661    28702      +41     
  Branches     1316     1319       +3     
==========================================
+ Hits         5483     5494      +11     
- Misses      23178    23208      +30     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ujiro99 ujiro99 changed the title Feat: Execute the page action in current tab [WIP] Feat: Execute the page action in current tab Feb 24, 2026
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