こんにちは,
が,
Extensionsを作られた方はDeveloper DashboardからExtensionを登録できます。登録時の注意などはブログにまとめていますので,
さて,
Override PagesとNew Tabページ
まずNew Tabページとは,
早速,
Override Pagesのmanifest.
{
"name": "Blank new tab page",
"version": "0.1",
"chrome_url_overrides": {
"newtab": "blank.html"
}
}
2009年12月時点で,
ちなみに,
blank.
<html>
<head>
<title>Blank New Tab</title>
<style>
div {2009/12/09 3:04
color: #cccccc;
vertical-align: 50%;
text-align: center;
font-family: sans-serif;
font-size: 300%;
}
</style>
</head>
<body>
<div style="height:40%"></div>
<div>Blank New Tab™</div>
</body>
</html>
上書きしたページはExtensionsのページとして扱われますので,
- 速く,
小さく作る - New Tabページは頻繁に使用するので,
パフォーマンスが重要です。同期的にネットワーク通信やデータベースへの接続などをすることは避けましょう。 - タイトルを設定する
- タイトルを設定ないとURLがタブに表示されてしまいます。<title>New Tab</title> のようにしましょう
- キーボードのフォーカスがあることに依存させない
- 新しいタブを開いたときは常にOmnibox
(アドレスバー) にフォーカスします。 - デフォルトのNew Tabページを再現しようとしない
- デフォルトのNew Tabページとよく似たページを作るために必要なAPI
(よく見るページ, 最近閉じたページ, チップス, テーマの背景画像) は (今のところ) 存在しません。今のところは, デフォルトのページとはまったく違ったページにしたほうがよいでしょう。
Bookmarks API
続いて,
manifest.
{
"permissions": [
"bookmarks"
],
}
さて,
まず,
このBookmarkTreeNodeでフォルダもブックマークも表現するという点が少々わかりにくいかと思います。次に例として全ブックマークを走査するコードを挙げてみます。
全ブックマークを走査するサンプルコード
chrome.bookmarks.getTree(function(roots){
var bookmarks = [];
roots.forEach(parser);
function parser(node){
if (node.children) {
node.children.forEach(parser);
} else if(node.url) {
bookmarks.push(tree);
}
}
console.log(bookmarks);
});
chrome.
このように,
ブックマークの検索
chrome.bookmarks.search("テスト", function(results) {
console.log(results);
});
名前の通り,