Commit Graph

21804 Commits

Author SHA1 Message Date
Ben Newman
1a721df3e1 Bump package versions for 1.8.1-beta.7 release. release/METEOR@1.8.1-beta.7 2018-11-28 12:02:07 -05:00
Ben Newman
5ff1367272 Bump $BUNDLE_VERSION to 8.14.0.0 before rebuilding dev bundle. 2018-11-28 11:35:53 -05:00
Ben Newman
29db9cbd44 Update to latest Mongo server and driver patch versions. 2018-11-28 11:33:53 -05:00
Ben Newman
7e5656cd3c Update Node to version 8.14.0.
Release blog post: https://nodejs.org/en/blog/release/v8.14.0/
Security disclosures: https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/
2018-11-28 11:21:30 -05:00
Ben Newman
2de35f4d29 Merge branch 'devel' into release-1.8.1 2018-11-28 11:16:44 -05:00
Ben Newman
aecd530db6 Fix 1.8.1-beta.n upgrade instructions in History.md.
Closes #10356.
2018-11-26 11:24:45 -05:00
Ben Newman
47e0046c96 Revert "Remove Blaze dependencies from static-html (#10267)"
This reverts commit 4aad077a9f.

@hwillson Travis CI tests were failing after I merged this, and now
they're passing again (locally) with this commit reverted:
https://travis-ci.org/meteor/meteor/builds/458921622
2018-11-23 14:20:06 -05:00
Ben Newman
56c9062533 Bump webapp package version to 1.7.2. 2018-11-23 14:12:34 -05:00
Ben Newman
8f9401306d Bump dynamic-import package version to 0.5.1. 2018-11-23 14:10:49 -05:00
Hugh Willson
4aad077a9f Remove Blaze dependencies from static-html (#10267)
These changes create a new copy of the static-html and
caching-html-compiler packages in core, as well as a new package
called html-scanner, to house the html-scanner.js functionality
from the templating-tools package. With these changes in place,
we're able to remove all Blaze dependencies from static-html,
which benefits React based Meteor apps.

We don't need the extra `CompileError` class, and using it
was throwing off `caching-html-compiler` error handling.
Errors with messages and line numbers weren't being
interpreted / formatted properly.
2018-11-23 13:04:49 -06:00
Ben Newman
f4ebac54ae Merge pull request #10309 from nathan-muir/webapp-runtime-override-is-modern
Fix Meteor.isModern when inline scripts are disabled.
2018-11-23 12:22:03 -06:00
Kevin Newman
2a37f61066 Use setTimeout in prefetchInChunks to avoid blocking UI (#10354)
Addresses #10350.
2018-11-23 12:21:09 -06:00
idmadj
fc02c2592c Avoid object shorthand syntax in oauth package. (#10349)
Fixes #10347.
2018-11-23 12:19:50 -06:00
Ben Newman
2d06bf7d54 Bump package versions for 1.8.1-beta.6 release. release/METEOR@1.8.1-beta.6 2018-11-23 13:14:56 -05:00
Ben Newman
f8786bcfdb Bump $BUNDLE_VERSION to 8.13.0.1 before rebuilding dev bundle. 2018-11-23 13:00:35 -05:00
Ben Newman
905941fc2d Merge branch 'devel' into release-1.8.1 2018-11-23 12:48:04 -05:00
Ben Newman
d5aa1ba5b9 Merge branch 'master' into devel 2018-11-23 12:46:04 -05:00
Ben Newman
5e8434ea42 Merge pull request #10336 from meteor/release-1.8.0.1
Release 1.8.0.1
2018-11-23 11:45:17 -06:00
Ben Newman
ca2d44204f Bump package versions for the official 1.8.0.1 release. release/METEOR@1.8.0.1 2018-11-23 11:50:10 -05:00
Ben Newman
eecc11ea63 Note release date for Meteor 1.8.0.1 in History.md. 2018-11-23 11:48:11 -05:00
Ben Newman
40ac2de412 Use object ...spread syntax rather than _.extend. 2018-11-21 11:34:01 -05:00
Ben Newman
2190fdbb18 Bump package versions for 1.8.1-beta.5 release. release/METEOR@1.8.1-beta.5 2018-11-20 18:21:02 -05:00
Ben Newman
ca06af8659 Bump $BUNDLE_VERSION to 8.13.0.0 before rebuilding dev bundle. 2018-11-20 18:00:01 -05:00
Ben Newman
4a38f4f990 Update Node to version 8.13.0.
Release blog post: https://nodejs.org/en/blog/release/v8.13.0/

This release includes my PR to improve multi-threaded debugging, which
should finally fix #9275: https://github.com/nodejs/node/pull/22714
2018-11-20 17:53:12 -05:00
Ben Newman
0f5bed4707 Avoid passing lots of ...args to watch.sha1. 2018-11-20 17:47:49 -05:00
Ben Newman
e8440a491d Bump package versions for 1.8.0.1-rc.4 release. release/METEOR@1.8.0.1-rc.4 2018-11-20 17:14:23 -05:00
Ben Newman
887f2c6624 Merge branch 'devel' into release-1.8.1 2018-11-20 16:47:52 -05:00
Ben Newman
f440ef4d7a Bump $BUNDLE_VERSION to 8.11.4.7 before rebuilding dev bundle. 2018-11-20 16:47:11 -05:00
Ben Newman
269a12efe9 Merge branch 'devel' into release-1.8.0.1 2018-11-20 16:34:06 -05:00
Ben Newman
d5cee78567 Update meteor-babel to version 7.1.6.
Change responsible for the source maps improvements:
389cf7dfed
2018-11-20 16:29:13 -05:00
Ben Newman
346d512b13 Propagate input hashes all the way through bundling.
Hashes have a number of overlapping but not entirely redundant or
equivalent purposes within the build system.

Hashes of source code are important because they can be computed before
compilation and processing, and thus are useful as keys for caching that
expensive work. Source hashes remain useful even after compilation, as a
way of reflecting the contributions of source-code-sensitive assets like
source maps.

However, source hashes do not tell the whole story, and using them as
cache keys can be risky if the work that's being cached depends on
generated code rather than source code, as we recently discovered with the
findImportedModuleIdentifiers function. The preliminary fix for that
problem (#10330) was to cache findImportedModuleIdentifiers using a hash
of the generated code rather than the source hash.

PR #10330 swung a bit too far in the direction of ignoring source hashes
and considering only hashes of generated code. For example, the URLs of
source maps share the hash of the corresponding resource, but source maps
can change (because of superficial changes in the source code) without
changing the generated code of the resource. Ignoring the source hash when
computing source map URLs resulted in stale source maps with incorrect
line numbers.

A better solution seems to be to propagate the source hash (along with any
hashes of intermediate generated artifacts) all the way through bundling,
so that the final hash of any static resource reflects all information
that could/should change the behavior of that static resource, including
its source map, which embeds the exact source code of all contributing
files in the sourcesContent property. At every step of the way, we merge
all the input hashes into a single hash, so we don't have to keep juggling
multiple hashes, thankfully.

Sub-Resource Integrity (SRI) hashes still need to be computed from just
the final contents of a given asset, so that the browser can verify those
contents without knowing anything about the Meteor build system, but
that's handled separately.
2018-11-20 11:19:42 -05:00
Ben Newman
4ceb405f27 Bump package versions for 1.8.0.1-rc.3 release. release/METEOR@1.8.0.1-rc.3 2018-11-19 12:45:51 -05:00
Ben Newman
7ce3ca29fd Avoid computing servePath from undefined targetPath.
https://github.com/meteor/meteor/issues/10337#issuecomment-439674497
2018-11-19 12:40:33 -05:00
Ben Newman
c0a35f0457 Bump package versions for 1.8.0.1-rc.2 release. release/METEOR@1.8.0.1-rc.2 2018-11-17 15:27:35 -05:00
Ben Newman
b55806f931 Relax precondition in ResourceSlot#addJavaScript.
https://github.com/meteor/meteor/issues/10337#issuecomment-439638590
2018-11-17 15:26:05 -05:00
Ben Newman
c67d40f7f1 Merge branch 'devel' into release-1.8.1 2018-11-15 15:56:54 -05:00
Ben Newman
4c22e5ec97 Bump package versions for 1.8.0.1-rc.1 release. release/METEOR@1.8.0.1-rc.1 2018-11-15 13:51:00 -05:00
Ben Newman
0561124bde Note PR #10330 in History.md. 2018-11-15 13:50:59 -05:00
Ben Newman
c326591bb8 Note PR #10334 in History.md. 2018-11-15 13:50:53 -05:00
Ben Newman
0296f15880 Bump webapp and modern-browsers package versions for #10334. 2018-11-15 13:50:50 -05:00
Ben Newman
f3f584d96b Make modern/legacy browser name check case-insensitive.
https://github.com/meteor/meteor/pull/10334#commitcomment-31302219

cc @abernix @hwillson
2018-11-15 13:50:49 -05:00
Jesse Rosenberger
128c9311ea For modern bundles, treat Chromium and "Headless Chrome" the same as Chrome.
Best I can tell, the major version portion of Chromium versions has always
tracked all the way through to Chrome Canary, Dev and Stable releases.
Since we observe the major version of Chrome in terms of identifying it as a
"modern browser", it seems to make sense to treat "Headless Chrome" and
Chromium in the same regard.

Interestingly, when the same Chrome as we all use on our machines is run
with the `--headless` flag, it switches its `navigator.userAgent` to
`HeadlessChrome/`, rather than `Chrome/`.

This was initially problematic since the `useragent` npm we use for parsing
user agents didn't understand this designation, however, with the update of
`webapp`'s `useragent` npm in 058351b7, `headlesschrome` will now have its
version available from `WebAppInternals.identifyBrowser`, so we can
accurately identify it and serve it the modern bundle.
2018-11-15 13:50:49 -05:00
Jesse Rosenberger
5e98790291 Update webapp's useragent npm to v2.3.0 to support HeadlessChrome.
Previously, while the `useragent` package was able to parse the User-Agent
for so-called "Headless Chrome" and generate a family of "HeadlessChrome",
it was unable to parse out the individual portions of the version number
(e.g. major, minor, patch).

For example, the following User-Agent (herein referred to as `userAgentAbove`):

```
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100 Safari/537.36
```

Previously resulted in:

```
> require('useragent').lookup(userAgentAbove);

{
  family: 'HeadlessChrome',
  major: '0',
  minor: '0',
  patch: '0',
  /* ... */
}
```

With the newer version of `useragent`, these are now properly extracted and
set which will enable Meteor to treat Headless Chrome the same as Chrome in
a follow-up commit.  Now:

```
> require('useragent').lookup(userAgentAbove);

{
  family: 'HeadlessChrome',
  major: '69',
  minor: '0',
  patch: '3497'
  /* ... */
}
```
2018-11-15 13:50:48 -05:00
Ben Newman
5e7e809cd1 Implement ResourceSlot#_addDirectlyToJsOutputResources to fix #10337. (#10338) 2018-11-15 13:50:48 -05:00
Ben Newman
258d7f2eb0 Merge pull request #10334 from meteor/abernix/update-useragent-for-modern-browsers
Identify Chromium and Headless Chrome as "modern" browsers.
2018-11-15 11:13:12 -06:00
Ben Newman
014dfab1ac Implement ResourceSlot#_addDirectlyToJsOutputResources to fix #10337. (#10338) 2018-11-15 11:10:47 -06:00
Ben Newman
0bbb6df449 Mention PR #10334 in History.md. 2018-11-15 11:57:16 -05:00
Ben Newman
65e44f6da6 Bump webapp and modern-browsers package versions for #10334. 2018-11-15 11:44:25 -05:00
Ben Newman
dc2f2487ac Make modern/legacy browser name check case-insensitive.
https://github.com/meteor/meteor/pull/10334#commitcomment-31302219

cc @abernix @hwillson
2018-11-15 11:44:24 -05:00
Jesse Rosenberger
b65f8b0610 For modern bundles, treat Chromium and "Headless Chrome" the same as Chrome.
Best I can tell, the major version portion of Chromium versions has always
tracked all the way through to Chrome Canary, Dev and Stable releases.
Since we observe the major version of Chrome in terms of identifying it as a
"modern browser", it seems to make sense to treat "Headless Chrome" and
Chromium in the same regard.

Interestingly, when the same Chrome as we all use on our machines is run
with the `--headless` flag, it switches its `navigator.userAgent` to
`HeadlessChrome/`, rather than `Chrome/`.

This was initially problematic since the `useragent` npm we use for parsing
user agents didn't understand this designation, however, with the update of
`webapp`'s `useragent` npm in 058351b7, `headlesschrome` will now have its
version available from `WebAppInternals.identifyBrowser`, so we can
accurately identify it and serve it the modern bundle.
2018-11-15 11:44:24 -05:00