862 Commits

Author SHA1 Message Date
Alex Rickabaugh 56c98f7c23 fix(service-worker): use relative path for ngsw.json
Not every application is served from the domain root. The Service
Worker made a bad assumption that it would be, and so requested
/ngsw.json from the domain root.

This change corrects this assumption, and requests ngsw.json without
the leading slash. This causes the request to be interpreted
relative to the SW origin, which will be the application root.
2017-12-01 14:28:40 -08:00
Alex Rickabaugh 6bf07b4e60 fix(service-worker): send initialization signal from the application
The Service Worker contains a mechanism by which it will postMessage
itself a signal to initialize its caches. Through this mechanism,
initialization happens asynchronously while keeping the SW process
alive.

Unfortunately in Firefox, the SW does not have the ability to
postMessage itself during the activation event. This prevents the
above mechanism from working, and the SW initializes on the next
fetch event, which is often too late.

Therefore, this change has the application wait for SW changes and
tells each new SW to initialize itself. This happens in addition to
the self-signal that the SW attempts to send (as self-signaling is
more reliable). That way even on browsers such as Firefox,
initialization happens eagerly.
2017-12-01 14:28:32 -08:00
Alex Eagle a2ff4abddc fix(compiler-cli): propagate ts.SourceFile moduleName into metadata 2017-12-01 14:28:18 -08:00
Alex Rickabaugh ee37d4b26d fix(service-worker): don't crash if SW not supported
Currently a bug exists where attempting to inject SwPush crashes the
application if Service Workers are unsupported. This happens because
SwPush doesn't properly detect that navigator.serviceWorker isn't
set.

This change ensures that all passive observation of SwPush and
SwUpdate doesn't cause crashes, and that calling methods to perform
actions on them results in rejected Promises. It's up to applications
to detect when those services are not available, and refrain from
attempting to use them.

To that end, this change also adds an `isSupported` getter to both
services, so users don't have to rely on feature detection directly
with browser APIs. Currently this simply detects whether the SW API
is present, but in the future it will be expanded to detect whether
a particular browser supports specific APIs (such as push
notifications, for example).
2017-12-01 14:27:49 -08:00
Alex Rickabaugh f99335bc47 fix(service-worker): allow disabling SW while still using services
Currently, the way to not use the SW is to not install its module.
However, this means that you can't inject any of its services.

