It wasn't clear what was causing this error, and I couldn't reproduce
it.
This PR attempts to resolve the issue by just guarding against the
exception.
This PR fixes one of our number 2 top error (142 error reports today
alone):
Processes: webtorrent window, platforms: darwin linux win32, versions:
pre-0.12 0.14.0 0.17.0 0.17.1
TypeError: Cannot read property 'files' of null
at getAudioMetadata (.../build/renderer/webtorrent.js:328:21)
at EventEmitter.<anonymous> (.../build/renderer/webtorrent.js:84:74)
at emitThree (events.js:116:13)
at EventEmitter.emit (events.js:194:7)
This error is reproducible if you start webtorrent for the first time
and click the WIRED CD torrent. This causes the webtorrent process to
get a 'wt-get-audio-metadata' before 'wt-start-torrenting'.
You can reproduce it 100% of the time if you force the race condition
to show itself by slowing down the sending of the 'wt-start-torrenting'
event.
(This same error was showing for an unrelated reason in the past: #891)
The font changed slightly on the next version of Mac OS. Let's update
the screenshots to match, since I already updated. (@dcposch - you'll
need to update too if you want the integration tests to pass on your
machine)
Electron now offers a "armv7l" build on Linux. Because we were
specifying "all", we were generating an armv7l binary which was being
included in "WebTorrent-vX.X.X-linux.zip" along with the ia32 build,
which explains why it was 90MB+ in the last release.
I moved it from devDependencies to dependencies when we added the app
to npm. But now that that's gone, let's move it back.
Functionally, this causes no difference since electron-packager
automatically excludes `electron` and all devDependencies from the
packaged app.
- Fix bug where approxNumTorrents and other stats were not refreshed
when getting sent on 12 hour interval
- Lazy require modules
- Move setInterval into renderer/main.js
- Remove low-level https usage, use simple-get
By deferring more code in the renderer and loading state earlier, we
improve startup time by another 90ms!
Before: 507 unique requires (1270-1280ms)
After: 506 unique requires (1180-1190ms)
In Electron apps, the cost of large modules is very real.
fs-extra is very convenient, but removing it caused 50 fewer unique
files to be required(), resultin in 60ms faster startup!
Before: 557 unique requires (1330-1340ms)
After: 507 unique requires (1270-1280ms)
If the user accidentally pastes something that's not a torrent id, then
they get one "Invalid torrent Id" error for each line of the text.
Sure, this removes a "feature", but it's a pretty surprising one. When
I added it, I was being too clever, IMO.
The trim code can be removed, because that's handled in
controllers.torrentList.addTorrent().