Summary:
Currently we download a bunch of FB icons and we normally use the smallest one available.
In this diff I change the download logic so we try to download from the largest to the smallest icon and use the first one available. One the client we no longer provide the icon of the same size that is requested, instead we provide the only one we have which will typically be larger than needed. This is a good thing because
1. flipper is a local application and we do not need to worry about icons take up broadband and downloading
2. People have high density displayed
I also stopped using density(rest of related code removed in the next diff) for icons as it the icons themselves did not support it.
Reviewed By: lblasa
Differential Revision: D50495194
fbshipit-source-id: f569c2f3b8ee424a67c6d21136e7e113868b8f6a
Summary:
Previously we had requested non existing icons. This fixes missing icons on pixel dense screens (macbook pro, 4k screens).
I could add x4, x5 icons as well. Though they are no better than x3. Even x3 is pretty raterized. Ideally we should be serving icons with higher resolution and scaling them down instead of doing this. Even better use SVG icons which we do not have.
Reviewed By: LukeDefeo
Differential Revision: D50454271
fbshipit-source-id: cda90972abb56069e160ddefdc6de460c49d06c0
Summary: This diff follows up on the previous one, by trying a larger icon size if the original requested icon size was missing.
Reviewed By: lblasa
Differential Revision: D46556076
fbshipit-source-id: 4a078088aa27390f247e39afeda4b1df261d8b30
Summary:
Since ~yesterday all our builds started failing due to being unable to download static assets. Although those assets load correctly in the browser, and by using the browsers's generated `curl` command, which looks like:
```
curl 'https://facebook.com/assets/?name=face-unhappy&variant=outline&size=24&set=facebook_icons&density=1x' \
-H 'authority: facebook.com' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'accept-language: nl,en-GB;q=0.9,en;q=0.8,nl-NL;q=0.7,en-US;q=0.6' \
-H 'cache-control: no-cache' \
-H 'cookie: OMITTED' \
-H 'pragma: no-cache' \
-H 'sec-ch-ua: "Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "macOS"' \
-H 'sec-fetch-dest: document' \
-H 'sec-fetch-mode: navigate' \
-H 'sec-fetch-site: none' \
-H 'sec-fetch-user: ?1' \
-H 'upgrade-insecure-requests: 1' \
-H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' \
--compressed
```
Download fails as soon as the cookie header is dropped.
Changes the base url to `https://facebook.com/images/assets_DO_NOT_HARDCODE/facebook_icons/` fixes that problem, unless the resolution doesn't exist (addressed in next diff).
This also seems to remove the flakiness we were experiencing before, so dropped the retry mechanism for now.
Also made failing to download an icon a warning instead of a build failure.
Reviewed By: lblasa
Differential Revision: D46552986
fbshipit-source-id: f1382d6a8fc6669691f0c8da6b77834d24a373c5
Summary:
Bumps [adobe/node-fetch-retry](https://github.com/adobe/node-fetch-retry) from 2.0.0 to 2.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/adobe/node-fetch-retry/releases"><code>@adobe/node-fetch-retry</code>'s releases</a>.</em></p>
<blockquote>
<h2>v2.1.0</h2>
<h1><a href="https://github.com/adobe/node-fetch-retry/compare/v2.0.0...v2.1.0">2.1.0</a> (2022-01-24)</h1>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="aaf1b7195d"><code>aaf1b71</code></a> [ci skip] no-release: version number update</li>
<li><a href="24d20a624b"><code>24d20a6</code></a> FEATURE-RELEASE: Add Typescript declarations (<a href="https://github-redirect.dependabot.com/adobe/node-fetch-retry/issues/42">https://github.com/facebook/flipper/issues/42</a>)</li>
<li>See full diff in <a href="https://github.com/adobe/node-fetch-retry/compare/v2.0.0...v2.1.0">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/3384
Reviewed By: passy
Differential Revision: D33892201
Pulled By: cekkaewnumchai
fbshipit-source-id: e318850d9bcad6908a92e41080fb64d8efafb183