This change adds a ServiceWorkerModule.disabled() MWP, that still
registers all of the right providers but acts as if the browser does
not support Service Workers.
2017-12-01 14:27:34 -08:00
Filipe Silva 38be44df9f fix(compiler-cli): fix memory leak in program creation (#20692)
Saving `oldProgram` in `AngularCompilerProgram` instances is causing a memory leak for unemitted programs.

It's not actually used so simply not saving it fixes the memory leak.

Fix #20691

PR Close #20692
2017-11-29 21:37:23 -06:00
Alex Rickabaugh ead759670b fix(common): don't strip XSSI prefix for if error isn't JSON (#19958)
This changes XhrBackend to not strip the XSSI prefix from error text
if such a prefix is present but the remaining body does not parse as
JSON.

PR Close #19958
2017-11-29 16:18:48 -06:00
Alex Rickabaugh bdaee508cf fix(common): treat an empty body as null when parsing JSON in HttpClient (#19958)
Previously, XhrBackend would call JSON.parse('') if the response body was
empty (a 200 status code with content-length 0). This changes the XhrBackend
to attempt the JSON parse only if the response body is non-empty. Otherwise,
the body is left as null.

Fixes #18680.
Fixes #19413.
Fixes #19502.
Fixes #19555.

PR Close #19958
2017-11-29 16:18:48 -06:00
Alex Rickabaugh e099911dd0 fix(common): remove useless guard in HttpClient (#19958)
An invalid "if" condition is always true, and is thus useless. This
change removes it. No behavior changes.

Fixes #19223.

PR Close #19958
2017-11-29 16:18:48 -06:00
Alex Rickabaugh 66fd1f8ce6 fix(common): accept falsy values as HTTP bodies (#19958)
Previously, HttpClient used the overly clever test "body || null"
to determine when a body parameter was provided. This breaks when
the valid bodies '0' or 'false' are provided.

This change tests directly against 'undefined' to detect the presence
of the body parameter, and thus correctly allows falsy values through.

Fixes #19825.
Fixes #19195.

PR Close #19958
2017-11-29 16:18:48 -06:00
Matias Niemelä c7b211ca3c fix(animations): ensure multi-level leave animations work (#19455)
PR Close #19455
2017-11-27 18:52:56 -06:00
Matias Niemelä 22bbd6e045 fix(animations): ensure multi-level enter animations work (#19455)
PR Close #19455
2017-11-27 18:52:56 -06:00
Olivier Combe 2b0c896d78 fix(compiler-cli): normalize sourcepaths for i18n extracted files (#20417)
Fixes #20416
PR Close #20417
2017-11-27 18:24:35 -06:00
Juri Strumpflohner c0bf1b0545 docs(core): fix broken NgZone code example (#19291)
The current code example was broken as there were a couple of syntax errors. This commit fixes the demo.

PR Close #19291
2017-11-27 18:24:26 -06:00
Jason Aden bc904b19a4 fix(common): return ISubscription from Location.subscribe() (#20429)
Fix #20406

PR Close #20429
2017-11-22 10:48:38 -06:00
JiaLi.Passion 0feba49c4b fix(core): fix #20532, should be able to cancel listener from mixed zone (#20538)
PR Close #20538
2017-11-22 10:47:53 -06:00
Michael Giambalvo 9ca6ee9eed fix(benchpress): Allow ignoring navigationStart events in perflog metric. (#20312)
PR Close #20312
2017-11-22 10:46:34 -06:00
Kara Erickson f9f2c20a57 fix(forms): updateOn should check if change occurred (#20358)
Fixes #20259.

PR Close #20358
2017-11-22 10:45:22 -06:00
Chuck Jazdzewski b53ead4c45 fix(compiler): support event bindings in fullTemplateTypeCheck (#20490)
The type-check block now disables type checking event access instead
of generating a reference to an undefined variable.

PR Close #20490
2017-11-21 10:47:08 -06:00
JiaLi.Passion 82aace63ea fix(core): should support event.stopImmediatePropagation (#20469)
PR Close #20469
2017-11-17 18:19:34 -06:00
Matias Niemelä 15795d09cf fix(animations): validate against trigger() names that use @ symbols (#20326)
PR Close #20326
2017-11-17 18:19:28 -06:00
Chuck Jazdzewski 81f1d42328 fix(compiler): emit correct type-check-blocks with TemplateRef's (#20463)
The type-check block generated with `"fullTemplateTypeCheck"` was
invalid if the it contained a template ref as would be generated
using the `else` micro-syntax of `NgIf`.

Fixes: #19485

PR Close #20463
2017-11-17 18:19:13 -06:00
Matias Niemelä 814f06289b fix(animations): always fire inner trigger callbacks even if blocked by parent animations (#19753)
Closes #19100

PR Close #19753
2017-11-17 18:17:46 -06:00
Miško Hevery d5eaf4de3c Revert "fix(animations): always fire inner trigger callbacks even if blocked by parent animations (#19753)"
This reverts commit bc4b4b5b55.
2017-11-15 22:25:30 -06:00
Jason Aden 2d6126ec1b style(core): fix comment format for linter 2017-11-15 11:51:56 -08:00
George Kalpakas 259f6bf638 style(core): fix max line length to pass linting (#20441)
Accidentally introduced in #19920, where other linting errors (unrelated to the
PR) prevented proper linting.

PR Close #20441
2017-11-15 11:45:02 -08:00
Jason Aden 03d549be05 Revert "fix(core): should support event.stopImmediatePropagation"
This reverts commit 5e0eb5e3d9.
2017-11-15 11:35:52 -08:00
Matias Niemelä bc4b4b5b55 fix(animations): always fire inner trigger callbacks even if blocked by parent animations (#19753)
Closes #19100

PR Close #19753
2017-11-14 16:00:01 -08:00
Martin Hobert 91efc7f70b docs(core): change from deprecated renderer to renderer2 (#19920)
We now show the proper class instead of the deprecated Renderer

Fixes #19806


PR Close #19920
2017-11-14 13:45:04 -08:00
Matias Niemelä 8b1a6b1f24 fix(animations): ensure final state() styles are applied within @.disabled animations (#20267)
Closes #20266

PR Close #20267
2017-11-14 12:13:38 -08:00
Mark Kennedy b732fb935b fix(router): 'merge' queryParamHandling strategy should be able to remove query params (#19733)
Closes #18463, #17202

PR Close #19733
2017-11-14 12:13:30 -08:00
Bowen Ni 612f508dff refactor(animations): uses a loop instead Array.map() which creates and (#19910)
returns a new array that is discarded.

This pattern will become a compilation error in google3.

PR Close #19910
2017-11-10 13:54:20 -08:00
Chuck Jazdzewski 4cc6abbbf8 fix(compiler): recognize @NgModule with a redundant @Injectable (#20320)
The compiler now, again, recognizes `@NgModule()` decorators on
classes with a redundant `@Injectable()` decorator.

Fixes: #19544

PR Close #20320
2017-11-10 11:53:17 -08:00
Derek 516107fd04 docs(common): update default display value for CurrencyPipe (#20246)
PR Close #20246
2017-11-10 11:53:09 -08:00
Fabian Wiles bd70aece52 refactor(core): remove prolyfill from error message (#20121)
PR Close #20121
2017-11-10 11:53:03 -08:00
Harry Pfleger 89e4262188 docs(aio): fix -mm- to -MM- for month in DatePipe (#20315)
PR Close #20315
2017-11-10 11:08:43 -08:00
Chuck Jazdzewski 424a323316 fix(compiler): show explanatory text in template errors (#20313)
Fixes: #20076

PR Close #20313
2017-11-09 15:48:58 -08:00
Victor Berchet 28985cb2de test(compiler): do not use a as a content selector
As it might trigger false positive in the RegExp from `_makeScopeMatcher`

closes #20256
2017-11-08 15:53:13 -08:00
Victor Berchet 5d1cd57787 fix(compiler): fix corner cases in shadow CSS
`cmp:host {}` and `cmp:host some-other-selector {}` were not handled
consistently.

Note those should not match anything but are made equivalent to respectively
`:host(cmp)` and `:host(cmp) some-other-selector` to avoid breaking legacy apps.
2017-11-08 15:53:05 -08:00
Maxime Robert 511e56d633 docs(common): fix mis-ordered lines (#20221) 2017-11-06 11:29:12 -08:00
Chuck Jazdzewski da22c48ef1 fix(compiler): report a reasonable error with invalid metadata (#20062)
The compiler would throw an internal exception if an import using
the `ngModule` syntax and the module as not a resolvable symbol.

Fixes: #20049
2017-11-06 10:01:49 -08:00
JiaLiPassion 708379128f fix(core): should support event.stopImmediatePropagation (#19222) 2017-11-03 15:22:43 -07:00
Alex Rickabaugh 5a6efa7a3f fix(platform-browser): support Symbols in custom jasmineToString() method (#19794)
It's illegal to coerce a Symbol to a string, and results in a TypeError:

TypeError: Cannot convert a Symbol value to a string

Previously, the custom jasmineToString() method monkey-patched onto Maps
in platform-browser/testing/src/matchers.ts would coerce keys and values
to strings. A change in a newer version of Jasmine calls this method more
often, resulting in calls against Maps which contain Symbols in some
applications, which causes crashes.

The fix is to explicitly convert keys and values to strings, which does
work on Symbols.
2017-11-03 11:12:09 -07:00
Olivier Combe 799cbb932c fix(compiler): don't overwrite missingTranslation's value in JIT (#19952) 2017-11-03 11:09:07 -07:00
JiaLiPassion 678d1cfae1 fix(core): __symbol__ should return __zone_symbol__ without zone.js loaded (#19541) 2017-11-02 16:06:29 -07:00
Alex Eagle 86399958dd fix(compiler-cli): don't report emit diagnostics when --noEmitOnError is off (#20063) 2017-11-02 14:53:01 -07:00
Dhyey Thakore 92e4c34d01 docs: Add 0 in padding of 'dd' (#20107) 2017-11-02 14:42:34 -07:00
George Kalpakas 706ba38498 docs: fix link texts
Fixes #19701

PR Close #19709
2017-11-01 16:55:25 -04:00
Hans Larsen f1248b69e6 refactor: make all rollup config ES5 compatible (#20028)
So they can be required by other Node scripts.

PR Close #20028
2017-10-30 23:28:18 -04:00
Hans Larsen 812786f44e fix: add missing globals from each rollup configuration (#20028)
PR Close #20028
2017-10-30 23:11:42 -04:00