Chrome拡張機能向けのDefinitelyTypedにPromise対応関数定義を追加しました

Chromeウェブブラウザが登場した当時から、開発者は拡張機能(Extensions)を作ってウェブブラウザの機能を追加することができました。歴史が古いChrome拡張機能ですが、現在はManifest Version 3(MV3)が最新の環境です。MV3は、セキュリティ、プライバシー、そしてパフォーマンスといった面で従来よりも進化したバージョンとして登場しました。従来からある拡張機能はこのMV3へのマイグレーションが求められ、そしてこれから新規に開発する拡張機能についても、もちろんMV3...

2016年度版 僕が考えたChrome拡張機能を作るときのデザインパターン

4年近く前の2012年に僕が考えたChrome拡張機能を作るときのデザインパターンというエントリを書きました。最近参加したイベントで「よういちろうさんの拡張機能の記事見て作ってみました〜」と声をかけてくれた人がいて嬉しかったのですが、2012年のそのエントリは、すでに内容が古くなってしまっています。最近の状況を踏まえて、内容を新しくした「2016年度版」を書いてみようと思います。 変更しようと思った点は、以下です。 prototype.jsは使わず、ECMAScript 2015...

Chrome OSに仮想ファイルシステムを提供するためのAPIのリファレンスを和訳してみました

最近Chromebookを買いました。Dell Chromebook 11 です。ちゃちい作りかと思ってたのですが、かなりしっかりした作りで、かなり気に入りました。ただし、macbook airを持ってるので、もちろん普段はChromebookを使う機会は少ないです。ただし、僕にはどうしても作ってみたいものがあり、その動作検証のため、そして僕が作ったものによって、僕がChromebookを利用する機会が増えるように、と購入を決意しています。 その作りたいものとは何か、それはFile Sy...

Movable Type Data API & Chromeアプリ勉強会で発表をしてきました

今日の夜、SixApart社主催の「 MT Hackathon @ Six Apart New Office 〜Data API で Chromeアプリを作ろう〜」に向けた勉強会が開かれました。そこで僕はChromeアプリ&拡張機能でできることや作り方についての発表をしてきました。 Chromeアプリ/拡張機能の入門に関する資料は、あるようであまりないので、ぜひ上記を参考にChromeアプリや拡張機能を作ってみてください。そして、Movable Type Data APIを使ったChro...

Chrome Apps for mobileの開発方法

一部で話題になっていたGithubにある「 MobileChromeApps / mobile-chrome-apps」ですが、先日遂に 正式にGoogleからアナウンスがありました。デスクトップPC向けに開発されたChrome Appを元にして、このツールを使ってモバイル向けアプリ(Android/iOS)を自動的に作成することが可能です。HTML5とJavaScript、CSSを使って、Android/iOSアプリを開発することができるだけでなく、その中で各種Chrome APIを使う...

chrome.identity APIのリファレンスを和訳してみました

Chromeのstable 29から、OAuth2を拡張機能内で扱うためのAPIが搭載されました。APIリファレンスを和訳してみましたので、興味のある方は参考にしてください。 Original: http://developer.chrome.com/extensions/identity.html chrome.identity 説明: OAuth2アクセストークンの取得のためにchrome.identity APIを使います。 利用可能環境: Chrome 29 安定版以降 権限...

Chrome Packaged Appsが「Chrome Apps (Chromeアプリ)」として正式公開されました

既に「Chrome Packaged Apps」として開発者に知られていましたが、遂にGoogleはそれを「Chrome Apps(Chromeアプリ)」という名前で正式公開しました。今まではPackagedアプリを作ってChromeウェブストアに公開しても、検索にヒットせず、カテゴライズもされていませんでした(URLを直接知らないと見つけられなかった)。現在は、Windows向けのChromeウェブストアで「PC向け」としてPackagedアプリがいくつか公開されています。 以下、...

Chrome extension向けにCPU情報取得APIが登場しそうです

たまに「何か新しいAPIが登場してないかなぁ」とChrome extensionのAPIリファレンスを眺めに行きます。今日も眺めていたら、見慣れないAPIがリストに追加されているのに気がつきました。 その名は、「chrome.system.cpu」です。 http://developer.chrome.com/extensions/system_cpu.html これはCPUに関するメタ情報を得るためのAPIです。まだソースコードのtrunkにしかなく、自分でビルドしないとこのAPI...

