Chrome拡張機能を初めて作ってみた - （ 新規タブに恐竜を表示してかわいくする ）


# はじめに
Chrome拡張機能を初めて作って公開してみたので、作成〜公開まで手順を迷ったところとともにメモしておく

## つくったもの
今回は、私の大好きなステゴザウルスを新規タブを開くと表示できるようにするため、Chrome拡張機能を作ってみた。
こういうの作るの初めてだったけれど、想像していたよりずっと簡単🌷

https://chromewebstore.google.com/detail/dino-tab/eidpaapgdegcccgdhkjonmeckboceimf

新規タブを開くたびこんな感じで可愛いステゴザウルスがあるいているよ。超絶可愛いからぜひインストールしてね⭐️

![画面収録 2025-06-08 1.26.19.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/2ca0f25a-4bc6-4e57-920a-c823509f3452.gif)



## githubソースコード
https://github.com/rainkorainko/chrome-ext-dinotab


# Chrome拡張機能の作成〜公開まで

## 作成
必要なファイル構成はとってもシンプル。
「manifest.json」っていうchrome拡張機能の設定ファイルがあるのでそれの準備と、実際に動かしたい機能（今回は新規タブに表示するhtml）、アイコン画像などを用意するだけ。

```
|--dino.js // 今回は恐竜を歩かせたかったのでアニメーション用に追加
|--img
|  　必要なアイコン画像など入れておく
|--manifest.json // 拡張機能の「設定ファイル」
|--newtab.html // 新しいタブ画面
```

### manifest.jsonを作る

全然知らなくて「うっ」てなったけど実はそんなに大変じゃない。

```json
{
  "name": "Dino Tab",
  "version": "1.0.0",
  "manifest_version": 3, 
  "description": "dino tab dayo",
  "chrome_url_overrides": {
    "newtab": "newtab.html"
  },
  "icons": {
    "16": "img/dinoicon16.png",
    "48": "img/dinoicon48.png",
    "128": "img/dinoicon128.png"
  }
}
```
それぞれどんな項目か？軽く解説。

- **version**：現在は3推奨なので3と書こう
- **name**：この拡張機能の名前となる
- **description**：公開時に説明として表示される。ここでは132文字までだが後で公開設定ページの中で10000字程度たっぷり記載可能
- **icon**：この拡張機能のアイコン
（詳細にどれがどこかまでは見切れていないが、以下画像のところでは48*48の画像が使われているみたい）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/632b92f1-d40f-44bf-be21-fe412cfb382a.png" width="200" >

- **chrome_url_overrides**：これはなにを作るかによる。今回は新規タブを上書きしたいため上記のように書いた

- **content_scripts**：今回は特に書いてないが、拡張機能といえばよくあるjsかなにかうごいたりするものであれば以下のように書いたりするっぽい
```json
"content_scripts": [
    {
      "matches": ["https://jsを動かしたいページ/*"],
      "js": ["content.js"]
    }
  ],
```

参考）https://developer.chrome.com/docs/extensions/reference/manifest?hl=ja

### html/css/js
今回公開までの流れをいったん書きたいので、詳細は割愛。
新規タブを以下のHTMLで上書きするイメージである。こんなイメージでかけば、可愛い恐竜の画像が新規タブに表示できる。

```html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>new tab</title>
    <link rel="icon" href="img/dinofavi.png" />
  </head>
  <body>
    <img src="img/dino1.svg" alt="超絶可愛いステゴザウルスの画像" />
  </body>
</html>
```

### イラスト・アイコン画像

**イラスト**
今回figmaの鉛筆で書いてみた（マウスでがんばって描いただけなので正直ツールはなんでもよかったが使い慣れていたため）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/fe31de3f-31f0-4bbd-857d-ccccf400f31c.png" width="300" >

**アイコン画像**
イラストで力尽きたためこちらのフリーアイコンを拝借。可愛いのがいっぱい🫶

https://icooon-mono.com/

### chromeでいざお試し
デベロッパーモードをONにし、左側の『パッケージ化されていない拡張機能を読み込む』から開発中のフォルダを選択すれば実際に確認することができる

![スクリーンショット 2025-06-07 23.48.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/33bbde14-ffe7-406e-aa75-8f6f35a97c7d.png)

## 公開
完成したらいよいよ拡張機能の公開をしていく。

### デベロッパー登録（$5）

実際に公開するにはデベロッパー登録というのをしないと公開できない。
登録料は$5かかる💰（**お金かかるのは最初の一回だけ！**）

https://developer.chrome.com/docs/webstore/register?hl=ja

登録はここから。

https://chrome.google.com/webstore/devconsole/register?hl=ja

### 必要事項の記入

アカウントの準備ができたら実際に公開準備をしていく。

https://developer.chrome.com/docs/webstore/publish?hl=ja

必要事項を記載して『審査のため送信』を押す。たりてない項目があればエラーで教えてくれる。

#### ストアの掲載情報

記入すべき各項目が実際どこにつかわれるものなのかよくわからなかったので簡単にメモ。
画像は指定のサイズを用意しないといけなくてややメンドイ。

- **説明**：ウェブストア検索後のページの「概要」に表示される内容。英語のほうがいっぱい見つけてくれるかな？と思って日本語と英語で書いてみた

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/404d793f-0672-4605-949c-62975323f051.png" width="500">

- **ショップアイコン**：詳細ページに飛んだ後のキャプチャ左上のアイコン（DinoTabの左）

- **スクリーンショット**：これはそのまま。具体的な使用感の例として表示される

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/0a9db02c-f931-4686-8283-39e441ceee03.png" width="500">

- **プロモーション タイル（小）**：これが検索直後に表示されるタイル画像

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/a45747a9-ac8a-4d63-a6e7-5c6bf09adf13.png" width="500">

- **マーキー プロモーション タイル**
何に使われているのかわからなかったのでAIに聞いたところ、Chrome ウェブストアで拡張機能が特集・おすすめとして表示される時に使われる画像らしい。（設定しなくてもよかったか？）

#### プライバシー
左にプライバシータブがあり、こちらも設定が必要。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/d081fb01-34b9-48ca-a4ef-755033d3f3a6.png" width="200">


#### アカウント
googleアカウントは２要素認証にしていないとエラーとなった。

また、以下のアカウントのメールアドレスも設定してあげないとエラーとなるのでわすれずに。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068391/c6fbbea5-dccf-4a19-9f22-35e4438360be.png" width="400">

### おまけ：審査待ち〜公開

ドキドキの審査は１日かからないくらいで完了〜公開された。
調べたら初回は長め？と書かれたりしていたが意外とスムーズ（たいした機能がついていないからなのかな？）

私の場合、公開から数時間後にはちゃんとウェブストア内で検索からも引っかかるようになった
（検索ひっかかるまではURLから直接飛んで確認できる）

# 最後に

HTMLプロフェッショナルの資格を以前取得したのですが、そこで勉強したアニメーションやら画像反転のCSSやらの技術が生きてきました。
資格勉強中はこんなものいつ使うんだと思っていましたが、今回たくさん使えたので勉強はしておくものだなあ、と。

また、DinoTabはもっとかわいくバージョンアップしていきたい所存です😌