Summary:
The keys in WeakMaps have to be Objects (i.e. can't be primitives) as
they have to be fall under the responsibility of the GC.
Without this check, we may get "TypeError: Invalid value used as weak map key"
as we accept `any` as `data` for the inspector. I'm not entirely
confident if this check is enough, but I also don't have a way of reproducing
the error we got reported.
Reviewed By: jknoxville
Differential Revision: D14182463
fbshipit-source-id: 3397678935f08513e485bf5654377b54053ee32f
Summary: Only load the image when clicking on the "button"
Reviewed By: oprisnik
Differential Revision: D14165707
fbshipit-source-id: d07fb76562f8b91fc945713d779319b976e17016
Summary:
Not quite sure about the default as static, but then if it's for
debugging only, does it matter?
Reviewed By: oprisnik
Differential Revision: D14165668
fbshipit-source-id: edd53420a4fc8570de87f02b3e5e65cfe649f810
Summary:
This looks bad. There are two things I want to follow up on in future
diffs before landing this:
- Make loading the image conditional by adding another button.
- Add a default constructor to the plugin that avoids this crazy bit of boilerplate.
Reviewed By: oprisnik
Differential Revision: D14165569
fbshipit-source-id: 25c5fbaee32e72c6469979cda694cc9f13a92166
Summary:
Better safe than sorry even though we're not directly
working with user-supplied data, plugins or apps might.
Reviewed By: danielbuechele
Differential Revision: D14168566
fbshipit-source-id: 8108a2a592d2e2d6b8b2259e0e4bf943cf9c333e
Summary: This info is still available in the diagnostic screen.
Reviewed By: passy
Differential Revision: D14164791
fbshipit-source-id: 1fc91da0b7437d530bddee6cbb5ea8c2d11f7b80
Summary:
The search query can only be persisted if we have an identifier for the searchable component. For this we already have a property `tableKey` on our `ManagedTable`. However, we don't want to require every plugin to provide a key for their table.
In this diff, a tableKey is auto-generated from the table's column configuration. This should be good enough to uniquely identify a table and persist it's query.
Reviewed By: passy
Differential Revision: D14168577
fbshipit-source-id: 13e928a606c3a05096dfbfb01ae90b15aa085bf2
Summary:
Adds a capability to filter images by surfaces.
Note: I will allow multi select in the next diff, stacked on the current one.
Reviewed By: passy
Differential Revision: D14158223
fbshipit-source-id: d96d73b94a8a442f3b60f656bc573b328c5500ad
Summary:
When bundling default plugins, we create a JSON-file containing information about the plugin and where to require it from. This information contained two filed: `entry` and `rootDir`, which were written while bundling the plugins. Because the plugins are bundled on Sandcastle, this was a path on the Sandcastle machine.
This also happened for the OSS version, see the screenshot from a GitHub issue.
Entry and rootDir are only used during the build process and not needed afterwards, so it is save to remove them from the JSON.
https://pxl.cl/qQSx
Reviewed By: passy
Differential Revision: D14165679
fbshipit-source-id: 4e7c5ac25652758ccfc3a459f4dd197254c6f897
Summary: We swtiched from using the name of the package as the ID which is used to identify a client plugin. These changes were not reflected correctly in our docs.
Reviewed By: jknoxville
Differential Revision: D14165439
fbshipit-source-id: 1cbb9c1723911f8fa4b7df19c631e6f260c81bd8
Summary: This diff moves the state to PersistedState
Reviewed By: danielbuechele
Differential Revision: D14126419
fbshipit-source-id: aaf5f035ddc7e64ad2602ae4b80c9901a20df144
Summary: Moved the fresco plugin folder to open source directory
Reviewed By: passy
Differential Revision: D14126407
fbshipit-source-id: 15b2d1698e18b951742ec37ca94642e6511094b0
Summary:
Split off objecthelper into a (future) public and an fb-only version. This also open-sources the very first bit which is pretty useless on its own, but will already compile as its neatly stand-alone.
Note that this blocks releases until we have a stable version of Fresco to depend on.
Reviewed By: oprisnik
Differential Revision: D14149645
fbshipit-source-id: 0020d7ceccf89999695414ce389106ca6325ab7e
Summary:
Started with upgrading electron from 3.0.0 to 4.0.5. This required a bunch of subsequent updates:
* upgrading `electron-builder` to latest version, because the old version couldn't build electron 4 apps.
* `appDir` is deprecated in builder config, `projectDir` is used instead, which we already had set, so its fine to just remove this ([see GitHub commit](a5e457163e)).
* upgrading `jest-runner/electron` because the old version couldn't run electron 4 tests.
* upgrading our custom dependency resolution to use electron 4.0.5, because the test runner still resolves to 2.0.8 ([see GitHub issue](https://github.com/facebook-atom/jest-electron-runner/issues/31)).
* updating `sandcastle.sh` to use the new cache files from D14131344.
* removing `package-lock.json` as is was causing warnings. We use `yarn` and `yarn.lock` anyways. This file must have been committed by accident.
* updating our check to only run one version of Flipper at a time to use the new electron API `app.requestSingleInstanceLock` as the old one was removed in electron 4.
* updating the snapshot test that checks App rendering, which changed a little due to the electron upgrade.
* upgrading flow-type definitions to `electron-v4.0.5.js` generated by [electron-flowtype-definitions](https://github.com/danielbuechele/electron-flowtype-definitions).
**PS: Best new feature in Electron 4: Copy&paste working in dev tools**
Reviewed By: jknoxville
Differential Revision: D14131360
fbshipit-source-id: d7ed9643875629a1fa1860bb61b11dd0c64112ab
Summary:
1. Added onSort() pass-through to ManagedTable which allows to handle sort order changes.
2. columnOrder now gets updated when the corresponding prop is changed indepedently from ref.
Reviewed By: danielbuechele
Differential Revision: D14147857
fbshipit-source-id: 03300629a3316a69be6b745810516966b8060aa6
Summary: This release targets the support library and target SDK v28.
Reviewed By: muraziz
Differential Revision: D14151637
fbshipit-source-id: 5f32a98580558606aef17902e82a9d8061b99f48
Summary: This release targets the support library and target SDK v28.
Reviewed By: muraziz
Differential Revision: D14151636
fbshipit-source-id: 70f4412dc0ccba3c77dda74dcf9b143782b90713
Summary:
We need this to continue to build with Fresco and
in preparation of AndroidX.
Reviewed By: muraziz
Differential Revision: D14149811
fbshipit-source-id: dd227f85ead23b8412706905f8723b3c153b28b7
Summary:
Builds in flipper-public are failing, because duplicate imports: https://our.intern.facebook.com/intern/sandcastle/job/22517998213713260
That's most likely because the `flipper-public` is not blacklisted in metro, so let's add it!
Reviewed By: passy
Differential Revision: D14134423
fbshipit-source-id: 52f87196957c8578b8ac7f578efa74e3c13fe1bb
Summary: The electron stub is used by the headless version of Flipper. For that reason, the version number was always `1`. The headless version has a the actual version written to a global variable. So let's use it here.
Reviewed By: passy
Differential Revision: D14149692
fbshipit-source-id: c4781987fd3201e67897eaf31627b0bb2970ffcb
Summary:
Logs were not collected in headless mode, because there was no subscriber listening to the logs. Now they are always stored, even if there is no subscriber. Actually this makes more sense even for the desktop UI, as subscribers could subscribe later.
The only reason this was working on the desktop app was because the log plugin automatically subscribed on launch.
This brings us to the actual question: If a message is logged in a forest and no one is around to read it, is it actually logged? 🤯
Reviewed By: passy
Differential Revision: D14149691
fbshipit-source-id: 212f1b0a69bd0cc8ae0ba3592f29ca90b7a5a475
Summary: Instead of installing some global mutable thing, pass it down. This also eliminates the rather gnarly side-effect of instantiating some visitor and suddenly logging information in an entirely different place.
Reviewed By: oprisnik
Differential Revision: D14131253
fbshipit-source-id: 760c6a3f85056e334ac1149c76ca4126fbfa7da4
Summary:
Buck doesn't really care so the previous diff works out fine on
its own, but Android Studio is less forgiving.
Reviewed By: oprisnik
Differential Revision: D14131182
fbshipit-source-id: 0ad26e7c5f1e0776bdf07dda2f04bdf16183a5e8
Summary:
This is generic enough, even though I strongly dislike the
installing mechanism, but that can be changed later.
Reviewed By: oprisnik
Differential Revision: D14131183
fbshipit-source-id: b75c1e1563ac9371cbc7d28b239c316a0aa1a9dd
Summary: I got tripped up again with a physical iOS device that had the wrong date and time. SSL certs won't be valid. Adds a reminder to the diagnostic screen for anyone running into this in future.
Reviewed By: passy
Differential Revision: D14132411
fbshipit-source-id: 623120ef5252eae3e2fe0f6f653074f586f17e0e
Summary: Only usable with a desktop app that supports physical iOS devices, which isn't released yet.
Reviewed By: passy
Differential Revision: D14132413
fbshipit-source-id: 376d1db06e46ae06346974f2acc95c3d2ff6825d
Summary: The CSR has no need to change, don't recreate it every time we need it. Useful for the physical iOS case especially, because it connects to the portforwarder and keeps attempting to send a CSR.
Reviewed By: passy
Differential Revision: D14131617
fbshipit-source-id: 82a69d5aff813d77fa05dd13fc2441b784766d99
Summary:
Not sure why, but if we stick this in the build folder,
the artifacts get downloaded every single time despite `onlyIfNewer`.
Reviewed By: jknoxville
Differential Revision: D14132383
fbshipit-source-id: 464e4a6e474877c16a06a6e83ccd1a2e355cbea2
Summary:
We've seen some crashes from toRSocketPayload, but aren't sure of the cause.
When we fail the DCHECK, there won't be any log output, so log before it if it's going to fail.
Reviewed By: passy
Differential Revision: D14131409
fbshipit-source-id: b71e043f0b5feac3d2e44a34cc38c72086f966ad
Summary:
Bit ugly, but allows us to use this interface in open-source
and internally. There's no buck target as we only need this
for Gradle.
Reviewed By: oprisnik
Differential Revision: D14132467
fbshipit-source-id: 998df6ce31f1fb7d00ea99d6d28759f7e2c800c3
Summary:
Currently when a client connects, if there's no matching device we know of, it emits an error.
The problem is that there's a race between clients connecting and devices being detected, if the client connects first, then we'll emit this error, even though the device is displayed shortly afterwards.
Fixing this by waiting 2 seconds after a client connects, and then if it's still connected, checking for a matching device. This should be enough time to make this error more reliable.
Reviewed By: passy
Differential Revision: D14126315
fbshipit-source-id: c81b2c6d9a6e0639a656d1a4d7a8f999f715bfbf
Summary: Destructors should never throw, because if they are destructed while an exception is unwinding the stack the program will terminate.
Reviewed By: passy
Differential Revision: D14124423
fbshipit-source-id: 4b3d21663d44160bf24adacca25f50522d952e7c
Summary: Per title. This unblocks the release.
Reviewed By: jknoxville
Differential Revision: D14124560
fbshipit-source-id: 4e9cf73b3598f894ebd60b6b15203f184b9a8381
Summary:
To make it more obvious how to disable this if unwanted (e.g. when
testing local builds).
Pull Request resolved: https://github.com/facebook/flipper/pull/373
Reviewed By: jknoxville
Differential Revision: D14130771
Pulled By: passy
fbshipit-source-id: 82c83c1ad14737c8c7791de71a1ee23fcea5ec18
Summary: Soves the bug which caused the multiselection to clear off when one did ctrl+click
Reviewed By: jknoxville
Differential Revision: D14103906
fbshipit-source-id: 834d79e1c86a89b4d90c26e8db1850c1e8712a5d
Summary: This diff adds a helper function to serialize and deserialize javascript Objects
Reviewed By: danielbuechele
Differential Revision: D14101483
fbshipit-source-id: 3e1f37076ccc04b83cf7de5f10900e21e6474c1d
Summary: as per title. see explanation in code comment
Reviewed By: jknoxville
Differential Revision: D14125820
fbshipit-source-id: 9b8e31214a65a184397852544cebd7b69ea0aadb
Summary: Exceptions should never be thrown from destructors, because if an exception is already propogating at the time the destructor is called. Program will terminate.
Reviewed By: passy
Differential Revision: D14123526
fbshipit-source-id: 15ff74f4f14eb28a586055e1b1a5d54231b549da
Summary: "Plugin not showing" was scrolling with the sidebar. Fixed that.
Reviewed By: jknoxville
Differential Revision: D14123853
fbshipit-source-id: 12358bb3bd040701bafa080c2bcc27d8c837ea39
Summary:
Users passing the GK `flipper_layout_inspector_new` will see then new layout inspector instead of the old one.
Hopefully users won't realize that they are on the new Layout Inspector. To make them aware of it, I added a bar on the bottom linking to the support group that is used for the GK.
Reviewed By: jknoxville
Differential Revision: D14100392
fbshipit-source-id: 78d561a3ab8ac035e5b439799c395901be086b1b
Summary: Adding the searchbar to layout inspector. Most of it's functionality is taken from the existing implementation.
Reviewed By: jknoxville
Differential Revision: D14100533
fbshipit-source-id: 6c3a49658d53c676489886b2599bef425f8f20d3