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
Summary:
For C++, folly::dynamic is used throughout.
On iOS and Android though, Flipper goes through multiple conversions to get to a folly::dynamic only to ultimately obtain a JSON string from it.
Let's take a look at Android:
There are multiple types like FlipperObject, FlipperArray that wrap around a JSONObject.
When data needs to be sent:
1. The JSONObject is asked for its string representation.
2. The string representation is then parsed by folly to construct the folly::dynamic instance.
3. The step above involves an extra boundary cross through JNI.
4. Ultimately, a socket or ws connection does not understand folly::dynamic so we then get a JSON string representation from it.
5. Data is sent.
As described above, for big enough objects, this represents an issue.
So, the idea of this change, is to allow plugins to send a JSON string instead. This will remove a few serialisation/deserialisation steps from the process.
*Note: this API is not currently used by anything so there's no impact to existing plugins.*
Changelog: expose a send method that accept a string as params
Reviewed By: LukeDefeo
Differential Revision: D38741582
fbshipit-source-id: 78e0acd80fc8c97378ee986cbaf377078996ed60
Summary:
Resolves https://github.com/facebook/flipper/issues/3926. Open to suggestions on the tag value, just sort of picked one that could be pointed to for anyone that wants to track these in their apps.
## Changelog
Tag sockets used by Flipper to fix strict mode warnings about untagged sockets.
Pull Request resolved: https://github.com/facebook/flipper/pull/3928
Test Plan:
Edit FlipperSampleApplication.java with the following:
```
public class FlipperSampleApplication extends Application {
Override
public void onCreate() {
StrictMode.setThreadPolicy(
new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build()
);
StrictMode.setVmPolicy(
new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build()
);
...
```
That will enable strict mode. Now build/launch the sample application.
Use adb logcat to inspect warnings:
```
adb logcat -s StrictMode
```
Without tagging the socket, the following warning should be observed:
```
D/StrictMode: StrictMode policy violation: android.os.strictmode.UntaggedSocketViolation: Untagged socket detected; use TrafficStats.setTrafficStatsTag() to track all network usage
```
After applying the fix, that warning should go away.
Reviewed By: lblasa
Differential Revision: D38280819
Pulled By: passy
fbshipit-source-id: 0c841b13237cbcb0ff8b8226fb44655a74b775c6
Summary:
A codemod removed a GK which resulted in this...
This change removes the unused code.
Reviewed By: mweststrate
Differential Revision: D38239893
fbshipit-source-id: 01163e9f5adcc77fff572b47ce1d902dbdadff4d
Summary: In a previous diff D32278523 (8764da7c0b) The desktop request was changed from send to call. Call expects a response and not all code paths return a response. Most calls to set highlight are timing out.
Reviewed By: mweststrate
Differential Revision: D38074704
fbshipit-source-id: 6e85416d6b6470efaa177ad1b74420c8237366d5
Summary:
Bumps core-ktx from 1.7.0 to 1.8.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/3794
Reviewed By: lawrencelomax
Differential Revision: D37070913
Pulled By: passy
fbshipit-source-id: 98f817ee76bde2dfec2ebf3eb5080214c746cdc4
Summary:
Apps usually communicate with multiple hosts to support pops and data centres. The problem currently is that for each host we need a different config in the mock tab in flipper. If the host change due to failover then the mocking stops working. Added support to enter the URL without a host in the flipper. We then check if the Url from the actual network request contains the mock URL without a host.
We can change the hint on flipper UI to suggest either entering the complete URL or without the host to allow matching across multiple hosts.
Resolve:[3751](https://github.com/facebook/flipper/issues/3751)
Let me know if the approach looks good.
## Changelog
Pull Request resolved: https://github.com/facebook/flipper/pull/3762
Reviewed By: lblasa
Differential Revision: D36780307
Pulled By: passy
fbshipit-source-id: 744898fa24d13343132e9a2165750241861245bd
Summary:
This change isolates the usage of folly async from Flipper. Is now self-contained in Flipper Folly schedulers.
Users of Flipper can decide not to use the types defined in that header and implement their own.
NOTE: changes are minimal, we are just replacing direct calls to folly event base with a scheduler which simply relays this on to folly.
Reviewed By: fabiomassimo
Differential Revision: D36626483
fbshipit-source-id: add0241caf4af0aa5c3b5c2e7efc2e725f5400ab
Summary:
`getChilAt` can return `null` (see also line 671), probably when the UI changes during the inspection process. Added a null check that should protect against the failure reported in P501013941
Changelog: Fixed NPE during search in layout plugin (Android)
Reviewed By: lblasa
Differential Revision: D36369508
fbshipit-source-id: 1f066d1a73bdfe875d66f7200ded0d0776af8321
Summary:
This change isolates the usage of folly async from Flipper. Is now self-contained in Flipper Folly schedulers.
Users of Flipper can decide not to use the types defined in that header and implement their own.
NOTE: changes are minimal, we are just replacing direct calls to folly event base with a scheduler which simply relays this on to folly.
Reviewed By: fabiomassimo
Differential Revision: D36052198
fbshipit-source-id: 170d64a324a1f1f100224e2622a59cbac3c8b642
Summary:
^
:android:third-party task, on ocassions, gets parallelised with the :configureCMake task resulting in build errors.
:configureCMake depends on dependencies being in-place and patched.
Our current setup was achieving this via setting these tasks as dependencies of the preBuild task.
Unfortunately, this seems not be a bullet-proof solution.
This patch aims to improve this situation by ensuring the tasks are executed before :configureCMake. Whatever happens first.
Changelog: Execute :third-party:prepare before :configureCMake task on Android
Reviewed By: passy
Differential Revision: D36001637
fbshipit-source-id: 6c53b6852e40e354337c0ac940b5bbad4ef83078
Summary:
^
This change makes it clearer the order of tasks for the native libraries.
If unspecified, tasks will run in parallel.
There was an additional issue in which the revision could be written to disk before all dependencies are properly downloaded and packaged.
For reference, we depend on Folly.
Folly depends on:
- Double-Conversion
- Glog
- Boost
- LibEvent
This is now reflected in the tasks graph.
Reviewed By: passy
Differential Revision: D35931187
fbshipit-source-id: ec19a28521ebf318bd1e92feafab1671733679ca
Summary:
`AndroidFlipperClient.java` is a debug tool, and it has some strict mode violation.
We should exempt them to reduce noise on logcat.
- 1.
```
D StrictMode policy violation; ~duration=43 ms: android.os.strictmode.DiskReadViolation
D at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
D at libcore.io.BlockGuardOs.access(BlockGuardOs.java:71)
D at libcore.io.ForwardingOs.access(ForwardingOs.java:72)
D at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7578)
D at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
D at java.io.File.exists(File.java:815)
D at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:681)
D at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:672)
D at android.app.ContextImpl.getFilesDir(ContextImpl.java:717)
D at android.content.ContextWrapper.getFilesDir(ContextWrapper.java:253)
D at com.facebook.flipper.android.AndroidFlipperClient.getInstance(AndroidFlipperClient.java:55)
```
- 2.
```
D StrictMode policy violation; ~duration=46 ms: android.os.strictmode.DiskReadViolation
D at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
D at libcore.io.BlockGuardOs.read(BlockGuardOs.java:304)
D at libcore.io.ForwardingOs.read(ForwardingOs.java:176)
D at libcore.io.IoBridge.read(IoBridge.java:509)
D at java.io.FileInputStream.read(FileInputStream.java:320)
D at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
D at java.io.BufferedInputStream.read(BufferedInputStream.java:347)
D at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:291)
D at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:355)
D at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:181)
D at java.io.InputStreamReader.read(InputStreamReader.java:184)
D at java.io.BufferedReader.fill(BufferedReader.java:172)
D at java.io.BufferedReader.readLine(BufferedReader.java:335)
D at java.io.BufferedReader.readLine(BufferedReader.java:400)
D at com.facebook.flipper.android.FlipperProps.getFlipperPortsPropValue(FlipperProps.java:92)
D at com.facebook.flipper.android.FlipperProps.getFlipperDefaultAltPortsPropValue(FlipperProps.java:76)
D at com.facebook.flipper.android.FlipperProps.getAltInsecurePort(FlipperProps.java:37)
D at com.facebook.flipper.android.AndroidFlipperClient.getInstance(AndroidFlipperClient.java:47)
```
Reviewed By: nikoant
Differential Revision: D35784406
fbshipit-source-id: b55ce458e04a44d98565972132707a392d71281c
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
Summary:
DefaultSqliteDatabaseProvider only list databases in the "files" folder & "databases" folder:
/data/user/0/com.facebook.wakizashi/files/
/data/user/0/com.facebook.wakizashi/databases/
On Messenger in Blue, msys database is located in the folder /data/data/com.facebook.wakizashi/app_mib_msys and therefore is not found automatically.
This patch makes the Database Flipper dolphin see the msys database by also listing the databases referred via extraDatabaseFiles.
Differential Revision: D35041276
fbshipit-source-id: e91b95fdc3bb31d414087cdea4a6825a98f3210a
Summary:
^
Note: this is already a working case. The difference is that if we are unable to establish a socket connection, we will not attempt to create one using rsocket.
Changelog: Removes rsocket-fallback for mobile clients
Reviewed By: nikoant
Differential Revision: D33655430
fbshipit-source-id: cb6f752f2d1354ab46d011b1f19c89520e1e7dd3
Summary:
We shouldn't report an error when Flipper is querying data before Fresco is initialized.
This will be especially useful when we move to lazy Fresco initialization later this year.
Reviewed By: passy
Differential Revision: D33978177
fbshipit-source-id: dfb6cb1b73737adbb557ecb141b043d088b5a574
Summary:
Bumps appcompat from 1.4.0 to 1.4.1.
[](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/3303
Reviewed By: lawrencelomax
Differential Revision: D33620944
Pulled By: passy
fbshipit-source-id: 6479b38aaa04d9791fa1a42937274c26a3831d7b
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/3125
Better stream creation and disposal.
A report was generated with the following error:
StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
Changelog: Close input stream after use which was causing strict mode policy violation crashes and possibly leaking resources.
Reviewed By: passy
Differential Revision: D32830690
fbshipit-source-id: de3ffaf1b600590c4060a381fae66e73e08745cb
Summary:
This change addresses a warning and provides a safer way of resolving the connection promise.
Also, fixes an issue whereas the websocket connection was not being reestablished as the listener is not notified when we manually disconnect.
Reviewed By: passy
Differential Revision: D32591859
fbshipit-source-id: 78ce4eac5414a924217867f2f47b04829da3b705
Summary:
This includes a bunch of different things which I wanted to do separately, but it's all a massive Jenga Tower and you cannot remove a single piece.
- Litho upgrade
- Gradle plugin upgrade
- Remove storage permission as it apparently doesn't do anything above Android 10
- Upgraded build target to Android 12 because the new support lib/Kotlin stdlib required this which then caused the issue below to pop up
- Added "export=true" everywhere as this is now a blocking issue if you don't have it
- Upgraded to the LeakCanary2 plugin as version one no longer builds with an Android 12 target for the export reason
- Make CI run on JRE 11 because that's required by the new Gradle plugin
- Update internal CI to no longer define the SDK twice and use Java 11
Pull Request resolved: https://github.com/facebook/flipper/pull/3095
Test Plan: Built Android Sample and Tutorial app, connected to Flipper.
Reviewed By: lblasa
Differential Revision: D32644410
Pulled By: passy
fbshipit-source-id: 8978f158d9c642b3bbd9dbbd7321eb20098a7a53
Summary:
Changelog: Fix theme reflection logging lot of errors if the APIs aren't accessible, see #1736
Harden theme reflection based on the comments in https://github.com/facebook/flipper/issues/1736
Reviewed By: jknoxville
Differential Revision: D32202434
fbshipit-source-id: 99178df56c91715f9eff1e4764ebc55b29ecb6f3
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
Summary:
[Reported in the support request](https://fb.workplace.com/groups/flippersupport/posts/1237466586733997/), Activity object is held by ObjectTracker even though the Activity is destroyed. This, in this case, caused strict mode in Portal app to forcibly terminate.
This diff tried to remove activities from the reference holder.
Reviewed By: passy
Differential Revision: D31828290
fbshipit-source-id: aad7e8d7ba14069f8dd7c654a3604d482d85e110
Summary:
Add screenreader-focusable property to AccessibilityUtil#getAccessibilityNodeInfoData
The accessibility hierarchy displays various AccessibilityNodeInfo properties. However, it was missing the screenreader-focusable property.
## Changelog
Display screenreader-focusable property in the accessibility hierarchy.
Pull Request resolved: https://github.com/facebook/flipper/pull/2925
Test Plan: Test suite passes and code lints.
Reviewed By: mweststrate
Differential Revision: D31312381
Pulled By: passy
fbshipit-source-id: c5044cef6aabe5bd2d2ce5e315f5aafd6990a137
Summary:
I've been really sweating about this one. It looks like Google now removed NDK 21 as it's too old. However, we've been struggling with the upgrade because OpenSSL was built against an old version of the NDK/glibc/LLVM/some other stuff.
I've now managed to create an OpenSSL distribution for 1.1.1k (we had 1.1.0h before) that seems to build with this after some small modifications.
This seems to do the trick, but I wouldn't be shocked if we found some more incompatibilities further down the line.
Pull Request resolved: https://github.com/facebook/flipper/pull/2836
Test Plan:
- Locally: `./gradlew :tutorial:installDebug`. Builds, starts up. Cool.
- Public GitHub CI: Happy.
- Circle CI: Only triggers post-land. We'll see. But the setup is simple, so hopefully it should work there, too.
- Internal CI: Waiting for signal.
Reviewed By: fabiomassimo
Differential Revision: D30839209
Pulled By: passy
fbshipit-source-id: efe599f28cc0edfdf2149f905c3483555239edc0
Summary:
This reverts commit efd75ea435.
Sorry hbmartin! We're running into Kotlin compatibility problems. Your latest library release isn't compatible with Kotlin 1.3 and we can't upgrade just yet because Litho hasn't been able to release in a while. :(
Pull Request resolved: https://github.com/facebook/flipper/pull/2665
Test Plan: _eyes
Differential Revision: D30189360
Pulled By: passy
fbshipit-source-id: c1edbbc496742938579f4e2032a78debe08fcc26
Summary:
Bumps appcompat from 1.3.0 to 1.3.1.
[](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/2626
Reviewed By: timur-valiev
Differential Revision: D29932510
Pulled By: passy
fbshipit-source-id: c947dadad9649b3f0f1dd9c6e3be8714b25f1ca6
Summary:
As explained in this [Issue](https://github.com/facebook/flipper/issues/1919) when running checks to see if Jetifier is needed to compile any given app using Flipper, it complain due to the dependency on `com.parse.bolts:bolts-applinks:1.4.0`.
```
Scanning com.parse.bolts:bolts-applinks:1.4.0
Absoulute path: /....../bolts-applinks-1.4.0.jar
Graphs to this dependency:
+---com.facebook.flipper:flipper:0.74.0
+---com.parse.bolts:bolts-applinks:1.4.0
> Task :canISayByeByeJetifier FAILED
```
Bolts has already fixed the AndroidX migration in version `1.5.0` but it has never been published ([Issue](https://github.com/BoltsFramework/Bolts-Android/issues/157))
After checking the code i realized flipper is only using `bolts-tasks` in `FrescoFlipperPlugin` ([code](7bd4f80c25/android/plugins/fresco/src/main/java/com/facebook/flipper/plugins/fresco/FrescoFlipperPlugin.java (L14))).
`bolts-applinks` depends on `bolts-tasks` but **not the other way around**, so we can safely remove this dependency.
## Changelog
- Removed dependency on bolts-applinks not in use
Pull Request resolved: https://github.com/facebook/flipper/pull/2580
Test Plan:
### Tests
- [ ] Run unit tests `./gradlew :android:test` and make sure they pass
### Smoke test `fresco-plugin`
- [ ] Make sure `android/sample` compiles and runs
- In the Flipper desktop app enable `Images` plugin
- In the Android sample app tap on `Load Fresco Image`
- [ ] Verify in desktop app that the image shows correctly and the plugin works
Reviewed By: muraziz
Differential Revision: D29849669
Pulled By: jknoxville
fbshipit-source-id: 0cec730de3b94272985fec4a432ca244822f336f
Summary:
This diff bumps core-ktx from 1.3.0 to 1.5.0 and appcompat from 1.1.0 to 1.3.0 inside `android/tutorial`
core-ktx 1.5.0 is the last version built with Kotlin 1.4.x and is the latest we can safely upgrade to.
To update to core-ktx 1.6.0 we would need to bump KGP on the overall project to 1.4.x or 1.5.x to fix the build
failures.
Reviewed By: passy
Differential Revision: D29762647
fbshipit-source-id: 7ad23b3cbebe14b36dedaa7f8aedf11eece8429d
Summary:
Just a few tweaks to bring AndroidX up-to-date. Required
some fixes to the Kotlin Tutorial as it was throwing
errors about JRE incompatibilities.
Reviewed By: fabiomassimo
Differential Revision: D29761484
fbshipit-source-id: 10cb76115fe7542a60b6e5d14be9c0434e85171c
Summary: Changelog: The 'nativeplugins' on Android are no longer supported
Reviewed By: jknoxville
Differential Revision: D29163281
fbshipit-source-id: fb4032f240fc306608fe57479f3124d4e7a3400f
Summary:
**Update protobuf library with new support for `enum` and `oneof` types**
## Changelog
- Update plugin code for library API changes and other cleanup
- Add instructions to readme
Pull Request resolved: https://github.com/facebook/flipper/pull/2381
Test Plan: see demo app at https://github.com/hbmartin/protobuf_java_to_protobufjs
Reviewed By: priteshrnandgaonkar
Differential Revision: D28831035
Pulled By: passy
fbshipit-source-id: 46e196293330b615394606bd3486ea47ad6a0630
Summary:
Bumps [protobuf_java_to_protobufjs](https://github.com/hbmartin/protobuf_java_to_protobufjs) from 0.0.1 to 0.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/hbmartin/protobuf_java_to_protobufjs/releases">protobuf_java_to_protobufjs's releases</a>.</em></p>
<blockquote>
<h2>v0.1.0</h2>
<ul>
<li>Added support for <code>oneof</code></li>
<li>Added support for enums</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/hbmartin/protobuf_java_to_protobufjs/commits/v0.1.0">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/2391
Reviewed By: nikoant
Differential Revision: D28795384
Pulled By: passy
fbshipit-source-id: 56e791ff245cdc096e9ef11eb2b436e42e611659
Summary: Traverse recursively the /files directory and show all databases with .db extension in Flipper. Traversal depth is limited to 5 by default for performance reasons.
Reviewed By: mweststrate
Differential Revision: D28451609
fbshipit-source-id: de27c855fee220e0b79061c9b2df1eba6f5ef2af
Summary:
Protobuf based APIs are becoming more common (i.e. gRPC) but are difficult to inspect. Unlike plain text data formats (JSON), Protobuf calls transmit binary data requiring the format to be known ahead of time, making ad-hoc inspection impossible. This PR allows for those format definitions (messages in protobuf terminology) to be transmitted from the client to the network inspector plugin. These definitions are then imported into ProtobufJS which enables the binary data transmitted to be inspected as easily as JSON data.
See Retrofit PR in https://github.com/facebook/flipper/pull/2084
## Changelog
* Add ProtobufJS library to network plugin
* New `ProtobufFormatter` UI in `RequestDetails`
* `ProtobufDefinitionsRepository` to cache and load protobuf defintions
* `addProtobufDefinitions` call in the Android network plugin
Pull Request resolved: https://github.com/facebook/flipper/pull/2080
Test Plan: 
Reviewed By: mweststrate
Differential Revision: D27507451
Pulled By: passy
fbshipit-source-id: 586d891b74f2b17d28fe7a2a99074da755851f38