aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2013-06-25chore(doc_gen): add task to run doc-gen specsPete Bacon Darwin
2013-06-25docs(guide/expression): remove reference to `NullPointerException`Domenic Denicola
2013-06-24fix($location): default to / for the url base if no base[href]Igor Minar
With the recent refactoring of $location service we changed this behavior resulting in a regression. Previously we thought that html5 mode always required base[href] to be set in order for urls to resolve properly. It turns out that base[href] is problematic because it makes anchor urls (#foo) to always resolve to the base url, which is almost always incorrect and results in all anchors links and other anchor urls (e.g. svg references) to be broken. For this reason, we should now start recommending that people just deploy to root context (/) and not set the base[href] when using the html5 mode (push/pop history state). If it's impossible to deploy to the root context then either all urls in the app must be absolute or base[href] must be set with the caveat that anchor urls in such app won't work. Closes #2762
2013-06-24test($compile): fix IE specific test.Chirayu Krishnappa
2013-06-24fix($parse): move global getter out of parse.jsChirayu Krishnappa
2013-06-24fix($compile): reject multi-expression interpolations for src attributeChirayu Krishnappa
BREAKING CHANGE: Concatenating expressions makes it hard to reason about whether some combination of concatenated values are unsafe to use and could easily lead to XSS. By requiring that a single expression be used for *[src/ng-src] such as iframe[src], object[src], etc. (but not img[src/ng-src] since that value is sanitized), we ensure that the value that's used is assigned or constructed by some JS code somewhere that is more testable or make it obvious that you bound the value to some user controlled value. This helps reduce the load when auditing for XSS issues. To migrate your code, follow the example below: Before: JS: scope.baseUrl = 'page'; scope.a = 1; scope.b = 2; HTML: <!-- Are a and b properly escaped here? Is baseUrl controlled by user? --> <iframe src="{{baseUrl}}?a={{a}&b={{b}}"> After: JS: var baseUrl = "page"; scope.getIframeSrc = function() { // There are obviously better ways to do this. The // key point is that one will think about this and do // it the right way. var qs = ["a", "b"].map(function(value, name) { return encodeURIComponent(name) + "=" + encodeURIComponent(value); }).join("&"); // baseUrl isn't on scope so it isn't bound to a user // controlled value. return baseUrl + "?" + qs; } HTML: <iframe src="{{getIframeSrc()}}">
2013-06-21fix($compile): disallow interpolations for DOM event handlersChirayu Krishnappa
BREAKING CHANGE: Interpolations inside DOM event handlers are disallowed. DOM event handlers execute arbitrary Javascript code. Using an interpolation for such handlers means that the interpolated value is a JS string that is evaluated. Storing or generating such strings is error prone and likely leads to an XSS if you're not super careful. On the other hand, ng-click and such event handlers evaluate Angular expressions that are a lot safer (e.g. No direct access to global objects - only scope), cleaner and harder to exploit. To migrate the code follow the example below: Before: JS: scope.foo = 'alert(1)'; HTML: <div onclick="{{foo}}"> After: JS: scope.foo = function() { alert(1); } HTML: <div ng-click="foo()">
2013-06-21fix($compile): sanitize values bound to img[src]Chirayu Krishnappa
Ref: 9532234bf1c408af9a6fd2c4743fdb585b920531 BREAKING CHANGE: img[src] URLs are now sanitized using the same whitelist as a[href] URLs. The most obvious impact is if you were using data: URIs. data: URIs will be whitelisted for img[src] in a future commit.
2013-06-21fix(docs): set ng-app for editing with plunkerChirayu Krishnappa
Closes #3011
2013-06-20refactor(angular.bootstrap): rename internal functionPete Bacon Darwin
2013-06-20docs(cookbook/helloworld): display "World" if no name is enteredNimaVaziri
2013-06-20fix(Angular.js): don't crash on invalid query parametersPete Bacon Darwin
2013-06-20docs(ngRepeat): fix typoJens Rantil
2013-06-19fix($http): ensure case-insens. header overridingCaio Cunha
If user send content-type header, both content-type and default Content-Type headers were sent. Now default header overriding is case-insensitive.
2013-06-19feat(jqLite): switch bind/unbind to more recent jQuery on/offMichał Gołębiowski
jQuery switched to a completely new event binding implementation as of 1.7.0, centering around on/off methods instead of previous bind/unbind. This patch makes jqLite match this implementation while still supporting previous bind/unbind methods.
2013-06-19docs(directive): fix typosarkasm
2013-06-18docs(tutorial): add missing 'node' command and <code> tagsgdi2290
2013-06-18docs(tutorial/step_07): add commas make tutorial read more clearlyJohn Bohn
2013-06-18docs(loader): fix typo and minor semantic errorOre Landau
2013-06-18chore(ngdocs): change minimum search length requirementMatias Niemelä
2013-06-18chore(ngdocs): provide test code for lunr search in docsMatias Niemelä
2013-06-17feat(ngdocs): provide support for user to jump between different versions of ↵Matias Niemelä
the angularjs documentation
2013-06-17feat(ngdocs): support popover, foldouts and foldover annotationsMatias Niemelä
2013-06-17fix(ngMock): ensure mocked window still provides window.location functionalityMatias Niemelä
2013-06-17chore(ngdocs): allow user to press escape key to close docs searchMatias Niemelä
2013-06-17fix(jqLite): allow override of jqLite.triggerHandler event objectMatias Niemelä
2013-06-17chore(ngdocs): update lunr to 0.4.0Matias Niemelä
2013-06-17chore(minErr): replace ngError with minErrKen Sheedlo
2013-06-14feat(Grunt): add source maps to all min filesIgor Minar
Generate source map files when build step is ran and adds source map headers to all min files. Source map url must be appended to the min file otherwise the line offsets will be off. Inspired by Ryan Seddon (PR #2858) Closes #1714
2013-06-13docs(guide/di): fix headings hierarchyOre Landau
2013-06-13docs(select): fix typos in ngOptionsMisha Moroshko
2013-06-13docs($q): fix a few issuesOre Landau
2013-06-13docs(guide/e2e-testing): fix verb tenseJad Naous
2013-06-13style(ngRepeat): fix typosJulien Bouquillon
2013-06-13docs(tutorial/step_05): apply more useful link to servicesOre Landau
2013-06-12docs(FormController): add methods for FormControllerDean Sofer
2013-06-12docs(ngModelController): improve $parsers/$formatters with exampleDean Peterson
2013-06-12docs(ngClass): fix minor typo.Ore Landau
2013-06-12docs(guide/bootstrap): clarify manual bootstrappingPete Bacon Darwin
2013-06-12chore(docs/writer): fix Windows path incompatibilitiesPete Bacon Darwin
NodeJS on Windows uses back slashes for path separators. This difference can be mitigated by use of the nodeJS path library. In particular the `sep` property and the `dirname()`, `normalize()` and `join()` methods of this library. All path based arguments on exported functions need to be normalized and `join` and `sep` must be used instead of string manipulation to work with paths.
2013-06-11docs(ngRoute): clarify when gets updatedPete Bacon Darwin
2013-06-11docs(ngSubmit): clarify that there must be no `action` attributePete Bacon Darwin
2013-06-11fix(ngRepeat): support growing over multi-element groupsMisko Hevery
2013-06-11fix($compile): support multi-element group over text nodesMisko Hevery
2013-06-10chore(ngdocs): add angular-route.js to karma docs suiteMatias Niemelä
2013-06-10fix(angularFiles): ensure only karma-docs.js tests the component-spec filesMatias Niemelä
2013-06-10chore(docs): fix memory leak in example embed codeIgor Minar
we need to sever the link between the main root scope and the example root scope - this is only needed because we are embedding one app in the other.
2013-06-10docs(faq): update customink order infoIgor Minar
2013-06-07chore(.gitignore): fix patternsIgor Minar
make patterns more strict so we don't accidentaly match stuff deeply nested in the codebase.
2013-06-07chore(Gruntfile): ensure bower command is run under nodePete Bacon Darwin