Commit Graph

29 Commits

Author SHA1 Message Date
Will Holen 452cb9a78a Add support for Debugger.runIfWaitingForDebugger
Summary:
This call is used to continue execution when the app has just been
started in a "wait for debugger" mode. This is the only case
in which it has an effect.

Notably, it should do nothing in the following cases, which a layperson
may be tempted to classify as "WaitingForDebugger":

* The app was running detached and hit a 'debugger;' statement
* The app is paused because of a breakpoint or hitting the Pause button
* The app stopped on an instrumentation breakpoint, and expects
  the debugger to collect data and potentially auto-resume.

Changelog: [Internal] Add Hermes support for Debugger.runIfWaitingForDebugger

Reviewed By: mhorowitz

Differential Revision: D21557446

fbshipit-source-id: 790cec7444ddc61908d2ef9d92e4649b535d678f
2020-05-15 12:42:38 -07:00
Will Holen bf837d6373 Add support for Debugger.setInstrumentationBreakpoint
Summary:
This diff adds support for the "beforeScriptWithSourceMapExecution" instrumentation
breakpoint via "Debugger.setInstrumentationBreakpoint".

CDP describes it as a breakpoint, but we just set a flag in the inspector. A
fake breakpoint ID is synthesized for optional removal later.

Changelog: [Internal] Add Debugger.setInstrumentationBreakpoint to Hermes Inspector

Reviewed By: mhorowitz

Differential Revision: D21418218

fbshipit-source-id: 90fa49c0954980993815322d3a7effee416ed5db
2020-05-07 21:05:30 -07:00
Will Holen 938aa86013 Remove Hermes.setPauseOnLoad message
Summary:
This removes the Hermes.setPauseOnLoad. It will be replaced by the more standard
Debugger.setInstrumentationBreakpoint's "beforeScriptExecution" event.

ChangeLog: [Internal] Remove Hermes.setPauseOnLoad message (to be replaced)

Reviewed By: mhorowitz

Differential Revision: D21418219

fbshipit-source-id: 93c53801c23487f9336b322c2bd737663ec21b97
2020-05-07 21:05:30 -07:00
Panagiotis Vekris 57fee33898 Flow 0.123.0 in xplat/js
Summary:
Changelog: [Internal]

## Sync of generated files

Ran
```
js1 upgrade www-shared -p core_windowless
```
but had to manually revert
```
RKJSModules/Libraries/www-shared/core_windowless/logging/FBLoggerType.flow.js
RKJSModules/Libraries/www-shared/core_windowless/logging/FBLogger.js
```
because they introduced more errors

## Flow version bump
```
~/fbsource/fbcode/flow/facebook/deploy_xplat.sh 0.123.0
```

Reviewed By: gkz

Differential Revision: D21159821

fbshipit-source-id: e106fcb43e4fc525b9185f8fc8a246e6c3a6b14f
2020-04-21 22:43:24 -07:00
Will Holen 33ccc0a0bc Implement Hermes.setPauseOnLoad
Summary:
This Hermes-specific mode is similar to Debugger.setPauseOnExceptions
and lets the VM know that it should enter a Pause state whenever a new
script is loaded/executed.

The debugger can then take its time to parse the source map and update
any breakpoints, before automatically continuing.

Changelog: [Internal] Implement a Hermes.setPauseOnLoad CDP call

Reviewed By: bestander

Differential Revision: D20754604

fbshipit-source-id: 7f9d0638706c99e9dcb534699b633f658e364909
2020-04-20 14:06:51 -07:00
Will Holen 04bc315eba Add support for generating custom messages
Summary:
Until now we've generated scaffolding entirely based on the official devtools
protocol spec. This diff adds support for defining custom domains in `custom.json`
which will be merged with the upstream protocol JSON definition.

ChangeLog: [Internal] Add support for Hermes-specific CDP messages

Reviewed By: bestander

Differential Revision: D20754605

fbshipit-source-id: a8075f81816a40114d1a3332192c7aa076b17848
2020-04-20 14:06:51 -07:00
Jacob Bower ed3054927c Plumb through memory allocation profiler feature to Chrome Inspector
Summary: Changelog: Make allocation profiler feature of Chome Inspector work

Reviewed By: dulinriley

Differential Revision: D20383003

fbshipit-source-id: 8a10c310d5a639a6644763adb53f2f0017057587
2020-03-31 11:02:41 -07:00
Kevin Gozali 21785eea67 Replace fbsource// with // in xplat/js/ files [4]
Summary:
`fbsource//xplat` and `//xplat` are equivalent for FB BUCK targets. Removing extra prefix for consistency.

Changelog: [Internal]

Reviewed By: JoshuaGross, shergin

Differential Revision: D20656696

fbshipit-source-id: 10f02decb1dc969fd3491ac90d97f09e2bda59e7
2020-03-26 01:12:50 -07:00
Michael Bolin 0b9ea60b4f Back out "Upgrade Prettier from 1.17 to 2.0.2."
Differential Revision: D20639755