「開発者のためのChromeガイドブック」が出版されます!

Chromeを担当しているGoogle Developers Expert達と、Chromeに関する書籍を執筆しました。7月5日に発売予定です。 この本は、3つの章から構成されています。 Chrome API Chromeウェブストア デベロッパーツール 僕はChromeウェブストアの章を担当しました。ウェブストアの掲載内容、アプリや拡張機能をウェブストアに公開するための手順、そして課金APIやウェブストアにアプリを...

Chromeデベロッパーダッシュボードで公開鍵を確認できるけど何のため?

ちょっと前に僕がリリースしている拡張機能をバージョンアップしようとして、Chromeデベロッパーダッシュボードを開きました。そこには見慣れないリンク「詳細」がありました。 押してみると、アイテムIDや公開鍵が表示されました。 ここで「おぉ、なんと便利な!」と思った方は、下を読まなくてもいいです。僕は最初「え、公開鍵なんて表示されても、何に使うんだ?利用用途ないだろおい」と思ってしまいました。でも、理由なく単に「特に意味ないけど出してみました、てへっ」なんてことはないと思うので、...

省電力を抑制するchrome.power APIが利用可能になりました

「操作はしていないけれど、画面を表示しっぱなしにしておきたい」という場面があります。例えば、プレゼンテーションの真っ最中とか、電子書籍を読んでいる時などです。そのような種類のアプリや拡張機能をChrome向けに作った際に、 chrome.power APIを使うことで、一時的に省電力に入ることを抑制することが可能です。 Chrome 27から、アプリと拡張機能の両方でchrome.power APIを使うことができます。そのAPI Referenceを和訳してみましたので、下に掲載します...

ChromeのDownload APIリファレンスを和訳してみました

そろそろStableになるんじゃないかと思って、Chromeの拡張機能で利用可能になる予定の Download APIのリファレンスを和訳してみました。Chrome Canaryでは実際に試すことができます。Download APIは、ファイルダウンロードをプログラムから制御可能にするAPIであり、chrome://downloads/ ページ相当の機能をプログラムで実現可能というものです。 結構このAPIを待っていた人は多いと思います。Stableに入るまでに、ぜひAPIの使い方をマス...

Chromeウェブストアにて段階的にユーザを増やせる機能が追加されました

Chrome拡張機能を久々にバージョンアップしようとして、Chromeデベロッパーダッシュボードに行ってみると、何やら新しい機能を発見!それは、 「段階的に新しいバージョンの利用ユーザを増やしていける機能」 です。Chrome拡張機能のzipファイルをアップロードすると、以下のようなUIが出てくるようになりました。 つまり、ここで入力した割合で限定されたユーザ数にのみ、このバージョンを利用してもらうということが可能になります。例えば、新しい機能の評判を徐々に見ていくとか、新しい機...

Image Collector extensionの週間ユーザ数が20,000人を超えました

ちょうど昨年の今日に、 Image collector extensionをリリースしました。画像の一括ダウンロードという機能が欲しくて自分用に作った拡張機能でしたが、おかげさまで今日Developer Dashboardを見たら、1週間のユーザ数が2万人を超えることができました。 Google Analyticsの測定でも、訪問数が2万を超えているのがわかります。 拡張機能側は最近手を入れてなくて、もっぱらサーバ側の調整をしてます。ホントはクラウドサービスを使って負荷分散とか...

SyncFileSystem APIの仕様ドラフトを和訳してみました

時代はそろそろ「オフラインファースト」になる模様ですが、そのためにはブラウザが情報をオフラインで扱うことを可能にする機能が充実してくれないといけません。いろんなAPIを組み合わせて駆使していけば、現状でもできないことはないです。しかし、もちろん僕らは手軽にオフライン対応Webアプリを作りたいですよね?同期処理や競合など、自分で面倒見たくは誰しもないはずです。 SyncFileSystem APIはそんな僕らの要求に応えてくれるかもしれないと考えています。まだChrome Canaryでし...

徐々にユーザが戻ってきた

Image Collector extension、2月10日にやらかしてしまった結果、多くのユーザが休眠状態になってしまいました。何をしてしまったかは、「 Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか」のエントリをご覧ください。 その後、徐々に復活してきてます。ホントに徐々にですけど。休眠してたユーザが再び使い始めてくれているってことでしょうか。 もどってこーい!そして再び使ってくれー!

Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか

