Summary:
This change improves our offline page. Mainly:
- Remove Oops! wording as it may imply some error took place.
- Remove the reload button. Automatic reload takes place at 2.5s intervals so this is unnecessary.
Changelog: Improved offline page (reload button removal)
Reviewed By: antonk52
Differential Revision: D46720650
fbshipit-source-id: 522f86d1a4d3d4b091672077cba1a26f898d19e8
Summary: Feedback from michel, It is always empty for android so dont show it
Reviewed By: elboman
Differential Revision: D46152985
fbshipit-source-id: 6c4f1d499ddb8916fdae6015cd57e158a0c1f182
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/4830
YogaKit is a library which allows integrating Yoga layouts directly with UIKit. It is not used by higher level libraries like ComponentKit or React Native, but is used by a smattering of surfaces and shared components in Origami Studio and Instagram. See the following search for `YogaKit/UIView+Yoga.h`.
{F1026467213}
It is not really being developed anymore, and doesn't have much of a future, so I am deprecating it in OSS, to remove after the next OSS Yoga release. This means Flipper in OSS will not be able to rely on it.
Instead of special-casing for OSS vs not, this change removes the current YogaKit integration with the layout plugin, since it sounds like we are building a new layout plugin anyway, and I'm not aware of any new surfaces being built on top of YogaKit.
Removing Yoga as a dependency from Flipper should also allow us to fixup the current OSS Flipper build, along with a whole bunch of hacks RN's open source build currently does to produce a Yoga pod compatible with both RN and Flipper.
There are probably some OSS related lockfiles that can be updated after this, for things like the FlipperKit sample app. I did not do that as part of this change, since I don't know how healthy all of that infra is or how it integrates with the offline mirror used.
Reviewed By: passy
Differential Revision: D46664918
fbshipit-source-id: 9d4dd56aa4c7f55e97ac643aa6e4deb9375e582c
Summary:
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.10.2 to 4.10.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/robolectric/robolectric/releases">org.robolectric:robolectric's releases</a>.</em></p>
<blockquote>
<p>Robolectric 4.10.3 is a minor release that addresses two issues:</p>
<ol>
<li>Fixes <a href="https://redirect.github.com/robolectric/robolectric/issues/8187">robolectric/robolectric#8187</a>, which was a performance regression that was introduced by 87803687f3c6556c3d012ffaa07695d71c3eecd9. This performance regression only occurred if tests did not release transient HandlerThreads at the end of each test. It is still recommended to clean up any HandlerThreads to avoid leaking threads. Thanks <a href="https://github.com/brettchabot"><code>@brettchabot</code></a> for the fix (83110398959107637e2653d49835d5d25db31a89).</li>
<li>Adds additional logging to help diagnose <a href="https://redirect.github.com/robolectric/robolectric/issues/8205">robolectric/robolectric#8205</a> ( f1e7b43651456e3cb22bc86d48291d60cef64d18), which is a SHA-512 mismatch when fetching android-all Jar files during runtime.</li>
</ol>
<p><strong>Full Changelog</strong>: <a href="https://github.com/robolectric/robolectric/compare/robolectric-4.10.2...robolectric-4.10.3">https://github.com/robolectric/robolectric/compare/robolectric-4.10.2...robolectric-4.10.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f9c52b0dfe"><code>f9c52b0</code></a> Bump version to 4.10.3.</li>
<li><a href="f1e7b43651"><code>f1e7b43</code></a> Add additional logging when validating fetched android-all Jars</li>
<li><a href="8311039895"><code>8311039</code></a> Only wake non-empty messageQueue on clock updates.</li>
<li>See full diff in <a href="https://github.com/robolectric/robolectric/compare/robolectric-4.10.2...robolectric-4.10.3">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/4762
Reviewed By: lblasa
Differential Revision: D46680219
Pulled By: passy
fbshipit-source-id: 6d5d3d131c6e5ad52e1f49474c0bc2e958f686f3
Summary:
Should be available now with
```
getFlipperLib().settings().isDarkMode
```
Differential Revision: D46685851
fbshipit-source-id: 0777437b7ca06051cc3fd4dc1b794242f453f2b5
Summary:
*Potentially.
A big thanks to lblasa and aigoncharov for helping with debugging. Looking at
`ptail -f errorlog_flipper_javascript` reveals that messages now include a spurious amount of unescaped newlines. E.g. P768993195
From memory, these were not there when I wrote the categorizer when I was able to copy-paste from ptail to the unit tests.
D44729490 added prettifying to the results inadvertently.
Reviewed By: lblasa
Differential Revision: D46685543
fbshipit-source-id: 98da5eff92900042fc5306ca5d5652d8940ff2e1
Summary:
This is an automated PR to update the Podfile.lock.
- Make sure that the Podfile.lock contains latest FlipperKit and Flipper pod versions.
- Also make sure that all the dependencies are updated to the latest one.
- This is auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request)
Pull Request resolved: https://github.com/facebook/flipper/pull/4826
Reviewed By: lblasa
Differential Revision: D46679156
Pulled By: passy
fbshipit-source-id: 81cf60d16ea7ce2954ce16896f2dec84b11119c2
Summary: To avoid the cases whereas Flipper opens up in engineer's default browser which may be different than Chrome.
Reviewed By: aigoncharov
Differential Revision: D46682220
fbshipit-source-id: 38d0ddefbc67989c5ec97a66e4a419318a66bc95
Summary:
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.163 to 1.0.164.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.164</h2>
<ul>
<li>Allowed enum variants to be individually marked as untagged (<a href="https://redirect.github.com/serde-rs/serde/issues/2403">https://github.com/facebook/flipper/issues/2403</a>, thanks <a href="https://github.com/dewert99"><code>@dewert99</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="107018c628"><code>107018c</code></a> Release 1.0.164</li>
<li><a href="a398237930"><code>a398237</code></a> Point out serde(untagged) variants which are out of order</li>
<li><a href="b63c65d7f5"><code>b63c65d</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/serde/issues/2470">https://github.com/facebook/flipper/issues/2470</a> from dtolnay/contentref</li>
<li><a href="f60324e883"><code>f60324e</code></a> Reuse a single ContentRefDeserializer throughout untagged enum deserialization</li>
<li><a href="361c23a09a"><code>361c23a</code></a> Simplify enumerate().find(...) -> Iterator::position</li>
<li><a href="43b23c7ea0"><code>43b23c7</code></a> Format PR 2403 with rustfmt</li>
<li><a href="6081497506"><code>6081497</code></a> Resolve semicolon_if_nothing_returned pedantic clippy lint</li>
<li><a href="48e5753e76"><code>48e5753</code></a> Allowed Enum variants to be individually marked as untagged (<a href="https://redirect.github.com/serde-rs/serde/issues/2403">https://github.com/facebook/flipper/issues/2403</a>)</li>
<li><a href="bbba632ab3"><code>bbba632</code></a> Revert "Ui tests with compile_error resolved at call site"</li>
<li><a href="e77db40b8d"><code>e77db40</code></a> Ui tests with compile_error resolved at call site</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.163...v1.0.164">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/4813
Reviewed By: lblasa
Differential Revision: D46680063
Pulled By: passy
fbshipit-source-id: 4af9e5a742ca46b5ce33410e4847799189ee6365
Summary:
Bumps com.github.ben-manes.versions from 0.46.0 to 0.47.0.
[](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/4814
Reviewed By: lblasa
Differential Revision: D46680058
Pulled By: passy
fbshipit-source-id: 896ac8ec5a5a4587b786aa68d96c795e49ff5a56
Summary:
When distributing plugin over Marketplace. Currently there is an issue with downloading a plugin to `tmp` folder if the plugin `packageName` starts with `company-prefix/flipper-plugin-name`. It would throw `ENONET` error while trying to stream the response data into `tmp` folder.
## Changelog
- add support for prefixed plugin package names (`shopify/flipper-plugin-name`,...)
Pull Request resolved: https://github.com/facebook/flipper/pull/4811
Test Plan: - Try install a plugin from Marketplace which has `/` in the plugin `package.json` `name`.
Reviewed By: lblasa
Differential Revision: D46679195
Pulled By: passy
fbshipit-source-id: f330896dae9da7cbe101b1c6d7ed07667fb7ae0a
Summary:
^
In addition to logging to the console bootstrap performance metrics, track these events to scuba as well.
Reviewed By: aigoncharov
Differential Revision: D46648876
fbshipit-source-id: 191704c13158884bb8cfbca614a23f2a64f1fd93
Summary:
{F1026310422}
I think it's quite nice having a matching title bar and buttons?
Changelog: The Flipper PWA now uses the Flipper purple as theme color
Reviewed By: lblasa
Differential Revision: D46646266
fbshipit-source-id: 1bc6573c3cd863678ceed5b9358a78d19606ee8a
Summary:
Add a few console logs as to highlight how long does it take for our server to start.
Additionally, do not wait until we are ready for client connections before attempting to launch. There's nothing else we do at this point. Instead, launch and wait until we are ready.
Reviewed By: passy
Differential Revision: D46639482
fbshipit-source-id: c098d229edc3cd52e5c876c509a7c81532635afa
Summary: Add custom log handler setup so people can use their own log infra instead of "printf".
Reviewed By: Neil-Clifford-FB
Differential Revision: D46590343
fbshipit-source-id: ded9cf6caa580d477a71a9155cad9db295151c84
Summary: Since ~couple of days to last week we cannot download image assets anymore from facebook.com during build, which is worked around in previous diff. This diff fixes it also in the development environment (`yarn start`)
Reviewed By: lblasa
Differential Revision: D46556075
fbshipit-source-id: ee5d912fb06d1632c41ff6d536b64a55608f5848
Summary: This is a better place as it takes place once the server starts listening.
Reviewed By: passy
Differential Revision: D46558350
fbshipit-source-id: f586defecc8e16d8f0b285615803662d8b6b75fb
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: This is necessary as we map from the protocol medium to our internal medium representation.
Reviewed By: mweststrate
Differential Revision: D46557431
fbshipit-source-id: 617307cd860e1c7e230be2441c06417c44af580e
Summary: If after 15min there are no connected clients, close flipper server.
Reviewed By: antonk52
Differential Revision: D46519563
fbshipit-source-id: c3396ed8987be8ca7075c644734793e4ebceba18
Summary:
^
Token is no longer in the static directory. Also, we can now use a shared utility.
Reviewed By: aigoncharov
Differential Revision: D46516296
fbshipit-source-id: c38d024061653ac8b3fb587c8e3ad83dba0b151d
Summary: These are no longer that useful and can be quite verbose, remove.
Reviewed By: antonk52
Differential Revision: D46516093
fbshipit-source-id: e6c3a546d379ca20ff8757fdc3feaa11bf0788a0
Summary:
Previously every single visualisation node would have jsx for a tooltip and would control its own tooltop. now we have the overlay we can have just one. this improves perf a bit and simplifies the code.
i also increased the delay slightly
Reviewed By: lblasa
Differential Revision: D46274098
fbshipit-source-id: cb8afbc4804c549da9abf33d69aaf190397f74c7
Summary:
The previous approach of setting some of the borders to be thicker and different colours was flakey, sometimes parts of the border would be cut off by a parent
With this approach we figure out the offset relative to the root of the visualiser, and draw a box that is definatley on top. It works much more reliably
Also fixed a couple of other niggles:
1. Can unselect when clicking again
2. Going into focus mode clears selection since your selection may not be in the focused area and there is a phantom box
Reviewed By: lblasa
Differential Revision: D46224034
fbshipit-source-id: 24bed8db38cddab796f786e7e0a4acfe7c6a9089
Summary:
All clients need to provide an authentication token before connecting. Electron app is no different.
This change adds the authentication token whether we are connecting over UDS or TCP.
Before this change, if Flipper server was already running, launching the Electron app would look similar to this:
{F1016961594}
Reviewed By: antonk52
Differential Revision: D46418758
fbshipit-source-id: f00ffe675df78403d5921250e3e9ed9331a55bde
Summary:
Used to be stored in the static directory as it was meant to be used by connecting clients.
This is still the case, except that there may be different clients with different static directories all trying to connect to the same server.
Instead, store the authentication token with the other crypto files, in the user's home directory.
By doing this, all clients, as long as they have access to the local filesystem, can use it.
Reviewed By: mweststrate
Differential Revision: D46418639
fbshipit-source-id: 181e98346d86ad7b3fc1d0005aca3350deb6df32
Summary:
The existing error message was not in the centre and didn't give any possible remediation steps.
{F1015240268}
Reviewed By: passy
Differential Revision: D46394149
fbshipit-source-id: 09d450bef9df83c5b3af3ba49c7e0fafb81bfdce
Summary:
^
There is an issue whereas when Flipper Server is launched NOT from the terminal, it doesn't inherit the user's terminal `$PATH` variable.
This causes a few different issues.
This change tries to address that.
Reviewed By: passy
Differential Revision: D46392435
fbshipit-source-id: 6201a1749134db8c50eca8751af149737dce57d7
Summary:
I noticed we were not killing the PortForwardingApp on exit.
This is not ideal.
So, use an exit hook to kill the app.
Reviewed By: passy
Differential Revision: D46392855
fbshipit-source-id: e2b75f76c9dfab0ff46df3ad2c94a1a523154b2a