Summary: This was a temporary variable which is not really needed, so remove.
Reviewed By: passy
Differential Revision: D46849864
fbshipit-source-id: 56fb52f9a80128fb746afcdc4d36225e6d596db2
Summary:
The event handler is a friend type that was mutating the connection manager state.
Instead, just forward the event handling to it.
Then state mutation is consolidated inside the connection manager.
Reviewed By: passy
Differential Revision: D46849769
fbshipit-source-id: 594ab32c8e891564afa94e1be6b93b1dfeffe26f
Summary:
we need to wrap the bloks layout in a debug variet in order for flipper to work. See this diff for context D45605120
We are now using wether flipper is connected at all which is much more reliable.
Reviewed By: lblasa
Differential Revision: D46854921
fbshipit-source-id: 1b3baef2681ccce50fd452044cd3f740c256b0a9
Summary: Expose the newly created `isConnected` API to Android FlipperClient API.
Reviewed By: LukeDefeo
Differential Revision: D46841260
fbshipit-source-id: 1512e54d28779ef62423aa52727fed3a34d00333
Summary: Expose the newly created `isConnected` API to iOS FlipperClient API.
Reviewed By: antonk52
Differential Revision: D46841190
fbshipit-source-id: c36eb08427d60c73fad8f92100df5d012149b4a8
Summary:
Expose a new API to be used to check if there's an open connection with Flipper Desktop.
Changelog: new FlipperClient isConnected API
Reviewed By: antonk52
Differential Revision: D46841095
fbshipit-source-id: 82a60f52496fb218cb50c6a28d7ffe7225ae23aa
Summary: Previously there was no way to get of this state
Reviewed By: aigoncharov
Differential Revision: D46803900
fbshipit-source-id: 2eb0eb41b58064659ef1d2cff245a2b8d7e2f261
Summary: There was an issue with cropping introduce by virtualisation and the position of the scroll view in the hierachy. Its a bit fragile but it works now.
Reviewed By: lblasa
Differential Revision: D46761831
fbshipit-source-id: ce001c6f4fe7ddc111edf0098f75a1273c84472d
Summary: Now the tree is virtualise the dom based scrolling effect doesnt work. Instead have to reimplement the search on the raw data and use the virtualiser to scroll, this isnt idea but it is still very fast and we can use this to later implement the browser style 4/8 results with ability to page through them.
Reviewed By: aigoncharov
Differential Revision: D46760491
fbshipit-source-id: 9c9b9961f084b39f86fd2aa94ab8e33ca476788b
Summary:
Following feedback from https://fb.workplace.com/groups/443457641253219/permalink/587444816854500/
When pressing left arrow and is already collapse goes to parent, when pressing right arrow and is expanded will go to first child. this mimics behaviours in mac os and other ides.
Also refactored kb scroll to use row virtualiser instead of dom refs
I also fixed the kb scroll hijacking, previously we were using a setTimeout, if you held a key down for a long time then the timeout would fire and the mouse enter event would briefly fire causing the hover position to jump. I now use a more robust approach were we just reserve the focus input for 250ms from the keyboard input, each time the key is held this reservation is extended slightly.
Changelog: UIDebugger, pressing left arrow jumps to parent after collapse. Pressing right arrow enters after expand. Similar to file browsers in IDES
Reviewed By: aigoncharov
Differential Revision: D46760448
fbshipit-source-id: da45d81056aa070be84b2db972400d650b86a172
Summary:
Removed previous memoization approach as it was causing issues and very inconsistent perf increase due to the indent guides often causing half the tree needed to rerender.
New approach is using react virtual. Its very fast in all cases including initial render off the wire. It does require 2 hacks.
1) React virtual requires you to explicitly size your parent component. In all the examples they have a height in px. This doesnt really work given we can resize the window. To mitigate this I added a grandparent component that is sized correclty with flexbox, then i use a layout effect to grab the height from the grandparent ref and set it to the scroll parent ref
2) Due to the implementaion of react virtual the width of the items in the tree is not correct. By default all the content overflows the box and the box doesnt grow automatically to fill the content. I think this is due to absolute positioning which breaks all the normal layout engine rules. The fix is to get the scrollWidth of the parent scroll view. (scrollWidth is the width of the element including overflow) and then set it via the refs we have on the tree item elements. This is also done in a layout effect.
changelog: UIDebugger virtualized UI to improve rendering performance
Reviewed By: aigoncharov
Differential Revision: D46724776
fbshipit-source-id: 75a6d35542066bd788aa4536481dedc72f667fc1
Summary:
There were a small number of styles / attributes that were missing, this addresses this.
Similar to the bloks minification map there are some special hardcoded reserved ids, if that doesnt work then you can look into a special place for each style
I also refactored the transform metadata method as it was getting very nested and hard to understand.
Reviewed By: aigoncharov
Differential Revision: D46799392
fbshipit-source-id: 8de8a2740f45ddb23a1bc9abb7bb36f969cf1fbb
Summary:
`setProcessState` does some adjusting to PATH. This was only ever done for Electron.
This change moves that functionality to FlipperServerImpl which is the one what orchestrates. By doing this, flipper server also benefits from getting these adjustments.
Reviewed By: antonk52
Differential Revision: D46836659
fbshipit-source-id: f98291d320cf9b7f3808223af8745c068b1318ce
Summary: Add a check to prevent the odd error when the box is no longer available to display an error.
Reviewed By: antonk52
Differential Revision: D46763634
fbshipit-source-id: 6ac2c404c842ff989b037c991b5f085baacd2f9a
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/4836
Reviewed By: lblasa
Differential Revision: D46756889
Pulled By: passy
fbshipit-source-id: 8151a079e6a80a7bdd729bb836cdfeb6cc331994
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