開発者は常に新しい価値をユーザに提供したいと考えています。自分の技術的興味が、結果としてユーザを幸せにすることを切に願っています。新しい機能を提供するということは、時にユーザの持ち物をプログラムから更にアクセスできるようにならないと実現しません。勝手に持ち物に触ることは、現実世界ではやってはいけないことですし、もちろんChromeの中においても同じです。ユーザに許可を得て初めて、プログラムはユーザの持ち物に触れる権利を得られるのです。 全てのユーザが「うん、いいよ」と言ってくれれば話は楽...

Event pageを複数回取ろうとしたときの罠はバグでした

ちょっと前に「 Event pageを複数回取ろうとしたときの罠」というエントリをしました。これは、以下のようなコードを実行した時に、Event pageのwindowオブジェクトを最初の1回しか取得できない、っていう現象を報告したものでした。 chrome.runtime.getBackgroundPage(function(backgroundPage) { console.log("1: " + backgroundPage); }); chrome.runtime.get...

自らDoS攻撃を食らった話(onStartupやonInstalledの使い方)

自分が作って公開しているChrome拡張機能をEvent page対応したことは 前のエントリで紹介しました。一般的にはそのエントリの内容で十分であり、Chrome拡張機能の動作自体は問題なかったのですが、思わぬところで落とし穴が一つありました。 それは、Ajax通信によるバックエンドサーバとの通信料の増加、でした。 Image Collector extensionでは、Dropboxなどのクラウドストレージサーバに画像をアップロードする機能を、Chrome拡張機能内ではなく、僕の自...

Event pageを複数回取ろうとしたときの罠

【追記: 2013/02/08】以下の挙動はChromeのバグっぽいので、 バグレポートを提出しています。 Chrome拡張機能を作っていて、最近はまったことをここで紹介したいと思います。それは、「複数回Event pageを取得しようとしたときの挙動」についてです。常駐しないエコタイプのBackground pageである「Event page」ですが、これをポップアップウィンドウなどから取得する際には、以下のように記述します。非同期な感じです。 chrome.runtime.get...

Chrome拡張機能におけるエコ対策(Event pageへの移行方法)

いくつかChrome拡張機能を作ってChromeウェブストアに公開しているのですが、それを最初に公開したときはmanifest.jsonファイルのバージョンがまだ最初の頃でした。現在ではバージョン2が主流であり、そろそろ古いバージョンの拡張機能は撲滅される予定になっています。そのため、開発者はそろそろ急いで新しいバージョンに変更すべく、せっせと移行作業を進めなければなりません。これは何もGoogleの開発者いじめではなく、ちゃんとした理由があります。その理由は、どれも開発者およびユーザへの...

新しいImage Collector extensionは”スライドショーモード”をサポートしています

昨日、 Image Collector extensionの新しいバージョンをリリースしました。そのバージョンは、”スライドショーモード”という名前の新しい機能をサポートしています。きっとその機能は、ネットサーフィンをより楽しくしてくれると思っています。 この拡張機能のボタンをクリックしてポップアップを開いたとき、スライドショーモードを開始するための新しいリンクを見つけることができます。 そのリンクをクリックすると、スライドショーモードが開始されます。今見ていたWebページの画像を...

Chrome+HTML5 Developers Live Japan #1で話してきました

昨日1月24日の夜に、 Chrome+HTML5 Developers Live Japan #1でChrome extensionの話をしてきました。その時の模様は以下で見れます。7分過ぎくらいから音量が大きくなりますので、それまではVolume MAXでお願いします。 使ったスライドは以下です。 内容としては、ちょっと前に書いた「 僕が考えたChrome拡張機能を作るときのデザインパターン」の内容をベースに、Chrome拡張機能のHello, worldを作るための方法や、拡張機能...

WebKitBlobBuilderがChromeから削除されたっぽい

Chrome拡張機能として提供しているImage Collector extensionの中で、今までWebKitBlobBuilderを使っていました。使ってた箇所は、画像を一気にダウンロードするコマンドが列挙されたスクリプトファイルを作る箇所。以下のようにしてました。 var script = "..."; var blobBuilder = new WebKitBlobBuilder(); blobBuilder.append(script); var link = documen...

