Repository navigation
test(extension): execute pinned MV3 compatibility fixture - #35
Conversation
|
Warning Review limit reached
Next review available in: 5 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthrough고정된 Chrome for Testing에서 MV3 fixture를 실행하는 CI 워크플로를 추가했다. WebDriver 실행기는 서비스 워커, 콘텐츠 스크립트, 저장소, DNR, 실제 클릭 결과를 검증하고 JSON 증거를 출력한다. 검증 기준 문서와 계약 테스트도 추가했다. ChangesManifest V3 호환성 검증
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related issues
Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant MV3Runner
participant ChromeDriver
participant ChromeForTesting
participant MV3Fixture
GitHubActions->>ChromeForTesting: 고정 Chrome 및 ChromeDriver 다운로드
GitHubActions->>MV3Runner: 호환성 실행
MV3Runner->>MV3Fixture: 로컬 HTTP 서버로 fixture 제공
MV3Runner->>ChromeDriver: WebDriver 세션 생성
ChromeDriver->>ChromeForTesting: 고정 Chrome 실행
ChromeForTesting->>MV3Fixture: fixture 페이지 로드 및 MV3 실행
MV3Runner->>ChromeDriver: 상태 확인 및 실제 클릭
ChromeDriver-->>MV3Runner: MV3 증거 반환
MV3Runner-->>GitHubActions: JSON 결과 출력
GitHubActions->>GitHubActions: 해시 및 결과 artifact 업로드
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/doctoring/mv3-compatibility.md`:
- Line 25: Update the APA 7 reference for “Chrome for Testing” to credit Mathias
Bynens as the author and retain the official page’s final update date of June
12, 2023; keep the official Chrome for Developers URL and APA 7 formatting
intact.
In `@tests/test_mv3_compatibility_contract.py`:
- Around line 19-31: Extend the manifest contract assertions in the test around
manifest and content_scripts validation to require the expected loopback-only
host_permissions value, such as ["http://127.0.0.1/*"]. Ensure the test fails if
broader or additional host permissions are introduced.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: ff3305a4-62f4-4232-9c07-2413b884deac
📒 Files selected for processing (9)
.github/workflows/mv3-compatibility.ymldocs/doctoring/mv3-compatibility.mdscripts/ci/run_mv3_compatibility.pytests/fixtures/mv3_basic/content_script.jstests/fixtures/mv3_basic/manifest.jsontests/fixtures/mv3_basic/page.htmltests/fixtures/mv3_basic/rules.jsontests/fixtures/mv3_basic/service_worker.jstests/test_mv3_compatibility_contract.py
Buyer-visible gap
Issue #27 requires executable evidence that OriginWeave's Chromium-compatibility strategy preserves real Manifest V3 behavior rather than relying on architecture prose. Protected main now has the pure-Rust extension-to-Agent authority kernel (#34), but no real Chromium compatibility lane.
Bounded slice
This PR adds the first real pinned-Chromium compatibility harness:
150.0.7871.129/ Chromium revisionr1639810;chrome.storage.local, and Declarative Net Request;egress-policy: blockwith an explicit Google Chrome for Testing endpoint and the GitHub endpoints needed by pinned checkout/artifact actions;TDD lineage
5f786d1e3102ce50365113e8c04857dcfd415f1eadded the repository contract first, requiring the MV3 fixture, pinned browser runner, workflow, and primary-source doctoring before those files existed. Subsequent commits implement the fixture and real-browser lane without changing product authority. The branch is based directly on current protected main076da4296a13d11c70cce8f99163ebcd10ad2dafand is not behind at PR creation.Security boundary
Chrome extension permissions remain separate from OriginWeave Agent authority. The fixture cannot widen task origin/capability grants and receives no raw secret, production PII, model credential, native-messaging host, external page content, or repository write authority. This PR does not claim Chrome Web Store, Google-service, DRM, codec, native-messaging, restart/update, or complete extension-API compatibility.
Acceptance for this slice
Do not merge unless the unchanged exact head passes repository CI, the new real
Manifest V3 Compatibilityworkflow, Security Scan, SAST, current automated-review findings, and current branch/ruleset governance. A green compatibility lane is evidence only for the tested pinned build and surfaces; issue #27 remains open for the broader capability matrix, restart/update, managed-policy/native-messaging boundaries, repeated-run evidence, and release-gate integration.Partial implementation of #27.
Summary by CodeRabbit
새로운 기능
문서
테스트