Commit Graph

71 Commits

Author SHA1 Message Date
Carmi Grushko
947f1932b5 Update ktfmt component on FBS:master
Differential Revision: D46802820

fbshipit-source-id: a2737658576bf86f431a7b355d853a529f6a2c34
2023-06-18 23:22:12 -07:00
Luke De Feo
914b32c383 Add framework event infra
Summary:
Added infra for collecting events from UI frameworks.
1. Framework event metadata captures all the static metadata around the event. This allows to us to not send the same metadata in every event as well as populate the monitoring drop down immediately. This is sent in init since this information is static
2. Framework event itself is quite bare at the moment. It will have thread and more attributes in the future

The UIdebugger litho support ulitity has been simplified now there are 3 extension points.

Context renamed to UIDContext since it is referenced in app initialisers where the android context is also imported and it create a naming collision

Reviewed By: lblasa

Differential Revision: D42606933

fbshipit-source-id: a419f3fd424c533d586813004c40b68feafd9a2e
2023-03-01 08:49:49 -08:00
Lorenzo Blasa
5b3e110821 Remove Enumeration type
Summary:
Enumeration used to be a type containing a single property value of type string.

The InspectableEnum is a type that had an Enumeration value and possible values.

As we removed possible values from the enum value, this structure no longer serves its purpose.

Reviewed By: antonk52

Differential Revision: D41400874

fbshipit-source-id: e5c2d1e15ee9b3074ddd69f75ee9b8150d44379f
2022-11-21 05:30:18 -08:00
Lorenzo Blasa
0ac8c2a6b3 Migrate enum possible values to metadata
Summary:
Before this change, possible values for an enumeration were embedded within the attribute value itself.

After this change, possible values are located within the attribute metadata.

Reviewed By: LukeDefeo

Differential Revision: D41337003

fbshipit-source-id: cef5654a679e9b961e82993abb201b518fcbcd00
2022-11-17 04:42:22 -08:00
Lorenzo Blasa
01dc22b1ab Attributes Metadata
Summary:
Before this change, attributes and attribute metadata were intermingled and sent as one unit via subtree update event.

This represented a few issues:
- Repetitiveness. For each declared and dynamic attribute, metadata was included on each value unit.
- Metadata can vary in size and thus can have a negative impact on payload size.
- The attribute name which is part of metadata is a string which always overhead on processing.
- Metadata instantiation is not cheap thus this also incurs in processing overhead i.e. even instantiating a single string can have an impact.

The proposal is to separate metadata of attributes from the actual node reported attributes. This solves the problems mentioned above.

Reviewed By: LukeDefeo

Differential Revision: D40674156

fbshipit-source-id: 0788551849fbce53065f819ba503e7e4afc03cc0
2022-11-10 11:52:28 -08:00
Lorenzo Blasa
0572808f1a Add additional inspectables
Summary:
This change adds support for more inspectables and also introduces more complex types to be used as a value.

This become specially useful for more complex yet primitive types like coordinate, size, bounds, etc.

Reviewed By: LukeDefeo

Differential Revision: D40307885

fbshipit-source-id: 125e832f06d6b31f56eb5405182d1c0d61388930
2022-10-18 04:30:51 -07:00
Luke De Feo
0562178739 Basic Litho support
Summary: Added an initial litho Tree observer and descriptors, its quiet naive and will be improved in a future diff

Reviewed By: lblasa

Differential Revision: D39466931

fbshipit-source-id: 66a462882af2e585b9719ee2f61595449f99c5e5
2022-09-13 11:05:42 -07:00
Luke De Feo
f123e65e8f Added strongly typed tree for sidebar inspector
Summary:
Introduced a JSON like tree structure for the sidebar insepector. Descriptors can provide their data as well as  if its mutable or not.

Enum mapping was simplified

Reviewed By: lblasa

Differential Revision: D38947238

fbshipit-source-id: cd8a6a8a752c5f626582ab8ac5efae6e9ff6a2ad
2022-09-07 04:37:17 -07:00
Lorenzo Blasa
b5bdd56d2c Application to instantiate Plugin
Summary:
Plugin needs both the Context and Application. Application is Context. Pass Application.

:)

Reviewed By: LukeDefeo

Differential Revision: D38831033

fbshipit-source-id: ff12a8ddc875fb54389e591a1c1c9febedb3aa37
2022-08-19 08:47:58 -07:00
Adam Ernst
0aa1f14536 Remove @scarf-generated from xplat/sonar
Summary: See D38829381.