Image Collector extensionの週間ユーザ数が15,000人を超えました

めでたい。実はサーバの運用に結構苦労してました。今はロジックの変更をして負荷軽減できてます。 今年5月の公開から今までの利用ユーザ数のグラフがこれ。順調に増えてます。 Image Collector extensionは、ChromeでWebページにある画像を手軽に一括ダウンロードできる便利な拡張機能です。ぜひお試しください。

僕が考えたChrome拡張機能を作るときのデザインパターン

最近いくつかのChrome拡張機能を作っていて、すでに数千人のユーザを獲得できているものが出てきてたりします。 Image collector extension goo.gl URL Shortener extension mixi Check button extension Semantic inspector これだけ作ってると、何となく自分でのChrome拡張機能を作り出す際のデザインパターン...

Image Collector extensionが週刊アスキーに取り上げられました

週アスのWebサイトを見て初めって知ったのですが、 Image Collector extensionが週刊アスキー10月16日号の記事の中で取り上げられていました。 「Googleドライブ完全活用」という特集記事の中です。Image Collector extensionは画像をGoogleドライブにアップする機能も備えています。これが記事のテーマに合ったみたいです。 URLがこのブログになってて、Image Collector extensionを使いたい人がインストールの...

Image Collector extensionの週間ユーザ数が10,000人を超えました

やった! Image Collector extensionの週間ユーザ数が1万人を突破しました! この拡張機能は今年の5月6日から公開していて、半年で僕の目標を達成したことになります。 この拡張機能を使うことで、今見ているWebページの画像を簡単に、そして迅速に入手することができます。もし興味あればぜひ使ってみてください。

Chrome拡張機能をWeb Intents対応してみた

goo.glサービスを手軽に使うための「goo.gl URL Shortener extension」ですが、Chrome 19からWeb Intentsが普通に使えるようになったので、さっそく組み込んでみました。 goo.gl URL Shortener extension - Chrome Web Store 試す場合は、goo.gl URL Shortener extensionをインストール後に、以下のページに行って、[Shorten link]ボタンをクリックします。 ...

ChromeにてWebページ内の画像を一気にDropboxへ登録する方法

Webページ内の画像をいかに一気に自分のPCに保存するかを考えて開発を始めたChrome Webブラウザ向け拡張機能「Image Collector extension」ですが、昨夜にバージョン2.0.1をリリースしました。 このバージョンにおいて、大きな機能追加を行いました。それは「Dropboxへの画像の登録」をできるようにしたことです。スクリプトファイルを自分で実行することなく、リンククリックのみでWebページ上の条件にあった画像を一気にDropbox上のフォルダに登録すること...

3200ユーザ突破!

あともうちょっとで3000だ!と思ってたら、すでに3200ユーザを突破していました。 Chromeを使っている方は、ぜひご利用してみてください!

Google URL Shortener extensionユーザの増加

Google URL Shortener extensionを利用してくれているユーザの数は、毎週増加しています。 もしまだこの拡張機能を使っていない場合は、すぐにお試しください。また、もしご利用されている方は、ぜひ「こんな機能が欲しい」といったご意見を気軽に教えてください。

mixiチェックボタン拡張機能で背景画像をセットできるようになりました

Chrome Webブラウザ向けに作った” mixi Check button extension“ですが、好きな画像をポップアップウィンドウの背景にセットできるようにしました。 森な気分であれば、こんな風に。 海な気分であれば、こんな感じに。 俊介Love!であれば、こんな感じにも。 背景画像は、この拡張機能のオプションから設定することができます。 あなたのネットライフのお供として、ぜひお使いくださいませー!

Chrome拡張機能の国際化とユーザ数の伸び

11月に公開した” goo.gl URL Shortener extension“は、既に以下の言語向けに国際化を完了しています。機能拡張するたびにGoogle翻訳で各言語のメッセージリソースを作りだすのは手間なのですが、少しでも多くの人に使ってもらうためには、安いコストです。 英語 日本語 フランス語 中国語 ポルトガル語 国際化の効果について、皆さん知りたいと思いませんか?この拡...

goo.gl URL Shortener extension has been supporting Read It Later

My extension “goo.gl URL Shortener extension” helps you to create tiny URL with Google URL Shortener service and to share it for a social media you’re using. From its version 1.16.1, the extension has been supporting Read It Later service. For ins...