fbshipit-source-id: 5028563f9cf0527a30b4259daac50cdc03934bfd
2020-03-24 21:47:35 -07:00
Michael Bolin cf44650b3f Upgrade Prettier from 1.17 to 2.0.2.
Summary:
This gets us on the latest Prettier 2.x:
https://prettier.io/blog/2020/03/21/2.0.0.html

Notably, this adds support for TypeScript 3.8,
which introduces new syntax, such as `import type`.

Reviewed By: zertosh

Differential Revision: D20636268

fbshipit-source-id: fca5833d003804333a05ba16325bbbe0e06d6c8a
2020-03-24 20:24:47 -07:00
Mike Vitousek 7bc2b91790 Deploy Flow v0.117.0 to xplat
Summary: Changelog: [Internal]

Reviewed By: jbrown215

Differential Revision: D19596867

fbshipit-source-id: 3fc2ec51672bb453cec0eb6bf3c522f23cf9cd38
2020-01-28 14:36:44 -08:00
Riley Dulin 0ee7fb98cc Update the chrome devtools protocol for the inspector
Summary:
Changelog: [Internal] Upgrade Chrome devtools protocol for Hermes

Update to the most recent version of the devtools protocol, r730699.
This just adds a few parameters to the stable API.
They have reasonable defaults that shouldn't break the existing functionality.

Reviewed By: willholen

Differential Revision: D19387559

fbshipit-source-id: 49d9ebf4a1a20f349ea6e46be6d5f36184ba8afb
2020-01-15 16:52:19 -08:00
Riley Dulin 46351cc276 Use the devtools-protocol npm package to generate code
Summary:
Changelog: [Internal]

Before, we were relying on checking out the `devtools-protocol` Github repo at a specific commit and
making special changes to the JSON file.
In order to make it easier to update, use the officially published npm package.

I found the closest package version that was published, but it had two differences:
* `Runtime.getHeapUsage` was either missing (in earlier versions) or experimental (in later versions)
* `isDefault` and `isPageContext` were removed. I'm not sure what these were used for anyway, the comment leads me to believe they're probably not necessary anymore

There were some customizations made previously to annotate `recursive` on some properties. The npm package doesn't set these,
so I wrote some checks to add it back in if it can be detected. This was mostly to handle one special case: `Runtime.StackTrace`.
The workaround seems to be fine for that case.

Reviewed By: willholen

Differential Revision: D19386890

fbshipit-source-id: db0d85f6bc71cba77ee67d85efe2f38376d7cc87
2020-01-15 16:52:18 -08:00
Riley Dulin 4b703e3c1f Remove .flowconfig from hermes/inspector/tools/msggen
Summary:
Changelog: [Internal]

This separate `.flowconfig` file was causing versioning issues.
Delete it so that `msggen` can share the same flowconfig as the rest
of React Native.

Reviewed By: willholen

Differential Revision: D19413710

fbshipit-source-id: 748cb50a3151df1c67ee7176e57e259e48f50be7
2020-01-15 16:52:18 -08:00
Will Holen 58f3673099 yarn upgrade msggen
Summary:
This upgrades the yarn.lock for msggen

Changelog: [Internal]

Reviewed By: avp

Differential Revision: D19199162

fbshipit-source-id: 8064a14032948fa81e3c7e637cfca1e02f5bfcd6
2019-12-20 11:40:40 -08:00
Will Holen 35dd2e0c37 Upgrade more msggen dependencies
Summary:
GitHub still marks some dependencies as vulnerable. Updating them.

Changelog: [Internal]

Reviewed By: avp

Differential Revision: D19183702

fbshipit-source-id: 9c9c815816c4fc591c77d811058234a63aeda727
2019-12-19 14:02:57 -08:00
Will Holen 389a91c9d9 Update msggen dependencies
Summary:
`msggen` has dependencies on some npm packages with vulnerabilities.
This diff updates the dependency list.

Changelog: [Internal]

Reviewed By: avp

Differential Revision: D19107926

fbshipit-source-id: 0526f6fe430c162322ec9ecb84f3d78604cd76bc
2019-12-18 15:06:53 -08:00
Igor Sugak 399cabd1bb move chrome-devtools-protocol from xplat/third-party to third-party
Reviewed By: pixelb

Differential Revision: D16871230

fbshipit-source-id: e97710cf33a4ecee045595f1eb70021f275339e1
2019-12-13 17:30:18 -08:00
Eli White e362470305 Convert easy files to flow strict-local
Summary:
This diff was generated by this script used by WWW
https://our.intern.facebook.com/intern/diffusion/WWW/browse/master/scripts/flow/upgrade_to_flow_strict_local.sh?lines=0

Changelog:
[Internal] Upgrade flow to flow strict-local

Reviewed By: zackargyle, rickhanlonii

Differential Revision: D18833630

