Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The joy of Native Messaging
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
unvalley
July 28, 2026
48
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The joy of Native Messaging
2026/7/27 雑LT
unvalley
July 28, 2026
More Decks by unvalley
See All by unvalley
Plugin System in Rust based JavaScript / TypeScript Linters
unvalley
6
2.5k
Exploring ways to stay continuously involved with OSS
unvalley
3
4k
Building An Ephemeral Markdown Paper with AI
unvalley
3
1.3k
Thoughts and experiences on Rust and TypeScript
unvalley
2
460
Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
unvalley
7
13k
Behind VS Code Extensions for JavaScript / TypeScript Linting and Formatting
unvalley
7
3.9k
Behind Biome
unvalley
11
4.8k
Biome is for JavaScripters
unvalley
4
1.2k
Better Unit Testing
unvalley
1
760
Featured
See All Featured
Docker and Python
trallard
47
4.2k
The SEO identity crisis: Don't let AI make you average
varn
0
590
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Amusing Abliteration
ianozsvald
1
350
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Thoughts on Productivity
jonyablonski
76
5.4k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Ethics towards AI in product and experience design
skipperchong
2
430
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Transcript
Native Messagingの嬉しさ 雑LT @unvalley_ 1
Native Messaging - 「ユーザーのマシン上のアプリ」と「ブラウザ拡張」の間で、 メッセージ交換を可能にする技術 - 結構古くて、Chromeでは10年以上前から存在する Native App 他
2
(このLTでの)Native Messagingの嬉しさ ネイティブアプリ(特にLocal-First App)に ブラウザのコンテキストを与えられる 3
背景:内部リンク中心のドキュメントアプリをSwiftで作りたい で作りたい 4
欲しい機能:ウェブ上の記事をナレッジにしたい Native Messagingでいけそう 5
Webページ → Markdownにして加工 → ネイティブアプリ 1. 2. 3. ブラウザ拡張:@mozilla/readabilityで記事内容を抽出、.html→ .md化する
ブラウザ拡張からネイティブアプリ:Native Messagingでメッセージ送信 ネイティブアプリ:得られた .mdに対して内部リンクを適用。完了を返信 6
Native Messagingを使うときにやること 1. ブラウザ拡張:マニフェストの準備 - manifest.json に nativeMessaging権限を追加 2. ネイティブアプリ:アプリマニフェストのインストール
- ネイティブアプリを使える状態にして、アプリマニフェストを作成し1との 接続設定を書いて、OSごとの決められた場所に配置 3. ブラウザ拡張+ネイティブアプリ:メッセージ処理実装 - 拡張は sendNativeMessage などでJSONを送り、ネイティブアプリ はstdinでJSONを読みstdoutでレスポンスを返す 7
なぜこのケースでNative Messagingが必要なの? - Downloads APIやFile System Access APIでは、ネイティブアプリの処 理を挟めない -
localhostでもできるが、ポート管理やlocalサーバー常時起動が必要 8
Native Messagingはブラウザとネイティブアプリ間で色々できる セキュリティ(他人の実装) には気をつけながら楽しく使おう 終 9