If you tend to not use or think about favicons within the browser UI, you
can probably ignore this message.

Hey firefox-dev / dev-platform!

Just a heads up to let you know that bug 1354248 landed and stuck a few
weeks back, meaning that as of Firefox 103, the `page-icon:` protocol now
also works in the privileged about content process.

For those unfamiliar, the page-icon: protocol allows front-end developers
to show favicons for sites within the browser UI. For example, if you open
up the Bookmarks or History menus/toolbar button panels/sidebars, you'll
often see favicons (or the default globe favicon) rendered to the left of
the page title. That's using the page-icon: protocol, usually like this:

```
<img src="page-icon:https://www.mozilla.org/en-US/"; />
```

or, perhaps less frequently, in dynamically generated CSS, like:

```
.some-item {
  background-image: url(page-icon:https://www.mozilla.org/en-US/);
}
```

There's a lot going on behind the scenes for gathering and storing favicons
in the Places database as users navigate the web which I won't go into
detail about here, but suffice it to say that the above is how you,
ultimately, query Places for the binary favicon data for a particular
site[1].

Up until now, this protocol has only ever worked in the parent process.
Pages like about:newtab, which run in the privileged about content process,
have not been able to use it, and have had to resort to pretty wild hacks
to show favicons (the usual trick is to serialize them into data URLs and
send those big strings over IPC).

Well, now that bug 1354248 has landed, the privileged about content process
can now use the page-icon: protocol just like the parent process. No more
data URL hacks required!

To be clear, this privilege is only being granted to the privileged about
content process. Normal content processes are definitely not allowed to use
this protocol, as that could constitute a history data privacy leak. Normal
content processes that attempt to use this mechanism will be blocked by the
script security manager, and compromised content processes that might
manage to make an IPC request for the page-icon data will be crashed
immediately by the parent process.

Anyhow, though that might be handy for people to know.

-Mike

[1]: There's even a way to specify the size of the favicon you want back by
supplying onen edge of the square in pixels! Example:

```
<img src="page-icon:https://www.mozilla.org/en-US/#size=32"; />
```

This is pretty non-obvious, and I only discovered this while looking at the
source. Hopefully I'll find time to document this for
https://bugzilla.mozilla.org/show_bug.cgi?id=1773512.

-- 
You received this message because you are subscribed to the Google Groups 
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CA%2B3p4ubOBUXw2nqtyH6OwRtutwrdfViydyK2A1Ti7DJ0KW%3DWdQ%40mail.gmail.com.

Reply via email to