Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
これからはじめるConcrete5
武彦 大山
CMS の今後と IoT 〜 concrete5 などの CMS が進む道
Katz Ueno
第22回creators meet up資料
武彦 大山
第4回concrete5初心者勉強会-基礎編-
Hayaka Shoji
WordPress使いのためのconcrete5入門
Hishikawa Takuro
第3回concrete5初心者勉強会
武彦 大山
これからはじめるConcrete5
武彦 大山
その後のBash on windows
Kazushi Kamegawa
1
of
75
Top clipped slide
Chrome Extensionsから見るWebExtensions
Jan. 17, 2016
•
0 likes
0 likes
×
Be the first to like this
Show More
•
1,334 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Software
Firefox developer conference 2015
Yoichiro Tanaka
Follow
Software Engineer at Increments, Inc.
Advertisement
Advertisement
Advertisement
Recommended
concrete5 バージョン5.7のご紹介
Hishikawa Takuro
3.8K views
•
22 slides
Cloud 9を使ってみよう
武彦 大山
3.2K views
•
30 slides
concrete5 勉強会 20150117_テーマ作成
Toshiaki Endo
1.7K views
•
73 slides
concrete5で社内システムのお話し
Tao Sasaki
2.2K views
•
25 slides
第1回concrete5初心者向け勉強会
武彦 大山
2.2K views
•
47 slides
concrete5で制作・運用する多言語ウェブサイト
Hishikawa Takuro
5.4K views
•
41 slides
More Related Content
Slideshows for you
(20)
これからはじめるConcrete5
武彦 大山
•
1.1K views
CMS の今後と IoT 〜 concrete5 などの CMS が進む道
Katz Ueno
•
1.4K views
第22回creators meet up資料
武彦 大山
•
980 views
第4回concrete5初心者勉強会-基礎編-
Hayaka Shoji
•
958 views
WordPress使いのためのconcrete5入門
Hishikawa Takuro
•
6.2K views
第3回concrete5初心者勉強会
武彦 大山
•
1.9K views
これからはじめるConcrete5
武彦 大山
•
882 views
その後のBash on windows
Kazushi Kamegawa
•
1.4K views
ブロックエディターで WordPress は この先どう変わる ?
Naoko Takano
•
618 views
Concrete5を簡単・安心に使おう
武彦 大山
•
1.9K views
WordPressカスタム三兄弟、concrete5ならこう作る。
ねこみみ 隊長
•
3.1K views
Docker webinar 20170426−01
Creationline,inc.
•
1.5K views
その Web サイト、その Web アプリを最新の IE11 に対応しよう
Osamu Monoe
•
9.7K views
concrete5で行なうcms導入提案のポイント
Hishikawa Takuro
•
4.7K views
どうなるflash!?
Yoshinori Kamaishi
•
148 views
Windows Insider Program という取り組みについて ~ Fall Creators Update を踏まえて
日本マイクロソフト株式会社 Windows & デバイス本部
•
1.4K views
プラグイン公開までの道のり
Takami Kazuya
•
1.2K views
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
•
1.2K views
「なんとなく」の壁を越えよう! 〜自信を持ってWordPressを選択するためのヒント〜
Naoko Takano
•
19.9K views
concrete5 最新情報
武彦 大山
•
1.7K views
Similar to Chrome Extensionsから見るWebExtensions
(20)
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
Kensaku Komatsu
•
1.5K views
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
decode2016
•
176 views
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
•
441 views
僕のChrome拡張
Syo Igarashi
•
334 views
20140409勉強会
Masato Egami
•
434 views
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイド
Hishikawa Takuro
•
20.5K views
SharePoint Framework Extension 基礎講座
Hiroaki Oikawa
•
7.9K views
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
•
29.2K views
Developer-Controlled Packages (DCPs) を試してみた
Takahiro Kawabata
•
983 views
18-D-1 .Net Framework 4 概要
Developers Summit
•
1.2K views
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
•
1.9K views
Chrome DevTools.next
yoshikawa_t
•
27.3K views
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
•
647 views
Firefox os hackathon
dynamis
•
4.4K views
OSSを利用したプロジェクト管理
Tadashi Miyazato
•
515 views
.NET Coreとツール類の今
Yuki Igarashi
•
6.7K views
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
•
3.2K views
[Japan Tech summit 2017] APP 001
Microsoft Tech Summit 2017
•
243 views
Alfresco CI
Ashitaba YOSHIOKA
•
1.5K views
マークアップ講座 01a プロローグ
eiji sekiya
•
676 views
Advertisement
More from Yoichiro Tanaka
(15)
Navigate users from assistant app to android app
Yoichiro Tanaka
•
482 views
Chrome Extensionsの基本とデザインパターン
Yoichiro Tanaka
•
1.5K views
みんなの知らないChrome appsの世界
Yoichiro Tanaka
•
2.2K views
Chromeウェブストア - Html5とか勉強会42
Yoichiro Tanaka
•
2.4K views
Info scoop opensource
Yoichiro Tanaka
•
961 views
Yapc
Yoichiro Tanaka
•
1K views
SocialWeb-Japan Vol.2 20090428
Yoichiro Tanaka
•
788 views
JRuby on Rails
Yoichiro Tanaka
•
2K views
JavaEdge第3回ライブセッション
Yoichiro Tanaka
•
889 views
maven2+aptで楽々ドキュメント
Yoichiro Tanaka
•
685 views
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
•
1.2K views
Sun Tech Days 2007 Mash up
Yoichiro Tanaka
•
721 views
体操競技のルール改正と今後の日本の方向性
Yoichiro Tanaka
•
2.2K views
Wicket勉強会2
Yoichiro Tanaka
•
1.4K views
世間の荒波を乗りこなせ!
Yoichiro Tanaka
•
1.5K views
Recently uploaded
(20)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)
fisuda
•
53 views
留信网认证可查【莱比锡大学文凭证书毕业证购买】
khh123kj
•
2 views
①【萨斯喀彻温大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
WEB-jsug info14_final.pdf
Draft One
•
4 views
①【卡毕兰诺大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
留信网认证可查【新学院文凭证书毕业证购买】
hh123hh1
•
2 views
留信网认证可查【麻省大学洛威尔分校文凭证书毕业证购买】
hh123hh1
•
2 views
☀️【斯旺西大学毕业证成绩单留学生首选】
25mjhd12
•
2 views
留信网认证可查【俄亥俄大学文凭证书毕业证购买】
1lkjhg
•
2 views
留信网认证可查【艾格伍学院文凭证书毕业证购买】
32lkhng
•
2 views
①【劳里埃大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
留信网认证可查【堪萨斯大学文凭证书毕业证购买】
1lkjhg
•
2 views
JSUG Info Vol.13
Draft One
•
3 views
留信网认证可查【怀俄明大学文凭证书毕业证购买】
1lkjhg
•
2 views
留信网认证可查【罗德岛大学文凭证书毕业证购买】
1lkjhg
•
3 views
①【伦敦政治经济学院毕业证文凭学位证书|工艺完美复刻】
0987hgh789
•
2 views
☀️【萨德伯里大学毕业证成绩单留学生首选】
15sad
•
2 views
①【南十字星大学毕业证文凭学位证书|工艺完美复刻】
vgh215w
•
3 views
留信网认证可查【伊利诺伊理工学院文凭证书毕业证购买】
1lkjhg
•
2 views
留信网认证可查【马努卡理工学院文凭证书毕业证购买】
ihh14ds
•
2 views
Advertisement
Chrome Extensionsから見るWebExtensions
Chrome Extensions から見る WebExtensions Firefox
Developers Conference 2015 in Tokyo November 15, 2015
Today's Topic
Today's Topic WebExtensionsの基礎 Chrome Extensionsとの違い 開発における注意点
ご注意 "くろ〜む"と言った時は、 「Chromeウェブブラウザ」 のことです。 "えくすてんしょん"と"拡張機能"は、 同じものを指しています。
WebExtensionsの基礎
今までの拡張機能開発 XUL + XPCOMを利用した開発 Add-on
SDKとcfxコマンドを利用した開発 JPMを利用した開発
今までの拡張機能開発 XUL + XPCOMを利用した開発 Add-on
SDKとcfxコマンドを利用した開発 JPMを利用した開発
WebExtensions
?
Goal of WebExtensions Firefoxと他のブラウザ間での移植を簡単にする。 addons.mozilla.orgでの審査を簡単にする。 Firefoxのマルチプロセス化との互換性を持たせる。 Firefox内部のコード変更を拡張機能に影響させない。 既存のXPCOM/XUL
APIよりも簡単にする。 https://wiki.mozilla.org/WebExtensions
Goal of WebExtensions Firefoxと他のブラウザ間での移植を簡単にする。 addons.mozilla.orgでの審査を簡単にする。 Firefoxのマルチプロセス化との互換性を持たせる。 Firefox内部のコード変更を拡張機能に影響させない。 既存のXPCOM/XUL
APIよりも簡単にする。 ⇒ [UP] セキュリティ、安定性の向上 ⇒ [UP] 質の高い拡張機能の輸入/輸出量の向上 ⇒ [DOWN] 実現できることの減少
APIs
APIs(Ready to go) alarms contextMenus pageAction bookmarks browserAction cookies extension i18n notifications runtime storage tabs webNavigation webRequest windows
API - browserAction
API - pageAction
API - notifications
API - contentMenus
Content Script
Other APIs alarms -
一定時間ごとにイベントを発生させてくれるAPI。 storage - 拡張機能ごとに提供される情報の保存場所。 tabs - タブ関連の操作(新規タブを開いたり一覧を取得したり)。 i18n - 国際化のためのAPI(_locale/...en...ja.../messages.json)。 bookmarks - ブックマークを操作するためのAPI。 ...
APIs(Planned) commands DevTools downloads history idle omnibox permissions Native messaging
Building Blocks
Building Blocks 必須なファイル manifest.json -
拡張機能のメタ情報を持つ 任意のファイル HTMLファイル CSSファイル JavaScriptファイル その他必要なファイル・・・
Minimum Extension
manifest.json { "manifest_version": 2, "name": "Minimum
Extension", "version": "1.0", "applications": { "gecko": { "id": "minimum-extension@eisbahn.jp" } }, "browser_action": { "default_popup": "popup.html" } }
popup.html <!DOCTYPE html> <html> <head></head> <body> <div>Hello, WebExtension!</div> </body> </html>
$ cd minimum-extension $
ls manifest.json popup.html $ zip -r ../minimum-extension.xpi * updating: manifest.json (deflated 42%) updating: popup.html (deflated 23%) $ cd .. $ ls minimum-extension/ minimum-extension.xpi
Configuration
Installing
Installing
Installing
Using the browserAction
Using the browserAction
background
background.html background.js
popup.html popup.js Each Event (alarms, tabs,
etc.) Backend serverbackground.html background.js
manifest.json { "manifest_version": 2, ... "background": { "page":
"background.html" <or> "scripts": ["background.js"] } ... }
background.js console.log("Background created."); function hello()
{ return "Hello, I'm background context."; } chrome.alarms.onAlarm.addListener( function(alarm) { console.log("Called by chrome.alarms."); } ); chrome.alarms.create("", {delayInMinutes:1, periodInMinutes: 1});
popup.html popup.js Each Event (alarms, tabs,
etc.) Backend serverbackground.html background.js chrome.extension.getBackgroundPage()
popup.html <!DOCTYPE html> <html> <head></head> <body> <div>Hello, WebExtension!</div> <script> var
bg = chrome.extension.getBackgroundPage(); console.log(bg.hello()); </script> </body> </html>
Content Scripts
manifest.json { "manifest_version": 2, ... "content_scripts": [
{ "matches": ["https://www.eisbahn.jp/*"] "js": ["content_scripts.js"] } ], ... }
content_scripts.js var body =
document.querySelector("body"); body.style.transform = "rotate(-180deg)";
Chrome Extensionsとの違い
manifest.json { "manifest_version": 2, "name": "Minimum
Extension", "version": "1.0", "applications": { "gecko": { "id": "minimum-extension@eisbahn.jp" } }, "browser_action": { "default_popup": "popup.html" } }
background "persistent"属性がサポートされていない。 ⇒ Background Contextが常駐している。 ⇒
background.htmlやbackground.jsに情報を保持できる。 ⇒ setTimeout(), setInterval()が使える。 ⇒ 常にメモリを圧迫している状況。
background Chromeでは既にpersistent=trueの拡張機能は非推奨 ⇒ まだtrueもサポートされてはいる。 ⇒ 多くの拡張機能はpersistent=falseに移行済み。 結果としてChromeからFirefoxに移植する際に問題になる。 ⇒
現状はそれぞれのコードを準備するのが得策。 ⇒ Firefoxもpersistent=falseのサポートをするのでは?
開発における注意点
Simple
goo.gl URL Shortener goo.glによる短縮URL作成、一覧表示 クリックカウントの表示 クリックされたブラウザや地域などの表示 クリック数の時間推移の表示 短縮URLのQR
Code生成 GMail, Facebook, Twitter, Google+へシェア Pocket (Read It Later)への追加 壁紙の変更 短縮URLのクリック数の監視とBadge表示
良い拡張機能とは シンプルであること 1つの拡張機能でできることは1つだけに絞る。 利用者獲得のための欲を出さない 良い拡張機能は何もしなくても絶対流行る。 アイディアと先行者利益で勝負する。 お行儀良く ガイドラインは守りましょう。
Firefox OS
Conclusion Firefoxの拡張機能はWebExtensionsに移行します。 WebExtensionsは他のブラウザでも動きます。 今までよりも拡張機能の作り方が簡単になります。 Chrome, Operaと環境差がまだ少しあります。 「Simple」に作りましょう。
References WebExtensions - Mozilla
Wiki https://wiki.mozilla.org/WebExtensions WebExtensions - MDN>Mozilla>Add-ons>WebExtensions https://developer.mozilla.org/en-US/Add-ons/WebExtensions Chrome Extensions https://developer.chrome.com/extensions
Firefox Developers Conference
2015 in Tokyo Any Questions?
Advertisement