Reviewed By: d16r

Differential Revision: D38837720

fbshipit-source-id: c576e16ebb5a0afd5e6dfc71adb3cf0c2361e9a3
2022-08-19 05:54:13 -07:00
Lorenzo Blasa
769a1844b7 Common types
Summary:
EnumMapping and InspectableValue taken from the original 'inspector' plugin but translated to Kotlin.

Accumulator is just a Map<String, Any>

Reviewed By: LukeDefeo

Differential Revision: D38823678

fbshipit-source-id: 6af395cab2e3e6930575eb63d22d660dab962fde
2022-08-19 03:39:06 -07:00
Lorenzo Blasa
ece57689e5 Move to public plugins location
Summary:
^

So far, we had the 'uidebugger' plugin as a meta-only plugin.

This change moves the plugin to OSS space as it will ultimately be its right place.

It will also make it easier to iterate on it.

The plugin itself is not ready for consumption but at no point we are documenting or integrating it with our samples.

Reviewed By: passy

Differential Revision: D38742336

fbshipit-source-id: 5cf124722fa7ba75ee9b998c507bfdfb2e4782c1
2022-08-18 05:16:38 -07:00
Lorenzo Blasa
cfdb363ab4 UI preview of selected element
Summary:
This is a prototype for view preview within Flipper.
If enabled, a preview of the selected element is rendered in the attribute inspector.

Changelog: Add view preview/snapshot for the Layout plugin on Android.

Reviewed By: mweststrate

Differential Revision: D35009246

fbshipit-source-id: a442ff7f57093f463016811f0f451b52f579b448
2022-03-28 06:51:53 -07:00
Andres Suarez
79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00
Michel Weststrate
750f26eaa3 Fix potential NPE in Layout Inspector
Summary: Fixed NPE linked by task. From the code, that stuff should never be null, unless there is some threading / concurrency issue, which there apparently is. In that case, failing with a warning is imho a bit more elegant than raising exceptions from a debugging tool

Reviewed By: lblasa

Differential Revision: D32278044

fbshipit-source-id: 710fcdcfe458f33bbb806d9f2f1b9352252eedec
2021-11-09 06:53:00 -08:00
Michel Weststrate
07199323d1 Remove Newsfeed Story Inspector and native plugin mechanism
Summary: Changelog: The 'nativeplugins' on Android are no longer supported

Reviewed By: jknoxville

Differential Revision: D29163281

fbshipit-source-id: fb4032f240fc306608fe57479f3124d4e7a3400f
2021-06-21 05:39:26 -07:00
Ian Childs
c85942b6b1 Move sonar robolectric tests to use binary resources
Summary: Legacy resources are deprecated, this is what we should be using

Reviewed By: jselbo

Differential Revision: D25903962

fbshipit-source-id: ffa91a3aee8956591b7daab523bda2e59fec9932
2021-01-13 14:32:56 -08:00
Joshua Selbo
0b2e5f6454 Upgrade Robolectric from 4.3.1 -> 4.4
Summary: Changelog: [Internal]

Reviewed By: jiawei-lyu

Differential Revision: D23718455

fbshipit-source-id: 39c684722db1269e2179cf9680cb728be1171afb
2020-09-29 18:41:20 -07:00
Paco Estevez Garcia
ff3584e2e0 Add support for tagged messages on the Layout Inspector
Summary:
Related diff [CK]: D23243009

This diff adds support for a protocol for layout messages where the type is recursively encoded as:

```
{
 kind: "type",
 data: ???
}
```

The meat of the diff is on FlipperEditor.java, SetDataOperations.java and InspectorFlipperPlugin.java. The others are there just for a change on an interface.

We check if the message adheres to the new encoding, otherwise we fall back to the old behavior. If it's the new encoding, the message is traversed recursively flattening the types to EditorValue using the type hints provided.

Reviewed By: muraziz

Differential Revision: D23243009

fbshipit-source-id: 0f313455885930f3beaaadb66f3bf394f109ea23
2020-08-28 08:56:21 -07:00
Paco Estevez Garcia
d871ce0a04 Extract TouchOverlayView to new class
Summary:
Before this diff, `TouchOverlayView` would be an inner non-static class,so it'd be difficult to track memory ownership for it.

It also made `InspectorFlipperPlugin` longer and harder to read.

Reviewed By: cekkaewnumchai

Differential Revision: D22285744

