Skip to content

Feat/usenix support - #69

Open
chasecheese wants to merge 3 commits into
j3soon:masterfrom
chasecheese:feat/usenix-support
Open

Feat/usenix support#69
chasecheese wants to merge 3 commits into
j3soon:masterfrom
chasecheese:feat/usenix-support

Conversation

@chasecheese

@chasecheese chasecheese commented Jun 27, 2026

Copy link
Copy Markdown

What

Adds USENIX conference papers support, matching the support already provided for arXiv, OpenReview, NIPS, PMLR, CVF, JMLR, IEEE, and ACL.

Navigates e.g. between:

  • https://www.usenix.org/conference/nsdi26/presentation/chen-jiayi
  • https://www.usenix.org/system/files/nsdi26-chen-jiayi.pdf

Scope

USENIX URLs have two structural generations plus a long tail of per-paper irregularities. LLM agents and me surveyed a representative paper from every NSDI/OSDI/ATC/FAST/USENIX Security edition 2012–2026, and added every transformation derivable from the URL. Measured coverage: presentation -> PDF 34/64, PDF -> presentation 47/64.

Not URL-derivable, hence unsupported (best-effort, like the other site mappings): pre-2014 submission-number filenames, per-paper slug truncation/underscore/_N suffixes, and the 2018 flat-path/subdir-PDF transition.

Tests

Added navigation testcases spanning the format/era matrix to tests/testcases/testcases.yaml, all verified against live URLs.

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Expanded support for USENIX conference links by recognizing and normalizing additional legacy and modern presentation/PDF URL formats.
    • Improved back-navigation/help text to include USENIX alongside arXiv and OpenReview.
  • Tests

    • Added extensive Jest-only test cases covering multiple USENIX URL patterns, including legacy technical-session structures and sec<NN> Security variants.

chasecheese and others added 2 commits June 27, 2026 17:53
Add URL-to-URL regex pairs so the navigation button/hotkey switches between a
USENIX conference presentation page and its paper PDF, in both directions, for
all of NSDI/OSDI/ATC/FAST/Security/SOUPS and co-located workshops.

A survey of a representative paper from every NSDI/OSDI/ATC/FAST/Security edition
(2012-2026) shows two structural URL generations plus per-paper irregularities.
The rules cover every transformation that is derivable from the URL alone:

- Legacy technical-sessions form  <->  /system/files/conference/<conf>/... subdir
- Flat form (2018+)               <->  /system/files/<conf>-<slug>.pdf
- PDF -> presentation tolerates optional paper-/papers- infixes
- USENIX Security sec<NN> file prefix mapped back to the usenixsecurity<NN> path

Cases that are not derivable from the URL (pre-2014 submission-number filenames,
per-paper slug truncation/underscore/_N suffixes, the 2018 flat-path/subdir-PDF
transition) are left unsupported, consistent with the best-effort nature of the
extension's other site mappings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cover the legacy -paper- format (NSDI'14, OSDI'14), the flat format across
families and years (NSDI/OSDI/ATC/FAST/Security/SOUPS/WOOT, '18-'26), and the
reverse-only wins (flat paper- infix NSDI'20, legacy papers- infix FAST'16,
sec<NN> prefix Security'17/'20). All verified against live URLs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8fd1621e-c2c0-4058-bc9d-48e8b2c4292c

📥 Commits

Reviewing files that changed from the base of the PR and between 83a8525 and 3673297.

📒 Files selected for processing (3)
  • chrome/target_url_regexp_replace.js
  • firefox/target_url_regexp_replace.js
  • tests/testcases/testcases.yaml
🚧 Files skipped from review as they are similar to previous changes (3)
  • firefox/target_url_regexp_replace.js
  • tests/testcases/testcases.yaml
  • chrome/target_url_regexp_replace.js

Walkthrough

USENIX URL rewrite rules were added to both browser replacement tables. The PR also expands YAML testcase coverage for the new URL shapes and updates the README feature list to mention USENIX.

Changes

USENIX URL rewrite support

Layer / File(s) Summary
Browser rewrite tables
chrome/target_url_regexp_replace.js, firefox/target_url_regexp_replace.js
Inserted USENIX-specific regex replacements for legacy technical-sessions and flat presentation/PDF URL forms, with ordering comments so the specific rules match before the generic ones.
Testcases and feature note
tests/testcases/testcases.yaml, README.md
Added USENIX URL testcase pairs for the new rewrite shapes and updated the README feature list to include USENIX in the back-navigation bullet.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Hop-hop, the URLs now squeak and steer,
USENIX trails lead from PDF to page so clear.
My whiskers twitch at regexes neat and small,
And testcase carrots line the burrow wall.
Hooray! The rabbit route is brisk and bright.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding USENIX support to URL navigation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@chrome/target_url_regexp_replace.js`:
- Around line 34-38: Add a USENIX Security-specific replacement before the
generic USENIX forward rules so first-match-wins routes `usenixsecurity<NN>`
presentation pages to the correct `sec<NN>` PDF filenames instead of the current
`usenixsecurity<NN>` prefix. Update the matching entries in
`chrome/target_url_regexp_replace.js` (the rule set around the USENIX conference
presentation mappings) so the rewritten URL uses the `sec` prefix for Security
papers while leaving the other conference patterns unchanged.

In `@firefox/target_url_regexp_replace.js`:
- Around line 34-38: Add a USENIX Security-specific rewrite rule before the
generic USENIX conference presentation rules in target_url_regexp_replace.js,
since Firefox uses the first match. Update the handling in the rule set around
the presentation-page mappings so usenixsecurity<NN> pages rewrite to
sec<NN>-...pdf instead of usenixsecurity<NN>-...pdf, and ensure the existing
generic conference rule remains below it for other conferences.
🪄 Autofix (Beta)

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

Run ID: d3984a48-db86-4332-82dc-3926a24bc805

📥 Commits

Reviewing files that changed from the base of the PR and between 335066e and 83a8525.

📒 Files selected for processing (4)
  • README.md
  • chrome/target_url_regexp_replace.js
  • firefox/target_url_regexp_replace.js
  • tests/testcases/testcases.yaml

Comment thread chrome/target_url_regexp_replace.js
Comment thread firefox/target_url_regexp_replace.js
USENIX Security paper PDFs use a sec<NN> file prefix (through 2022), not the
usenixsecurity<NN> conference path code, so the generic forward rules were
sending those presentation pages to non-existent PDF URLs (first-match-wins).

Add two Security-specific forward rules ahead of the generic ones:
- legacy technical-sessions (<=2017): -> conference/usenixsecurity<NN>/sec<NN>-<slug>.pdf
- flat 2019-2022:                     -> sec<NN>-<slug>.pdf  (2023+ switched to the
                                          usenixsecurity<NN> prefix and falls through)

Fixes e.g. sec17-alexopoulos and sec20-afek (forward 34->38 of the 64-paper
survey). The remaining Security forward misses (sec12-16/18/19) carry
non-derivable submission numbers, underscore/_N variants, or the 2018 subdir
transition and stay best-effort. Add both-direction Security testcases.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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