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/4156
Test Plan:
Imported from GitHub, without a `Test Plan:` line.
Static Docs Site previews have moved into the custom phabricator field "Static Docs", and will no longer modify test plans after 5th October 2022.
Reviewed By: antonk52
Differential Revision: D39931809
Pulled By: antonk52
fbshipit-source-id: eb234e760e9a6be321b7290ff20b5232e9840fed
Summary:
Bumps [metro-config](https://github.com/facebook/metro) from 0.72.0 to 0.72.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/metro/releases">metro-config's releases</a>.</em></p>
<blockquote>
<h2>Release v0.72.3</h2>
<ul>
<li><strong>[Fix]</strong>: Incremental build crashing when garbage collecting modules reachable via multiple paths in the graph. (<a href="50bb451e9c</a>)</li>
<li>Updated metro logo on startup</li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/facebook/metro/compare/v0.72.2...v0.72.3">https://github.com/facebook/metro/compare/v0.72.2...v0.72.3</a></p>
<h2>Release 0.72.2</h2>
<ul>
<li><strong>[Feature]</strong> Pass <a href="https://facebook.github.io/metro/docs/resolution/#customresolveroptions-string-mixed"><code>customResolverOptions</code></a> from bundle URL into <code>resolveRequest</code> (<a href="623b55d548</a>)</li>
<li><strong>[Performance]</strong> Load <code>hermes-parser</code> conditionally when hermes is enabled (<a href="https://github-redirect.dependabot.com/facebook/metro/pull/855">facebook/metro#855</a> by <a href="https://github.com/EvanBacon"><code>@EvanBacon</code></a>)</li>
<li><strong>[Performance]</strong> Lazily import <code>metro-hermes-compiler</code> (<a href="https://github-redirect.dependabot.com/facebook/metro/pull/856">facebook/metro#856</a> by <a href="https://github.com/EvanBacon"><code>@EvanBacon</code></a>)</li>
</ul>
<p><strong>Full Changelog:</strong> <a href="https://github.com/facebook/metro/compare/v0.72.1%E2%80%A6v0.72.2"><code>v0.72.1...v0.72.2</code></a></p>
<h2>Release v0.72.1</h2>
<ul>
<li><strong>[Feature]</strong> Expose the <code>react-refresh/runtime</code> module as part of the <code>metro-runtime</code> package</li>
</ul>
<blockquote>
<p>NOTE: Experimental features are not covered by semver and can change at any time.</p>
</blockquote>
<ul>
<li><strong>[Experimental]</strong> Add <code>require.context</code> support (<a href="https://github-redirect.dependabot.com/facebook/metro/pull/822">facebook/metro#822</a> by <a href="https://github.com/EvanBacon"><code>@EvanBacon</code></a>)</li>
</ul>
<p><strong>Full Changelog:</strong> <a href="https://github.com/facebook/metro/compare/v0.72.0%E2%80%A6v0.72.1"><code>v0.72.0...v0.72.1</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f9aaca6f47"><code>f9aaca6</code></a> Release 0.72.3</li>
<li><a href="4758e3771b"><code>4758e37</code></a> update version tool add missing package</li>
<li><a href="384e3ee4cb"><code>384e3ee</code></a> Remove unused Flow suppressions</li>
<li><a href="b5847b3bd7"><code>b5847b3</code></a> Prepare for Jest 27+</li>
<li><a href="19d364816a"><code>19d3648</code></a> Remove various unused $FlowFixMes</li>
<li><a href="50bb451e9c"><code>50bb451</code></a> Fix crash when GCing modules reachable via multiple paths</li>
<li><a href="e9ee037c4a"><code>e9ee037</code></a> Update ASCII art logo, print version when starting up</li>
<li><a href="e5f9b1e65b"><code>e5f9b1e</code></a> metro-react-native-interop-tools added literal error</li>
<li><a href="3215ff468d"><code>3215ff4</code></a> Fix hero buttons responsive layout</li>
<li><a href="299512936e"><code>2995129</code></a> metro-react-native-interop-tools modified the error structure</li>
<li>Additional commits viewable in <a href="https://github.com/facebook/metro/compare/v0.72.0...v0.72.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/4110
Reviewed By: antonk52
Differential Revision: D39933630
Pulled By: antonk52
fbshipit-source-id: 75239a63c65836d5657bc8541b4379e5751e58f9
Summary:
Related GH issue: https://github.com/facebook/flipper/issues/4139
Context:
The current direction is that all plugins should be able to run in browser envs. Opening external windows, deeplinks and etc. should be abstracted away in getFlipperLib().
For plugin developers, it could be challenging to upgrade the existing plugins that rely on electron being present. We should not failing the build process for them because their plugins depend on electron.
Allow desktop plugin to build
Relevant ticket: https://github.com/facebook/flipper/issues/4139
Pull Request resolved: https://github.com/facebook/flipper/pull/4145
Reviewed By: mweststrate
Differential Revision: D39887902
Pulled By: mweststrate
fbshipit-source-id: 4132912b5a2b598c7897d434647cffed6980de19
Summary: It didnt need to exist and can be seen as a subtree update of type full scan
Reviewed By: lblasa
Differential Revision: D39731552
fbshipit-source-id: e351413d9480e118fc000c5e55eae0e7980233f2
Summary:
A side affect of the new tree implementation was unecessary renders. For very large trees this was noticable to the user.
A condition is added to the props are equal function for the memoized component to consider if this nodes path is a prefix to the new or previous hover path. This indicates whether it needs to rerender or wether the change in hover state is unconsequential to this component.
changelog: Fixed a bug in the nested highlighting of the data inspector, previously it could remain highlighted while moving the mouse away quickly and multiple highlights could be visible at the same time
Reviewed By: mweststrate
Differential Revision: D39883905
fbshipit-source-id: abdac71574695000addb4ba6477503b7d44a4faf
Summary:
There were 2 issues with the previous implementation of the nested hover.
1. If you moved the mouse out of the inspector quickly we would miss the event and we would have a hover state of the root element when we shouldnt
2. The hover state was stored per node, it was possible to have mulitple children hovered at the same time if you moved the mouse fast enough in a very complex tree
The new implementation has the hovered id stored in the Datainspector root. This solves the multiple state issue since there can only be one. Finally There is an onMouseLeave hook added to the parent div which seems to reliably fire no mouse how erractic my mouse movements :) Also the new implementation is a lot easier to understand
Reviewed By: mweststrate
Differential Revision: D39855733
fbshipit-source-id: 96b43f216deef72b81cd52001f8de26df55ea693
Summary:
This change removes the getSnapshot implementation from ViewGroupDescriptor.
Instead we rely on the chain implementation to get one.
Once we do get a snapshot, return.
Reviewed By: LukeDefeo
Differential Revision: D39849484
fbshipit-source-id: bfa0b1af22cf501777687295b8d792f8144a8d3b
Summary:
^
This change allows to take different snapshots for different nodes and render them each on the visualiser.
At the moment, more than likely, this is not really used. At the same time, it fixes an issue whereas any subtree update can override and set the only visible snapshot.
Reviewed By: LukeDefeo, antonk52
Differential Revision: D39821920
fbshipit-source-id: ab8f6a4a2a5e96801c951a4e3009cc571a617f22
Summary:
This change aims to reduce the number of bitmap pools by definiting a default pool which can contain bitmaps of different sizes.
A side benefit is that this single pool facilitates handling the case where a view gets resized too.
So overall, this should be both more generic and efficient compared to the previous approach.
Reviewed By: LukeDefeo
Differential Revision: D39815821
fbshipit-source-id: e0aa17ba55db07b74d8f22ea16e0c864288fb169
Summary:
^
TODO: the snapshot corresponds to the referring subtree update. However, the snapshot is getting applied as if it was the current top view of the running app. This is true in most cases but it doesn't for some. To solve this, we need to use the rootId for the subtree and apply the snapshot only if appropriate.
Having said that, is good enough for the current submission as we keep iterating on it.
Reviewed By: LukeDefeo
Differential Revision: D39813307
fbshipit-source-id: 33b6aff6e9dd085934150ebd2f247062447a59ff
Summary:
DecorView owns a BitmapPool to take snapshots of the view. These snapshots are later on serialised by the manager.
There's a couple of unrelated changes in this diff but that were already in place making it hard to split.
(1) Renamed 'traverseAndSend' to 'processUpdate'. Why?
The observers as a whole shouldn't necessary know that their 'observation' is being sent to any place. Future changes should move the send logic altogether from the observer too. But that can be made within the scope of a different diff.
(2) There was a bug for nodes that were being observed but then unsubscribed from. If the nodes were being marked for observation and observer was already into place, these were not being told to subscribe again for changes.
Reviewed By: LukeDefeo
Differential Revision: D39812943
fbshipit-source-id: af98c5caf54e1c69f97043bae95049395a2e4545
Summary: Addresses a few issues with the existing implementation.
Reviewed By: LukeDefeo
Differential Revision: D39812624
fbshipit-source-id: 6f955f62bc5a7943558541e4cf7b4ccba4fd9be3
Summary:
Bitmaps are not cheap to create. Also, bitmaps are used from the main thread to capture the contents of a view but can be used and processed by background threads.
BitmapPool aims to solve both problems.
- It is a pool that can be used to recycle bitmaps.
- The recyclable bitmap can be processed by a background thread which can explicitly recycle the bitmap once done with it, hence putting it back into the pool.
UPDATE: D39815821
That diff changes the approach by defining a single default pool which can handle bitmaps of different sizes.
Reviewed By: LukeDefeo
Differential Revision: D39812212
fbshipit-source-id: 065eea656f4139aeb9d09cd5a5c7dddfc9c8edfd
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/4146
Revert: D39730258 (b43d8f5c80)
It is causing some issues with producing the necessary libraries for all supported abis (libevent-core.so)
Reviewed By: LukeDefeo
Differential Revision: D39846721
fbshipit-source-id: eb50d8eaff869fbf8ac551c1bcb0984a49545599
Summary: We have a list of modules that we do not bundle with the plugins, but provide externally to them from Flipper. For the mechanism to work correctly, we have to stop importing from nested paths of these modules.
Reviewed By: mweststrate
Differential Revision: D39776237
fbshipit-source-id: 06eae9bf9d5b11b48d2720bf592bfea749773847
Summary:
Start bundling source maps together with the source code itself in the dev mode. Therefore it is no longer required to add a link to the external source map file in dev mode.
In prod mode we still ship them separately.
Reviewed By: mweststrate
Differential Revision: D39775064
fbshipit-source-id: 6c56df7a3fce084c07a8618a63dbd8ae4741348c
Summary:
This change introduces a new Descriptor method to obtain snapshots of an item in the layout hierarchy.
Only implemented by the ViewDescritor but it can be potentially extended to Windows, Fragments, Activities, ...
Reviewed By: LukeDefeo
Differential Revision: D39690548
fbshipit-source-id: cf3a1ccd63eb28c1de328310e8635829a40964dd
Summary:
Cleanup documentation as with the other traversal, no raw loops.
Note: about no raw loops philosophy
To make clear and explicit the intention of the code, in this case to iterate over all elements of a collection.
A raw loop exposes unwanted flexibility which makes it hard to reason about code. A raw loop body thus have control over the lifetime of the loop itself.
- continue
- break
- return
None of those can be used with a forEach for example. Thus we make it clear the intention of the code.
Reviewed By: LukeDefeo
Differential Revision: D39652960
fbshipit-source-id: ac660dc43256e7850bd18e31b00aa123783d5c98
Summary:
^
Adding listeners was correctly intercepting events but the event object often lacked the information necessary to correctly triage and fix an issue.
I discovered that by subscribing to these events directly, the event object did have the required information.
Changelog: Use global window event handlers instead of listeners
Reviewed By: antonk52
Differential Revision: D39809292
fbshipit-source-id: 8a0fc7b7cd86ea16e40f2dc383bc30364f6fc16c
Summary: Currently, if we publish a new shared plugin lib in a separate diff, the compatibility check fails for it while it should exit with a warning only
Reviewed By: antonk52
Differential Revision: D39731259
fbshipit-source-id: 7651642ebfb5e18ace047d36b52907bca65c4462
Summary:
Improved the 2 way relationship between tree and vizualiser. There are 3 states.
1. Select, this is when you click on either tree node or view. View is highlighted darker colour, sidebar shows up for that node and select is persisted when you mouse away
2. Hover, this is when you hover over a tree node or in the vizualizer, the node is highlighted a lighter colur
3. Hover while holding control - same as hover but we dont draw any children, this lets you see how parent nodes appear without their children
Reviewed By: lblasa
Differential Revision: D39695661
fbshipit-source-id: 623e479fb03567e9f15a4a4f9201b2c7884cabe4
Summary: It was always the system hash code and in many places it was inconvient to get the descriptor to just end up calling the same function
Reviewed By: lblasa
Differential Revision: D39700215
fbshipit-source-id: b1439d56cd8f39ba8735f933662ad79b87ffbdbe
Summary: The old full traversal was not needed as the partial traversal is a superset of the functionality and it was a pain to maintain both
Reviewed By: lblasa
Differential Revision: D39700216
fbshipit-source-id: 0b028995a59f7c5ea4318add8b0534851ca99547
Summary: We had an issue where the offset for a native view was effectively caclculated twice and summed, once by litho and once by android. Given the UI debugger expects a nodes bounds to be w.r.t its parent the android systems x,y offset is 'wrong' from ui debuggers perspective, we set it to 0,0 and rely on the calculated offsets by the litho component hierachy
Reviewed By: lblasa
Differential Revision: D39695663
fbshipit-source-id: d9c2be950fc68bc2286359a62746356e89299cfd
Summary: Without this change gatekeeped and disabled plugins are also counted as loaded, which results in plugin duplication in the UI
Reviewed By: lblasa
Differential Revision: D39695335
fbshipit-source-id: 759e2e0eaead1bee0f7d61e4ba3d1b8e4b6c0976
Summary: Some plugins import from shared directories. These directories are not plugins themselves, therefore the current plugin root searching mechanism does nto work for them. To support plugin reloading for this scenario, we start re-building all plugins if we fail to find a plugin root.
Reviewed By: lblasa
Differential Revision: D39693820
fbshipit-source-id: 33dd7de4121bd5665a39b0ea96adce4603dc7df0