1782 Commits

Author SHA1 Message Date
Sebastian Benz
c4393862e1 update contribution guide to recommend creating issues first (#1630) 2026-03-04 11:30:06 +01:00
Michael Lip
e85e798a37 feat: add chrome.commands API sample (#1629)
Add a new MV3 sample demonstrating the chrome.commands API.

The sample registers custom keyboard shortcuts in the manifest,
handles command events in the service worker with notifications
and badge text feedback, and uses chrome.commands.getAll() in the
popup to display all registered shortcuts.

Closes #1126
2026-03-04 11:18:27 +01:00
Oliver Dunk
e48ebc8c4a Remove unneeded lines in husky pre-commit hook (#1323) 2026-03-03 10:55:39 +00:00
Sebastian Benz
4ffe03c811 Add missing readme files. Fixes #798 (#1616) 2026-01-26 15:35:56 +01:00
Oliver Dunk
36f42978b8 Update Puppeteer tutorial to open popup with openPopup() (#1613)
Updates the Puppeteer tutorial to use the `action.openPopup()`
method to open the popup, and then `asPage()` to access the popup
as a page target.

A basic service worker has been added to the history sample to
give us a context to call `action.openPopup()` in.
2026-01-20 12:29:34 +01:00
Sebastian Benz
85f721f5a9 Improve Gemini samples (#1611)
* Migrate to latest version of the language model

* Update readme to better describe the sample.

* More readme updates

* Consistent API naming and format lists
2026-01-15 13:38:00 +01:00
Rin
43a7939928 security: update rollup plugins and fix potential XSS in idle sample (#1607)
* chore: update outdated rollup plugins in functional samples

* security: fix potential XSS by replacing innerHTML with safe DOM manipulation

* chore: revert package updates (let dependabot handle them)

* Add missing newline
2026-01-08 14:31:28 +00:00
Rin
99ba96e67c security: restrict content script matches to specific domain in favicon sample (#1610)
* security: restrict content script matches to specific domain instead of <all_urls>

* docs: update README to reflect domain restriction
2026-01-08 14:11:55 +00:00
Rin
ddf0e9ae8a security: use activeTab instead of <all_urls> to follow principle of least privilege (#1608) 2026-01-08 13:12:33 +00:00
Rin
5e666b9b6b security: replace insecure innerHTML with textContent and replaceChildren (#1609) 2026-01-08 13:09:07 +00:00
Oliver Dunk
2862740483 Use <number>.<number> format for Google Analytics client ID (#1606)
* Use <number>.<number> format for Google Analytics client ID

With the `ENFORCE_RECOMMENDATIONS` [validation behavior](https://developers.google.com/analytics/devguides/collection/protocol/ga4/validating-events?client_type=firebase#send_events_for_validation), Google Analytics warns about client IDs not in the <number>.<number> format.

This is not an issue in practice - that recommendation is for compatibility with existing client IDs and events are still processed with a client ID in any format. Additionally, the validation is not enabled by default.

However, this PR updates our sample code to use a consistent ID regardless to reduce noise if the validation is enabled. We use a random ID concatenated with a UNIX timestamp to match other GA client libraries.

* Run eslint
2026-01-07 15:19:18 +00:00
gmf-uah
5dad4a4879 Update README.md (#1527)
* Update README.md

Fixed the 'unpacked extension' link and revised wording for clarity

* Update README.md

Revised wording [2]

* Clarify README

Better wording on the first two sentences
2026-01-07 15:14:07 +00:00
Mike Wasserman
043d263fee Add Prompt API trial tokens for multimodal extension samples (#1597)
* Add Prompt API trial tokens for multimodal extension samples

* Add keys and update tokens

---------

Co-authored-by: Mike Wasserman <msw@chromium.org>
2026-01-06 13:51:57 +00:00
Oliver Dunk
bce4254d71 Fix typo in devtools sample (#1593) 2025-12-08 17:08:43 +00:00
Oliver Dunk
11898ee8eb Fix issue in advanced fontSettings sample (#1523)
We were using the wrong key when importing settings from a file.
Additionally, added a reload to fix an issue where the UI was not
updated when new settings were imported.

Fixes #1519
2025-08-05 18:33:39 +01:00
Vin Lim
5f6f02b924 Fix prompt format for image description in prompt array (#1516)
* Fix prompt format for image description in prompt array

* [Bug] Fix syntax error (#1515)

* Fix syntax error

* Fix prompt format for audio transcription in session.promptStreaming

* Fix formatting

---------

Co-authored-by: Sebastian Benz <sbenz@google.com>
2025-07-29 08:42:39 +02:00
Vin Lim
eca778c3c6 Fix/format issue (#1518)
* Fix prompt format for image description in prompt array

* Fix formatting for audio scribe example

* Revert unrelated commit
2025-07-29 08:40:22 +02:00
Vin Lim
62de17bf69 [Bug] Fix syntax error (#1515)
* Fix syntax error

* Fix prompt format for audio transcription in session.promptStreaming
2025-07-28 13:28:13 +02:00
Oliver Dunk
517cf1093e Move sw-tips tutorial to use chrome.dev (#1505)
Moves from the Glitch URL to chrome.dev, and removes the host
permissions as we now set CORS headers.
2025-07-10 15:31:51 +02:00
Oliver Dunk
b55612ae64 Handle SPA navigations in reading time example. (#1496)
In the move to new infrastructure for https://developer.chrome.com/, the
site became an SPA which can soft navigate outside of browser
navigations. Therefore, we need to update the sample to watch for
changes to content after the content script is injected.
2025-06-23 09:34:53 +02:00
dependabot[bot]
8d6e02ae45 Bump eslint-plugin-prettier from 5.2.1 to 5.4.1 (#1487)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.1 to 5.4.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.1...v5.4.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.4.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-10 15:30:28 +01:00
dependabot[bot]
fb85450cc0 Bump dompurify in /functional-samples/ai.gemini-on-device (#1448)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.1.6 to 3.2.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.1.6...3.2.4)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-10 15:30:01 +01:00
Chris Ho
9911b0a667 on installation open up the sidepanel for users (#1483)
* on installation open up the sidepanel for users

* ran 'npm run lint:fix'
2025-06-05 13:05:41 +01:00
Oliver Dunk
08e8c96c5f Add linter fixes for new AI samples (#1484) 2025-06-02 13:46:10 +02:00
Sebastian Benz
20d36c7780 Fixes to AI samples (#1479)
* Migrate to latest summarizer API

* fix temperature to be less creative
2025-05-23 17:29:23 +02:00
Sebastian Benz
a8aec773d8 add audio scribe sample (#1475)
* add audio scribe sample

* Fix wrong parameter name

* Cleanup and more robust audio scribe

* better manifest descriptions

* demo chat app clean up
2025-05-20 08:37:50 +02:00
Sebastian Benz
a42c4121cc Add new AI samples and update existing to use new API shape (#1474)
* Add new AI samples and update existing to use new API shape

* address comments
2025-05-16 20:43:25 +02:00
Zaif Senpai
0a67271feb Replaced clearbit API (deprecated) (#1453) (#1456)
* Replaced clearbit API (deprecated) with Google's favicon snatcher

* Updated UI designs for optional_permissions examples of both mv2 and mv3

Using chrome's build in favicon provider for optional_permissions examples

* Run linter

---------

Co-authored-by: Oliver Dunk <oliverdunk@google.com>
2025-05-08 13:59:07 +01:00
Oliver Dunk
5113e3c266 Use Puppeteer LaunchOptions for loading extensions. (#1466)
This is supported in the latest release: https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v24.8.0
2025-05-07 11:08:10 +01:00
Oliver Dunk
9b88cf7e14 Address feedback on mole game tutorial code. (#1462) 2025-04-30 17:14:43 +01:00
Oliver Dunk
aab4aa91fd Partial fixes for sample list generator (#1464)
* Partial fixes for sample list generator

A number of fixes for the sample list generator:

- Removes a comment from one of our manifest files, as we don't
  currently support JSONC.
- Ignores the `node_modules` folder since we have recently added some AI
  samples with a build step.
- Adds the `aiOriginTrial` API to the list of recognised APIs.
- Updates `extension-apis.json` with the latest data from the
  `chrome-types` package.

Updating recognised extension APIs still requires access to a
non-existent storage bucket, so this does not fully fix the process.

* Fix linter issue
2025-04-30 17:14:32 +01:00
Thomas Steiner
8fe3174642 Update to new API shape 2025-04-22 06:52:37 -07:00
Thomas Steiner
66672f857a Update to new API shape 2025-04-22 06:48:54 -07:00
ljjlee
1cf9c53d4b Add getProfileUserInfo example to sample identity extension (#1454)
* Add getProfileUserInfo example to sample identity extension

* Clarify UI

* Run prettier

---------

Co-authored-by: Oliver Dunk <oliverdunk@google.com>
2025-04-07 16:41:09 -07:00
ljjlee
b0f55f9d15 Disambiguate account/local folders sample bookmarks extension (#1435)
* Disambiguate account/local folders in the UI for sample bookmarks extension

* Code-review markups

* Fix lint issues
2025-04-03 11:05:22 +01:00
Oliver Dunk
6116518873 Add mole game tutorial (#1433)
LGTN
2025-04-02 18:10:45 +01:00
Oliver Dunk
8cf0e9a827 Fix linter error and run on PRs (#1447)
Fixes a linter error in the `identity` API sample, and updates the
linter to run on all PRs going forward.
2025-03-31 15:17:58 +02:00
ljjlee
40456c76c1 Don't assume existence of hard-coded bookmark Ids (#1434)
Instead, use the default location on the create() call.
2025-03-31 12:30:15 +01:00
ljjlee
db2d231476 Add sample Identity API extension (#1432)
* Initial copy of _archive/apps/samples/identity

* Modify to run be an extension rather than a Chrome App.

* Update extension to manifest v3

* Update README

* Remove references to chrome://identity-internals

* Use Promises rather than callbacks

See https://developer.chrome.com/docs/extensions/develop/migrate/api-calls#replace-callbacks

* Apply code-review markups.

* Apply more code-review markups

* Format with prettier

* Use Promise.catch instead of runtime.lastError

* Update screenshot

---------

Co-authored-by: Oliver Dunk <oliverdunk@google.com>
2025-03-20 14:17:39 +00:00
dependabot[bot]
8f97d22fdc Bump cross-spawn in /functional-samples/tutorial.terminate-sw/puppeteer (#1399)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 21:14:15 +01:00
dependabot[bot]
50a4cadc20 Bump eslint from 9.12.0 to 9.19.0 (#1396)
Bumps [eslint](https://github.com/eslint/eslint) from 9.12.0 to 9.19.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.12.0...v9.19.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:59:37 +00:00
dependabot[bot]
882a24a6a5 Bump chrome-types from 0.1.312 to 0.1.335 (#1398)
Bumps [chrome-types](https://github.com/GoogleChrome/chrome-types) from 0.1.312 to 0.1.335.
- [Commits](https://github.com/GoogleChrome/chrome-types/commits)

---
updated-dependencies:
- dependency-name: chrome-types
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:52:21 +00:00
dependabot[bot]
9350c3a6a4 Bump globals from 15.11.0 to 15.14.0 (#1379)
Bumps [globals](https://github.com/sindresorhus/globals) from 15.11.0 to 15.14.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v15.11.0...v15.14.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:51:50 +00:00
dependabot[bot]
509a5d2df5 Bump eslint-plugin-jest from 28.8.3 to 28.11.0 (#1392)
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 28.8.3 to 28.11.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v28.8.3...v28.11.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:51:20 +00:00
dependabot[bot]
f475b140a4 Bump cross-spawn in /functional-samples/tutorial.puppeteer (#1358)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:50:41 +00:00
dependabot[bot]
21b2ba2138 Bump @eslint/js from 9.12.0 to 9.19.0 (#1397)
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.12.0 to 9.19.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.19.0/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:50:10 +00:00
Rishi Kumar Tiwari
40e9576a29 Added README Files For Tutorials (#1371)
* tutorials redme

* update 404 URLs

* tutorials redme

* readme files

* readme

* readme

* Update functional-samples/tutorial.getting-started/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* url change not required

* Update functional-samples/tutorial.tabs-manager/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update README.md

* Update functional-samples/tutorial.tabs-manager/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update functional-samples/tutorial.hello-world/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update functional-samples/tutorial.getting-started/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update functional-samples/tutorial.hello-world/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update functional-samples/tutorial.getting-started/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update functional-samples/tutorial.getting-started/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* Update functional-samples/tutorial.getting-started/README.md

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>

* foxed typo for tabGroups

* Fixed typo for tabGroups

---------

Co-authored-by: Oliver Dunk <oliver@oliverdunk.com>
2025-01-13 10:15:28 +00:00
minggeorgelei
692e9a990e fix: the extension page will refresh after clicking the button. We need to add preventDefault to prevent form default behavior. (#1378)
Co-authored-by: George <minggeorgelei@gmail.com>
2024-12-24 21:25:29 +00:00
Justin Lulejian
5064031481 Remove notification permission from push cookbook sample (#1365)
* Remove notification permission from push cookbook sample

As of [M132] this requirement is no longer necessary (unless the extension chooses to show a notification).

[M132]: https://chromiumdash.appspot.com/commit/ed68ac786e9a276ef2b627b7e21cf0d20cc6d798

* address review comments

* Add note about minimum Chrome version

---------

Co-authored-by: Oliver Dunk <oliverdunk@google.com>
2024-12-24 21:08:12 +00:00
Oliver Dunk
600017fca8 Add environment variable for configuring storage bucket (#1372)
Adds the STORAGE_BUCKET environment variable which is used for
determining which bucket the prepare-chrome-types script loads type data
from.
2024-12-20 19:52:52 +00:00