Commit Graph

7495 Commits

Author SHA1 Message Date
Andrey Goncharov
d1158e2d02 Configure eslint to prevent imports from nested paths of externally provided modules
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
2022-09-26 09:42:33 -07:00
Andrey Goncharov
982193df48 Fix plugin source maps in dev mode
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
2022-09-26 06:54:03 -07:00
Lorenzo Blasa
6f65517933 getSnapshot
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
2022-09-26 06:03:49 -07:00
Lorenzo Blasa
48f70ef8ec PartialTraversal
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
2022-09-26 05:00:36 -07:00
Lorenzo Blasa
dfdeffbc09 Use event handlers instead of listeners for error handing
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
2022-09-26 04:24:33 -07:00
Tianyu Yao
2bf5410316 Upgrade React DevTools deps to 4.26.0
Summary:
Changelog:
[General][Changed] - Upgraded react-devtools-core dependency to 4.26.0

Reviewed By: lunaruan

Differential Revision: D39587418

fbshipit-source-id: 1b1841b72329fd3ef4ae8a08095a30a26a0b6455
2022-09-23 12:46:33 -07:00
Andrey Goncharov
2437aeb3e9 Fix AutoResizer flickering
Summary: https://github.com/bvaughn/react-virtualized/issues/773

Differential Revision: D39772453

fbshipit-source-id: 613b809201d7dca34a0322c0cc65468f2fba2b08
2022-09-23 12:08:09 -07:00
Andrey Goncharov
228de6c542 Add custom timeout to Device.installApp
Reviewed By: lblasa

Differential Revision: D39728545

fbshipit-source-id: be77a2e7ddac4071c9cafc88e67b793ee8c7631c
2022-09-23 10:20:53 -07:00
Andrey Goncharov
dd7ba2d6fc Fix fb-stubs replacement for plugin bundling
Reviewed By: nikoant

Differential Revision: D39765543

fbshipit-source-id: 14cbf8a9bdf35031e636bbbde3dbc955faedb66b
2022-09-23 05:50:28 -07:00
Andrey Goncharov
61a8fe09e9 Stop failing the entire plugin compatibility check if a shared plugin lib fails it
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
2022-09-23 04:52:42 -07:00
Andrey Goncharov
b43d8f5c80 Upgrade gradle and maven-publish plugin
Summary: Based on https://github.com/vanniktech/gradle-maven-publish-plugin/issues/378 it should resolve Flipper issues with publishing to Maven https://github.com/facebook/flipper/issues/4134

Reviewed By: antonk52

Differential Revision: D39730258

fbshipit-source-id: 5e5b62dfdb746e14a14218efa9b8dca0e6850e1c
2022-09-22 09:15:46 -07:00
Jacy
5b794dc28f Fix: [Android] Flipper Leakcanary plugin's OnHeapAnalyzedListener has been deprecated (#3923)
Summary:
Flipper Leakcanary plugin's OnHeapAnalyzedListener has been deprecated.

Flipper Leakcanary plugin's OnHeapAnalyzedListener has been deprecated change to EventListener implement.

## Changelog

1. add FlipperLeakEventListener.kt to implement EventListener.
2. update doc

Pull Request resolved: https://github.com/facebook/flipper/pull/3923

Test Plan:
Setup the  Leakcanary plugin use FlipperLeakEventListener, test if it works.