fbshipit-source-id: e64d4e9a49a0db5e6bf70a0c489567862b578d7f
2019-12-05 16:06:46 -08:00
George Zahariev 8553e1acc4 Exact-by-default codemod for react-native-github
Summary:
We are rolling out exact-by-default syntax to xplat/js.

I had to manually move around some comments to preserve proper placement.

Changelog: [Internal]

Reviewed By: jbrown215

Differential Revision: D18633611

fbshipit-source-id: 48f7468dcc55b1d00985419d035a61c6820b3abe
2019-11-21 09:42:57 -08:00
Will Holen 39704b8937 Implement Debugger.setBreakpoint
Summary:
setBreakpoint differs from the existing setBreakpointByUrl in that you
can specify a scriptId directly. This was not really possible before
now, since scriptIds were mapped via filenames rather than to
RuntimeModules.

When (re)loading files with the same name, this call can be used to set
breakpoints in a specific one, rather than just the latest version.

Changelog: [Internal]

Reviewed By: bestander

Differential Revision: D18362054

fbshipit-source-id: 6ff1e736c79a4e75dc424316675d426ce9902f5f
2019-11-12 16:28:42 -08:00
Marc Horowitz 8e750d75ee Switch use of xplat/hermes-inspector to xplat/js/react-native-github/ReactCommon/hermes/inspector
Summary: Changelog: [Internal]

Reviewed By: dulinriley

Differential Revision: D18364013

fbshipit-source-id: 1c077cf4f886ea620a62d8fe83dfd725850bcd31
2019-11-11 18:38:02 -08:00
Marc Horowitz e27610819d pull in debugger fixes from internal fork
Summary:
Changelog:
[Android] [Fixed] - Various bug fixes to the hermes inspector/debugger

Reviewed By: cpojer

Differential Revision: D18364014

fbshipit-source-id: d07dc3f4fd076fec3b6a64698ab8af67772a7a55
2019-11-11 18:38:01 -08:00
Shingo Sato 6c3d966477 Upgrade yargs to 14.2.0 (#2934)
Summary:
`mem` package vulnerability found.

> In nodejs-mem before version 4.0.0 there is a memory leak due to old results not being removed from the cache despite reaching maxAge. Exploitation of this can lead to exhaustion of memory and subsequent denial of service.

ref: https://github.com/sindresorhus/mem/commit/da4e4398cb27b602de3bd55f746efa9b4a31702b

`relay-compiler` depends on that.

```
relay-compiler@6.0.0
  └─┬ yargs@9.0.1
    └─┬ os-locale@2.1.0
      └── mem@1.1.0
```
Pull Request resolved: https://github.com/facebook/relay/pull/2934

Test Plan:
- Tested the Relay compiler briefly on the open source examples project, seems like yargs doesn't error
- `js1 build relay --project facebook`
- `js1 jest`

Reviewed By: alunyov

Differential Revision: D18397131

Pulled By: kassens

fbshipit-source-id: 8b7fc5e237c7b4ce14ff3809cdd59d243e7c4523
2019-11-08 16:06:46 -08:00
Andres Suarez aee88b6843 Tidy up license headers [3/n]
Summary: Changelog: [General] [Fixed] - License header cleanup

Reviewed By: yungsters

Differential Revision: D17952693

fbshipit-source-id: 8fcb8e58a2e04e7a3169f4d525bffc00835768e6
2019-10-16 10:06:34 -07:00
Andres Suarez 3b31e69e28 Tidy up license headers [2/n]
Summary: Changelog: [General] [Fixed] - License header cleanup

Reviewed By: yungsters

Differential Revision: D17952694

fbshipit-source-id: 17c87de7ebb271fa2ac8d00af72a4d1addef8bd0
2019-10-16 10:06:34 -07:00
glevi@fb.com 97b42bb142 Deploy v0.106.0 to xplat/js
Reviewed By: mroch

Differential Revision: D16979246

fbshipit-source-id: 995fbd391823eaf0c9e3a673cf8fbe061ce0545a
2019-08-23 08:06:44 -07:00
Logan Daniels 91f139b941 xplat/js/react-native-github
Reviewed By: panagosg7

Differential Revision: D16657770

fbshipit-source-id: 4e260842c838a35317515044c54ccf55a083da33
2019-08-09 10:11:15 -07:00
cpojer d7f5153cd8 Add Hermes support to React Native on Android (#25613)
Summary:
Yesterday we shipped hermesengine.dev as part of the current 0.60 release. This PR brings those changes to master.

## Changelog

[General] [Added] - Added support for Hermes
Pull Request resolved: https://github.com/facebook/react-native/pull/25613

Test Plan:
* CI is green both on GitHub and at FB
* Creating a new app from source can use Hermes on Android

Reviewed By: cpojer

Differential Revision: D16221777

Pulled By: willholen

fbshipit-source-id: aa6be10537863039cb666292465ba2e1d44b64ef
2019-07-25 23:05:53 -07:00