Summary:
Auth token used be injected in the manifest file. Instead, have the server injected into the main HTML page.
The main driver to this change are:
- Simplify
- There are instances in which for some reason reading/writing the token from the manifest fails. This will address that problem.
Reviewed By: lblasa
Differential Revision: D51160521
fbshipit-source-id: 4626fd8f56bc8b61182a53a5d9cf5acad1e723bc
Summary: It is quite cumbersome to list all of the operators. Much simpler to use a predefined set of power search operators we set up for each specific filed type
Reviewed By: lblasa
Differential Revision: D51116029
fbshipit-source-id: 5dd0b7f4176097109666107dfc3cab996379b818
Summary:
It does not make too much sense to keep the unknown value conversion behind a flag. It is relatively cheap. Let's do it for all strings.
Also, let's extend the list of default string operators
Reviewed By: lblasa
Differential Revision: D51115573
fbshipit-source-id: a62c08a90d8ddf6f23f59412c3fd981e19225e47
Summary: Document the new release flow that does no longer involve local builds.
Reviewed By: antonk52
Differential Revision: D51115563
fbshipit-source-id: 0c518e51dba64b2325047d6b1e485216e48d9777
Summary:
If after 5 hours there are no connected clients, shutdown the server.
This is to prevent cases whereas the long-lived instance makes users use stale versions of Flipper if Flipper stays indefinitely running in the background.
Reviewed By: passy
Differential Revision: D51111926
fbshipit-source-id: 4c38e392cf8a6a4fb840bffdea92c0b0314aefb9
Summary:
Previously the render function was selecting the data from the paylaod object, this mean what was on screen and waht powersearch saw was diffferent.
Now we supply a dotted key path and remove this from render, power search operator also uses this dotted key path so the search works
changelog: UIdebugger added powersearch operators to Framework event table
Reviewed By: aigoncharov
Differential Revision: D51113095
fbshipit-source-id: 3c951c2a8a7a0a35e0aa79a194b979b699f83008
Summary:
It was hard-coded to always open the first time.
This allows to run the server on debug mode without opening UI.
Reviewed By: antonk52
Differential Revision: D51115746
fbshipit-source-id: 9467f0fbff45987247a2bb3bf5eb1aa578de1913
Summary: Expose an endpoint to open Flipper UI. This will be used by the Flipper Server Cocoa app to open the UI.
Reviewed By: antonk52
Differential Revision: D51115327
fbshipit-source-id: 1ab1c32d93945cf8d75b145905983738331a6468
Summary:
As to not conflict with non-electron installations, this will ensure the product name and app id matches the installation.
By doing this, both Flipper installations can co-exist, which I think is desirable.
Reviewed By: antonk52
Differential Revision: D51078955
fbshipit-source-id: fabaa6eb2a45ac542297b0456a09e938a2ec2e0b
Summary:
## Context
https://fb.workplace.com/groups/flippersupport/posts/1722856878194963
## Changes
* Add a worker plugin that takes modules suffixed with `?worker`, bundles them, treats them as web workers, and returns a function as a default export that instanitates a new worker
Reviewed By: antonk52
Differential Revision: D51059224
fbshipit-source-id: cef89486f7a2d5b8ce38354df4a5749271a6c41d
Summary:
Some features of bloks do not work off vpn.
Until we figure out how to make them off vpn
Reviewed By: LukeDefeo
Differential Revision: D51076469
fbshipit-source-id: c83d96e89d33d245845312b39928a7460a235217
Summary: Uses legacy API `tableManagerRef.current?.setSearchValue` not currently available in power search
Reviewed By: LukeDefeo
Differential Revision: D50969833
fbshipit-source-id: c83d9dce24f5d7a37b6cc68e19da2ae5da374941
Summary:
We swap legacy MasterDetail and DataTable with the new ones that have power search.
The new ones have partially incompatible table manager API.
This diff adds a warning, a migration guide and tracking for these cases.
Reviewed By: LukeDefeo
Differential Revision: D50969831
fbshipit-source-id: ef4153fec9720ea5d7ae1cb4df3528c5d6bca2bb
Summary: Allow plugin developers to force old search for migration purposes
Reviewed By: LukeDefeo
Differential Revision: D50969832
fbshipit-source-id: 7fe5c3e65680d628bced2cd09823f7f3c132d33a
Summary:
[eslint-typescript/naming-convension rule docs](https://typescript-eslint.io/rules/naming-convention/)
Initially looked into it to enforce UPPER_CASE for top most constants like `const DELAY = 10` which is a standard in js ecosystem, which turned to be more difficuilt(we will still get there).
Turns out we had casing checks disabled for everything but typeLike names. What I did in this diff
- use default setting for eslint rule
`✖ 9890 problems`
- with any propery names
`✖ 8229 problems`
- without checking properies at all
`✖ 3683 problems`
- without checking enum members
`✖ 3231 problems`
- without checking object properties/methods
`✖ 2978 problems`
- allowing PascalCase for variables
`✖ 1657 problems
- allowing PascalCase for functions
`✖ 975 problems
- not checking typeMethod and parameters
`✖ 916 problems`
- allow double underscore before after variable
`✖ 461 problems`
- allow snake_case variables
`✖ 49 problems`
Fix remaining problems.
Future plans. Ban usage of PascalCase for variables that are not components
Reviewed By: LukeDefeo
Differential Revision: D50970193
fbshipit-source-id: d9f3abe6b02c9f7822598c8fa5382f58d067f70e
Summary:
Weird edge case, this activity doesnt actualy contain the content and instead its in the decor view behind it, solution is to filter it out from traversal and snapshot
https://fb.workplace.com/groups/443457641253219/permalink/643518977913750/
Reviewed By: elboman, lblasa
Differential Revision: D50936817
fbshipit-source-id: 8c1e276d4d943c42c9c2085bf70113347cbd5c74
Summary: Lets make the logging higher signal
Reviewed By: passy
Differential Revision: D50853449
fbshipit-source-id: 95ebfbc142c34c36fb11e459c573842580cd6e4c
Summary:
You can only use pixel copy if the view is drawn by the hardware, this sort of makes sense as there is no hardware buffer to copy from.
we were falling back but there was a lot of noise in the logs
Reviewed By: lblasa
Differential Revision: D50853427
fbshipit-source-id: 9365a3d566a05de9082afb8bc2915922c624fd88
Summary: Just cleaning up some packages
Reviewed By: lblasa
Differential Revision: D50849169
fbshipit-source-id: 2b732e41ff11361dc7462598f282abb2d4116ce7
Summary:
Its was possible for the view tree observer to be observing one root but this can a dead root with no view in it. As a result the snapshot will be empty and the observer will never fire.
The layout traversal Applicaiton ref descriptor had logic to handle these dead roots, this logic is now extracted and shared between the descriptor in the traversal and by the decor view tracker so they are in sync
Reviewed By: lblasa
Differential Revision: D50848155
fbshipit-source-id: ce6da13df40632cbb7a302a59382b4907131d9f5
Summary:
Since api level 34 there is a way to snapshot any view, prior to this you needed a window which you can only get from an activity, or a surface which required hacks. The hacks are in place for older verisons of android but ive added modern pixel copy snapshotter for future proofing in case google decide to make any of the previously used hack not work in future version of android
Since there was a bunch of common code in each snap shot impl this has been pull into a utility function
Reviewed By: lblasa
Differential Revision: D50845284
fbshipit-source-id: c7910c45ff51fcf8636adc3d7272198ac3d4aefe
Summary:
As mentioned in the previous diff pixel copy only support copying a Window, Surface or SurfaceView, All of these underneath use surface.
For views attached to the window manager there is no activity / window so we need another solution
There is no official way to get a views underlying surface so we had to do some dirty hacks to get it from the window manager. See the inline comments for details.
Additionally it turns out that the pixel copy api was actually made async in Android 34, so to prepare for this the snapshot method was made a suspend function and we wrap the callback based apit with suspendCoroutine.
Reviewed By: lblasa
Differential Revision: D50845281
fbshipit-source-id: 5ba8ed6f330c1e04549812a6493ae5f4cb629d1f
Summary:
Pixel copy is a more reliable and consistent way to take a snapshot rather than drawing into a canvas. It accepts either:
Surface
SurfaceView
Window
For root views that belong to an activity its easy to get the window so we do that here.
In the next diff we solve this for other root views
Reviewed By: lblasa
Differential Revision: D50845282
fbshipit-source-id: 3968828dedd1e96a854b907e0fd152ad64993d95
Summary: Snapshot never made much sense in the descriptor since we only snapshot the decor views. Additionally in the next diff i will introduce a new way to snapshot so this will make it easier
Reviewed By: lblasa
Differential Revision: D50845280
fbshipit-source-id: c2eac351b72786e7b66951d0fa09cea52a6dcc69
Summary:
The previous approach was designed for a world that didnt happen and was extremely confusing and allowed for states that didnt make a lot of sense. E.g it was possible we were snapshotting multiple views.
The new model is much simpler. we still depend on the root view resolver to tell us about root decor views but now we just attach a predraw listener to the top most view and push out the updates. This is handled by the new class decor view tracker which is a replacement for all the observer business
Additionally we use a conflated chanel in the update queue, this means if the background processing is slow we wont keep adding new frames to the queue, we just keep 1 and the most recent frame
Partial layout traversal -> Layout traversal as traversal is now always from top to bottom of the whole application
Reviewed By: lblasa
Differential Revision: D50791527
fbshipit-source-id: 43640723aefa775aa7b74065f405cc08224ed8b8
Summary: This is currently done by querying the 'console-log' event. Instead, make it type safe and official.
Reviewed By: antonk52
Differential Revision: D50927954
fbshipit-source-id: ff767acdc51b942c6deb92ffbfd93288b3367062
Summary: This is currently done by querying the 'console-log' event. Instead, make it type safe and official.
Reviewed By: antonk52
Differential Revision: D50927803
fbshipit-source-id: e0488782dd584e36b6f742f9892fc09ffaf62469
Summary: This is currently done by querying the 'console-log' event. Instead, make it type safe and official.
Reviewed By: antonk52
Differential Revision: D50927713
fbshipit-source-id: 780c0f158bf8bdaa6d009035a0cee62c7828f479
Summary:
Original commit changeset: 6bc0c942b3d9
Original Phabricator Diff: D50885337
There's an issue with the import, same reason we do:
```
require('flipper-ui-core').startFlipperDesktop(flipperServer);
```
Reviewed By: aigoncharov
Differential Revision: D50926125
fbshipit-source-id: 04e1b920bcecab9f245924907637b36dac312f1f
Summary:
This will ensure only one instance of Flipper is running at any given point in time.
#thanks antonk52 for guidance and advise implementing a single Flipper instance solution which will improve overall Flipper user experience.
Reviewed By: antonk52
Differential Revision: D50455446
fbshipit-source-id: 2407c77d43ba28e91d525f6cdb11d7b9db1cfab7
Summary: As a follow-up from the utility created on the previous diff
Reviewed By: aigoncharov
Differential Revision: D50885337
fbshipit-source-id: 6bc0c942b3d96eb020ec15395f34d5794ba2ae15