The default_app asar was recently changed to reference files inside
`node_modules/` in addition to files inside `default_app/`. The
`js2asar.py` script was updated to interpret what this meant, but the GN
build wasn't. This change somewhat hackily makes the GN build reuse the
`js2asar.py` script so that this and also hopefully any future changes
will work in the GN build as well as the GYP build.
Fixes#12701 and supersedes #13131.
Ideally we would have added `setTitleBarStyle()`, but that is a
significantly more involved change. For example, consider the case where
we switch from `hidden` to `normal`. We would not only have to show the
traffic light buttons, we would also have to switch the window from a
frameless to a framed window and deal with various other window state.
Lets instead implement a simple solution for #12701.
- manually close an existing windows before creating a new one.
We have to do it because the `afterEach` hook doesn't get called
if a test fails.
- add some async/await goodies
After after using `processId-contextCounter` as contextId, it may happen
that contexts in different WebContents sharing the same renderer process
get the same contextId. Using webContentsId as part of key in
ObjectsRegistry can fix this.
We're abusing the nodejs build a little bit by building it without ICU support, but forcing the inspector to be built, which depends on ICU. This synchronizes one of the build flags that's required to get ICU to link on Windows.
Fixes link errors of the form
```
init_webrtc.lib(init_webrtc.obj) : error LNK2005: "class webrtc::metrics::Histogram * __cdecl webrtc::metrics::HistogramFactoryGetCounts(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,int,int)" (?HistogramFactoryGetCounts@metrics@webrtc@@YAPAVHistogram@12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HHH@Z) already defined in metrics_default.obj
```
On Windows release builds, the found-in-page event test causes the test suite to hang. If the test is run individually, it works fine, but running it as part of the whole test suite causes the test suite to hang. This works around the issue in #13704 by temporarily disabling that test.