**Static Docs Preview: flipper**
|[Full Site](https://our.intern.facebook.com/intern/staticdocs/eph/D39652084/V4/flipper/)|

|**Modified Pages**|

Reviewed By: antonk52

Differential Revision: D39652084

Pulled By: antonk52

fbshipit-source-id: 0afeb52dce6c1749a894a15dbb7921580c094ae6
2022-09-22 05:57:28 -07:00
Luke De Feo
67ff09563c Improved interaction between tree and visualizer
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
2022-09-22 04:26:18 -07:00
Luke De Feo
9bc2f6fec5 Remove node Id from descriptor
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
2022-09-22 04:26:18 -07:00
Luke De Feo
32b7a5589f Remove layout traversal
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
2022-09-22 04:26:18 -07:00
Luke De Feo
ed662d2468 Fixed bounds for native views mounted by litho
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
2022-09-22 04:26:18 -07:00
Andrey Goncharov
31fb3dd5be Stop counting disabled and gatekeeped plugins as loaded
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
2022-09-22 04:17:24 -07:00
Andrey Goncharov
fd811db12b Rebuild all plugins if a shared lib changed
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
2022-09-22 04:17:24 -07:00
Muescha
6889446bc5 fix link to Layout Inspector Plugin (#4051)
Summary:
fix link to Layout Inspector Plugin

## Question

should be used here the `<Link to={useBaseUrl("` syntax?

Pull Request resolved: https://github.com/facebook/flipper/pull/4051

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

**Static Docs Preview: flipper**
|[Full Site](https://our.intern.facebook.com/intern/staticdocs/eph/D39652045/V4/flipper/)|

|**Modified Pages**|
|[docs/getting-started/ios-native](https://our.intern.facebook.com/intern/staticdocs/eph/D39652045/V4/flipper/docs/getting-started/ios-native/)|

Reviewed By: LukeDefeo

Differential Revision: D39652045

Pulled By: LukeDefeo

fbshipit-source-id: af2f188db63e4fd5daa55df2ce6e0d779ede713a
2022-09-22 03:42:36 -07:00
Lorenzo Blasa
060f8911b1 Add documentation to ActivityTracker initialisation
Summary: ^

Reviewed By: LukeDefeo

Differential Revision: D39652590

fbshipit-source-id: e97a365f56dbecaaebf3a54a1325ad6b65839660
2022-09-21 13:28:17 -07:00
Lorenzo Blasa
cae15276f5 Throttle with wait
Summary: Throttle events whilst keeping track of latest

Reviewed By: LukeDefeo

Differential Revision: D39652348

fbshipit-source-id: 9c8fb5a1bb92872985f46a62d79c6594a37e8340
2022-09-21 13:28:17 -07:00
Ken Yee
fa9ba6f2d0 Adds a notifyAvailableUpdate flag to config.json to disable update (#3992)
Summary:
We would like to version control Flipper and some of our custom plugins that are installed on developers' systems.
Flipper by default prompts users to upgrade so they sometimes do the update and then all our custom plugins break because they were compiled for an older version.
See https://github.com/facebook/flipper/issues/3947 for feature request info.

## Changelog

Adds notifyAvailable flag to config.json to disable prompting for users that "an update is available"

Pull Request resolved: https://github.com/facebook/flipper/pull/3992

Test Plan:
Tested by running locally.
Had to comment out the isProduction() check to confirm this it worked properly because this flag is false on dev versions.
Couldn't figure out how to manually test the handleOpenPluginDeeplink.tsx change but made a similar change there; happy to test that if you can tell me how to exercise that path.

Reviewed By: antonk52

Differential Revision: D39654481

Pulled By: antonk52

fbshipit-source-id: cef6b48d870915c48f620269c42d24b8ef1f4c29
2022-09-21 09:47:44 -07:00
Andrey Goncharov
3314c77ce9 Add exportFileBinary to FlipperLib
Reviewed By: antonk52

Differential Revision: D39692937

fbshipit-source-id: 7b3c78d004a9734cd8ae660d5782be1f02c00009
2022-09-21 09:26:19 -07:00
Luke De Feo
f3b7552338 2D wire frame highlight from tree, select from wireframe
Summary:
Introduced some basic bidirectional link between tree and wireframe, the specific interaction will need some tweaking but this should get us started.

When hovering over the tree we halt the rendering of the wireframe up to that point, this allows us to explore parent views that layout child views.

When clicking a view in the wireframe it is 'seleceted' as if it was clicked in the tree. This set the tree selection so you can identify it in the tree as well as opens the side bar

Reviewed By: lblasa

Differential Revision: D39539277

fbshipit-source-id: 3beb1ad4cb56b398c640ac3e7fac2cc97f3f1a18
2022-09-21 07:02:48 -07:00
Luke De Feo
cf176bb071 Basic 2D wireframe
Summary: Basic visual wireframe for the purposes of verifying that our captured view hierachy is correct, the actual version we ship will hopefully be a lot better :)

Reviewed By: lblasa

Differential Revision: D39539278

fbshipit-source-id: 73d926ff1990f09ca9877430cb227f690d05d1d4
2022-09-21 07:02:48 -07:00
Luke De Feo
c7f24eb469 Refactor UI
Summary: Split our the mega component into separate parts in preparation for the visualizer

Reviewed By: lblasa

Differential Revision: D39509406

fbshipit-source-id: 0f867c1f8a91b7592673ae47ba2b5db4f3500732
2022-09-21 07:02:48 -07:00
Luke De Feo
80b05092ac Add bounds and tags to descriptor
Summary: This is to support a future diff where we will draw a basic wireframe for debugging

Reviewed By: lblasa

Differential Revision: D39509407

fbshipit-source-id: d99fd6fe39404996a0ed944c10905331262fd0c6
2022-09-21 07:02:48 -07:00
Luke De Feo
c09e185867 Set target SDK version for buck build
Summary: It was building at target sdk 0 before which lead to various checks failing, in future when these checks fail we should send a notification to flipper

Reviewed By: lblasa

Differential Revision: D39652095

fbshipit-source-id: 748bc74f0b5745011e6289e5582405149df8357f
2022-09-21 07:02:48 -07:00
Luke De Feo
7deb374c1c Add initial decor view traversal
Summary: Catch the case when we mis the initial draw

Reviewed By: lblasa

Differential Revision: D39658946

fbshipit-source-id: 00a46226128e28a8753df2161d1edcd6ffa47d67
2022-09-21 07:02:48 -07:00
Luke De Feo
46824f3369 Fix flipper connect / disconnect cycle
Summary: Previously we were cancelling the entire context which meant after reconnect nothing was sent. Additionally we now close / reinitiaze the channel so that any old events are not sent on reconnect

Reviewed By: lblasa

Differential Revision: D39658945

fbshipit-source-id: bb02724434aa820d811b49ab799a4643ab7e785a
2022-09-21 07:02:48 -07:00
facebook-flipper-bot
cb75be7495 Automated: Update Podfile.lock (#4128)
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/4128

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

**Static Docs Preview: flipper**
|[Full Site](https://our.intern.facebook.com/intern/staticdocs/eph/D39687101/V2/flipper/)|

|**Modified Pages**|
|[docs/getting-started/ios-native](https://our.intern.facebook.com/intern/staticdocs/eph/D39687101/V2/flipper/docs/getting-started/ios-native/)|

Reviewed By: antonk52

Differential Revision: D39687101

Pulled By: aigoncharov

fbshipit-source-id: 568a6740033cf37bcc86492eefbcb247c7bf1948
2022-09-21 05:56:35 -07:00
Dominique Rau
7af9654893 Update custom-ports.mdx (#4105)
Summary:
Typo in Docs

Typo in Docs

## Changelog

Fixed typo in docs.

Pull Request resolved: https://github.com/facebook/flipper/pull/4105

Test Plan:
None

**Static Docs Preview: flipper**
|[Full Site](https://our.intern.facebook.com/intern/staticdocs/eph/D39652466/V2/flipper/)|

|**Modified Pages**|
|[docs/custom-ports](https://our.intern.facebook.com/intern/staticdocs/eph/D39652466/V2/flipper/docs/custom-ports/)|

Reviewed By: antonk52

Differential Revision: D39652466

Pulled By: aigoncharov

fbshipit-source-id: 129552ddee449582b441d1c34c40b7e9dad9ce9b
2022-09-20 09:11:45 -07:00
Andrey Goncharov
9d2a37812c Fix fast-refresh
Summary: Changelog: Make yarn start --fast-refreash load dynamic plugins

Reviewed By: lblasa

Differential Revision: D39653965

fbshipit-source-id: f6133ff0315c014e3e1c4c7921318a6d7db70eaf
2022-09-20 06:47:51 -07:00
Lorenzo Blasa
aa801b6715 Fix bug introduced with variable rename
Summary:
^

`mutableClass` should be used instead of `clazz`

Reviewed By: LukeDefeo

Differential Revision: D39652102

fbshipit-source-id: 8ba86d39796beed79ff7cf8b37f3460facc38430
2022-09-20 06:35:48 -07:00
Lorenzo Blasa
1cc71af832 Fix typo for initialiser
Summary: ^

Reviewed By: antonk52

Differential Revision: D39575995

fbshipit-source-id: 2e95d43c37e2341e9e6f723282d829d06f1b1c5d
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
d85e8a0949 TreeObserverFactory, change file name to match type
Summary: ^

Reviewed By: LukeDefeo

Differential Revision: D39575384

fbshipit-source-id: 30ca896d93c4f3641f748123af024354c10de8b8
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
7f103ee293 TreeObserver tidy up
Summary:
Remove usage of '!!', it is generally discourages even though instances are guaranteed to exist.

Adjust comments

Reviewed By: LukeDefeo

Differential Revision: D39575368

fbshipit-source-id: a159a0411a913de3d1ae6236c41ea15255687433
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
83f8a0675c Adjust spaces
Summary: ^

Reviewed By: LukeDefeo

Differential Revision: D39575336

fbshipit-source-id: b9c2cf75d674a3ee86dc26f918fc0d9130bc8dc0
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
1744335ddd View as weak reference
Summary: Keep a weak reference of the view instead of a strong reference.

Reviewed By: LukeDefeo

Differential Revision: D39575312

fbshipit-source-id: ae8df7d089b29ea3b1cf960a6ae020ed5a9c3648
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
2051359490 Unsubscribe from updates and tidy up
Summary: Remove listener on unsubscribe and tidy up comments.

Reviewed By: LukeDefeo

Differential Revision: D39575287

fbshipit-source-id: 2b4ac0bc07cfe86f5ad0e602bbba4b596230cd52
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
ddc5554673 Suppress warnings for RootViewResolver
Summary:
^

There's no way to address these warnings, so suppress.

Reviewed By: LukeDefeo

Differential Revision: D39575262

fbshipit-source-id: 6703476d7637c63aa9a81b26f8cdbd0f53e3991c
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
bba1275377 Traversal tidy up
Summary: This change tidies up the traversal and removes unused LayoutVisitor

Reviewed By: LukeDefeo

Differential Revision: D39575241

fbshipit-source-id: 2ab101f74ae7b2c16ddf7016abc78a03590916b0
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
1fac19facc Address a few warnings and suggestions for Android sample app
Summary: ^

Reviewed By: LukeDefeo

Differential Revision: D39575170

fbshipit-source-id: 8be293fe31521531e634132e4ca454da32aad73f
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
84dc95b27b Rename stetho package to util
Summary:
^

These are the last two types imported from stetho which, if anything, can be integrated as is without having to track back to Stetho

Reviewed By: LukeDefeo

Differential Revision: D39573639

fbshipit-source-id: 8009532116ec7b2fed2751fa966269ad81a7cb00
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
d8e47efb81 Remove warnings
Summary: ^

Reviewed By: LukeDefeo

Differential Revision: D39573417

fbshipit-source-id: 241ecdddaf43020923046b0b5c35656bc8ffad34
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
3a4286b2ba Remove stetho unused types
Summary: ^

Reviewed By: LukeDefeo

Differential Revision: D39572018

fbshipit-source-id: 437b245b7eee06392cda97eb56b4f4d0a5df23fc
2022-09-20 05:15:50 -07:00
Lorenzo Blasa
86364cbd40 Addresses fragments tracking and different bugs/warnings
Summary:
^

After this change lands, it is safe to remove most of the Stetho fragment support types.

Reviewed By: LukeDefeo

Differential Revision: D39460121

fbshipit-source-id: 0e7d4ce71e828ee7bc9c6e945b8fe27dbd6f08f8
2022-09-20 05:15:50 -07:00
Andrey Goncharov
e8392bdceb Roll out experimental flipper-server to OSS users
Reviewed By: lblasa

Differential Revision: D39651562

fbshipit-source-id: bafcb5a20cc492a58161cd41f484ce7fd33e1eaf
2022-09-20 05:13:16 -07:00
Flipper Bot
00de0f0e9e Flipper Snapshot Bump: v0.166.1-SNAPSHOT
Summary: Releasing snapshot version 0.166.1-SNAPSHOT

Reviewed By: aigoncharov

Differential Revision: D39649276

fbshipit-source-id: aa537a0fc60df6e3fee3cded942524423cec88ad
2022-09-20 04:06:09 -07:00
Flipper Bot
285db3a268 Flipper Release: v0.166.0
Summary: Releasing version 0.166.0

Reviewed By: aigoncharov

Differential Revision: D39649275

fbshipit-source-id: d328cf36fb26e2d69b0e3c76cae6c47760ecd6fa
2022-09-20 04:06:09 -07:00