fbshipit-source-id: 6fdd8c33a07be6ab900ebb28a8c3ebf3761fb598
2020-07-01 11:05:46 -07:00
pyricau@users.noreply.github.com
cfd8662c12 Fix ApplicationWrapper activity weakRef leak (#1301)
Summary:
Fix for https://github.com/facebook/flipper/issues/1300

The weak refs were not being cleared in two cases:

- On config changes, isFinishing() would be false in onPause()
- When calling finish() from Activity.onCreate(), onPause() isn't guaranteed to be called.

## Changelog
Pull Request resolved: https://github.com/facebook/flipper/pull/1301

Reviewed By: mweststrate

Differential Revision: D22286182

Pulled By: passy

fbshipit-source-id: 948d1d9b2145b6526c0030cf537330409ff7f8c4
2020-06-30 09:46:00 -07:00
Chaiwat Ekkaewnumchai
d593409ec4 (client) Return Tree instead of Path
Summary:
- Add return parameter to `createTouch` method: stack of node. This reference will be used to retrieve the final tree structure to be sent back to desktop app.
- `Touch` now keeps every step in component tree (I have concerned for app performance here)
- Edit test to reflect changes

Note:
- `path` will also be returned to keep backward compatibility with older server (desktop) side

Reviewed By: adityasharat

Differential Revision: D21040429

fbshipit-source-id: 6c2b9792378bf08b19fbbda1d2381df8c357170c
2020-05-07 03:40:58 -07:00
Joshua Selbo
e6b7c9a346 Migrate Sonar Android tests (#1045)
Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/1045

Reviewed By: passy

Differential Revision: D21181354

fbshipit-source-id: ddc329f8bafd5890b7428642d32f7f62e1d499ad
2020-04-23 15:19:32 -07:00
Hilal Alsibai
33bbeadfe9 Add theme information for Application, Activity and View descriptors
Summary: This will query for and display all of the associated theme information for each of the descriptors.

Reviewed By: passy

Differential Revision: D20008056

fbshipit-source-id: 720d224144b0822528ca8e23cdbec9fe9dd25e6b
2020-02-24 11:33:01 -08:00
Andres Suarez
0675dd924d Tidy up Flipper license headers [1/2]
Reviewed By: passy

Differential Revision: D17863711

fbshipit-source-id: 259dc77826fb803ff1b88c88529d7f679d3b74d8
2019-10-11 13:46:45 -07:00
Pascal Hartig
b041da6d61 Move litho plugin tests
Summary:
I missed these. :(

Open source CI is unhappy about this - for good reasons.

Reviewed By: jknoxville

Differential Revision: D17500071

fbshipit-source-id: 96106f660dee59985c51e2635321ab4ad00a795a
2019-09-20 10:24:38 -07:00
Ron Edelstein
0f503f40ac Apply java formatting
Reviewed By: zertosh

Differential Revision: D17006136

fbshipit-source-id: 356442170cee830f4794bff456a6d2162f45d6b3
2019-08-24 20:33:38 -07:00
Benjamin Elo
8f6740bb01 Open source version of Navigation Plugin
Summary:
Here I have an early version of the Navigation Plugin (Android) for Open Source.

A lot of apps will be using there own Navigation framework for handling deep links. In order to keep things as simple as possible, recording navigation events is done through a single function that can be called from anywhere in the app. This will allow users to place this function in there own navigation frameworks and use there own logic with it.

Seperately, I have shown how this can be used with our Android sample app. I use the built in Android intent-filters to provide a demo of how this can potentially be used, and to form the basis of the docs that I will write.

Reviewed By: passy, danielbuechele

Differential Revision: D16828049

fbshipit-source-id: 22765f63ca0c471689d2ec5865fdfc155b92697f
2019-08-16 07:15:56 -07:00
Sara Valderrama
f591475f85 A few mini-fixes for the accessibility layout inspector
Summary:
- fix mutual selection of elements in ax and non-ax tree (simplifies linkedNode logic as well)
- remove unneeded extraInfo attributes (focused, nonAXwithAXchild, & hasAXNode were not/no longer being used)
- use 50/50 fixed width view for trees when both are visible

Reviewed By: jknoxville

Differential Revision: D16390355

fbshipit-source-id: bbf9ea887f8f1035df8b4b0562ddcc4de291f004
2019-08-01 22:03:26 -07:00
Mihaela Ogrezeanu
9c96545bbd Add Flipper plugin to Litho's sample apps
Summary: Add plugin to sample app.

Reviewed By: marco-cova

Differential Revision: D16181876

fbshipit-source-id: fe60fa9f593c16cb24d6901c98b6392a05c6d837
2019-07-16 10:57:24 -07:00
Pascal Hartig
dd7924c963 Move navigation tests into private folder
Summary: The corresponding implementation isn't open-sourced.

Reviewed By: danielbuechele

Differential Revision: D16121833

fbshipit-source-id: 91b2fd3bce79468321e49f7798ff54dbf5abd38f
2019-07-05 02:31:26 -07:00
Benjamin Elo
4d774ba252 Added navigation plugin
Summary: Adding the auto-genrated scarf files from creating the Flipper navigation plugin. GK for this plugin is flipper-navigation.

Reviewed By: jknoxville, danielbuechele

Differential Revision: D16119841

fbshipit-source-id: 74e19c82dc95e73fe2ae06d1eb8cef2456b81931
2019-07-04 05:20:51 -07:00
Mihaela Ogrezeanu
3ba71cea9c Added plugin for Sections Changesets in Android
Summary: just the skeleton for the android plugin

Reviewed By: passy

Differential Revision: D16006791

fbshipit-source-id: b0fe2143afeab6bc0671b7ad5a3ccfbccdd6e40a
2019-07-04 03:40:13 -07:00
Arnaud Frugier
f40ac0617c Add getTableInfo API to process incoming TableInfo queries
Summary: Getting the "definition" of the database was originally on the GetTableStructure endpoint. This diff moves it to a new GetTableInfo endpoint

Reviewed By: jknoxville

Differential Revision: D15902619

fbshipit-source-id: ac136d24ee577711366636801b5d74d83fbc523f
2019-06-20 08:29:53 -07:00
John Knox
f71d33586f Disable Databases plugin test until roboelectric is upgraded
Summary: This gradle flag is stopping the other tests from passing.

Reviewed By: quanturium

Differential Revision: D15558776

fbshipit-source-id: 54934c73271e1cbb041877fef0dfb2de21733424
2019-05-30 14:29:12 -07:00
John Knox
a630b50a8f Add databases plugin v0 (android) (#441)
Summary:
Adds a plugin for listing the databases, tables and contents of those tables in an android app.
Right now, works with sqlite, but it should be generic enough to work with other db types.

## Changelog

Add initial version of android databases plugin

Creating a PR, I may need to do some cleaning up, but this is to kick off that process.
Pull Request resolved: https://github.com/facebook/flipper/pull/441

Reviewed By: danielbuechele

Differential Revision: D15288831

Pulled By: jknoxville

fbshipit-source-id: 6379ad60d640ea6b0a9473acc03dd6ea81a3a8d4
2019-05-28 10:17:56 -07:00
Pascal Hartig
c6e60e1e0c Fix typo
Summary: Drive-by fix.

Reviewed By: danielbuechele

Differential Revision: D15353813

fbshipit-source-id: 34fa17d63d80daaea4d453c749f3a676b645d7a1
2019-05-15 10:26:37 -07:00
Pascal Hartig
71230b3f7b Move navigation test to right folder
Summary: Probably wrong default.

Reviewed By: danielbuechele

Differential Revision: D15353913

fbshipit-source-id: d2582b9356ff14a4503fab9b85566cc1a59f31e8
2019-05-15 10:26:37 -07:00
Pascal Hartig
6ea07c9e71 Move test to right directory
Summary: You're not supposed to be here.

Reviewed By: SidharthGuglani

Differential Revision: D15353936

fbshipit-source-id: f389aeaff71f940d96dfc0422694fb0020dee05c
2019-05-15 09:10:55 -07:00
Sidharth Guglani
3086a7262d Create yoga performance plugin initial files using scarf
Summary:
YogaPerformance flipper plugin initial files
Auto generated using scarf plugin

Reviewed By: davidaurelio

Differential Revision: D15317118

fbshipit-source-id: 30c5c93a8ad4312478ea85979bdf230aa9186596
2019-05-14 03:21:32 -07:00
Corey Wu
2badd4efea Add Flipper plugin for Navigation
Summary:
The main goal is to update visitation id for our targeted tabs requirements (https://fb.quip.com/2jZiA97DTATi). In doing so, we want an easier way to debug whether everything is working as expected.

I've been meaning to add something like this for a while since it's a pain to explain what the visitation id and HSM look like as you navigate the app, so this should help the other teams who're using visitation id as well.

Will probably also start adding navigation events and any other data that we feel is useful.

Run:
```
fbsource/xplat/sonar/scripts/facebook/create-plugin.py Navigation --android
```
Then clean a few things up and fix lints.

Differential Revision: D14759995

fbshipit-source-id: 066dcbf70eed7056f995053cc9ba80dcbbafdb03
2019-05-11 20:45:49 -07:00
Pascal Hartig
84e4b916ee Remove JS console plugin
Summary: This is to unblock our mobile lab build target that adds Flipper to a redex-able build. Redex currently crashes when it tries to optimise Rhino. This could probably be fixed but we don't have any real use-cases for the console plugin right now. It should be fairly easy to unland this even partially if we want to revive this in the future.

Reviewed By: danielbuechele

Differential Revision: D15044539

fbshipit-source-id: f0857274aa046f5be935a342cf91b6a390fcb3dc
2019-05-09 09:54:53 -07:00
Pascal Hartig
f584eb05dd Another round of header updates
Summary: I hope that this takes care of all the android violations.

Reviewed By: danielbuechele

Differential Revision: D15199150

fbshipit-source-id: 0f5b4edc1bc9d38de0885f88bb2c3e43acfa09cd
2019-05-03 09:59:33 -07:00
Pascal Hartig
b7fff23700 Move example plugin out of core
Summary:
We should not ship this as part of our distribution.
Just meant we had to bifurcate our unit tests which
is a bit awkward, but it works now.

Reviewed By: jknoxville

Differential Revision: D15146980

fbshipit-source-id: 496b000630bbfcaa663cddacb00550e1499a1279
2019-05-01 08:38:22 -07:00
Pascal Hartig
608b9182ce Add version headers
Summary: Last big batch of adding license headers in Java code where they were missing.

Reviewed By: jknoxville

Differential Revision: D15164860

fbshipit-source-id: 4c0a61eec7b5659fdc674ebed85f2ade60dd0aa0
2019-05-01 08:14:55 -07:00
Pritesh Nandgaonkar
5169d318de Fix the callstack sent from error reporting runnable
Summary:
The crash logged from `ErrorReporterRunnable` wasn't detailed. For example look at the following video.
Also for some reason the `FlipperConnection` interface doesn't have an argument for crash name. Thus I changed the js side of the plugin to accept `crash.name` to be undefined.

{F155526537}

Reviewed By: passy

Differential Revision: D14852561

fbshipit-source-id: 6daf9847535b4508fa312b4f940b014911aae2e5
2019-04-15 05:51:37 -07:00
John Knox
e306ecda19 Fix Test
Summary: GitHub test failing because of this: https://travis-ci.org/facebook/flipper/jobs/517181150

Reviewed By: passy

Differential Revision: D14827468

fbshipit-source-id: e1d85747b39bd9fd781e8e6e8cb1827adb786482
2019-04-08 07:47:30 -07:00
John Knox
fa3dcdc5dd NativePlugins API update
Summary:
The main change is is changing from the inheritance model:
`FlipperPlugin > NativePlugin > TablePlugin > ConcretePlugin`

to a composition model where:
`NativePlugin > TablePlugin > ConcretePlugin`

And behind the scenes, there's a `FlipperPlugin` that has a `NativePlugin` reference.

Now your native plugin will call methods like (in the table case) `display.updateRows` instead of `super.updateRows()`

The reasons for this are:

* Testability: we can easily mock the display and assert output.
* Encapsulation: Previously, native plugins could call `mConnection.send(...)` and send completely unsupported messages to the desktop. Now they only have access to the display's public api, which is guaranteed to work.

I've also changed it so that on every row update, we send the latest table metadata along with it. This makes sure we can ensure that the right table schema is displayed for the current data.

QueryResponder interface also added, which will come in useful for queryable datasets.

Reviewed By: passy

Differential Revision: D14751885

fbshipit-source-id: ea0bbd25f7eaa60020f8866fe210d8bd1c22e90b
2019-04-05 10:06:14 -07:00
Pascal Hartig
d08a123ae4 Fix test
Summary: Add an ability to inspect errors reported through `ErrorReportingRunnable`.

Reviewed By: jknoxville

Differential Revision: D14640270

fbshipit-source-id: a5a79d647e20d5d46c85aac2a814c77abbc624b7
2019-03-27 10:12:04 -07:00
Vlad Albulescu
4d0b1d2fc3 remove unused constructor arg from MainThreadFlipperReceiver
Summary: Argument became unused in a previous diff.

Reviewed By: jknoxville

Differential Revision: D14642264

fbshipit-source-id: 99bc78a9cff8322e8bed337f201a4748039a0332
2019-03-27 09:50:54 -07:00