aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2013-07-02revert: fix(compiler): corrects component transclusion on ...Igor Minar
This reverts commit 15e1a29cd08993b599f390e83a249ec17f753972. The original commit was fixing two issues - one of them was preventing attributes that triggered directives that replaced the compiled node to be merged into the new node. This change was a breaking change (as seen in the diff of the tests in this commit) and that's why it's being removed. A proper fix will follow.
2013-07-02chore(grunt-utils): remove unnecessary quotes from minerr_urlPete Bacon Darwin
The quotes were causing the minerr processing to fail on Windows
2013-07-02chore(travis): speed up the buildVojta Jina
- parallelize the tasks - cache requests (e2e tests) This reduces the time from ~18min to ~12min. It makes the output little messy. We could buffer output of each task and display it once it's fully finished, nicely. I think giving instant feedback is better.
2013-07-02chore(grunt-utils): fix java classpath on WindowsPete Bacon Darwin
2013-07-02test(ngRepeat): disable an element directive test on IE8Igor Minar
2013-07-02revert: test(ngRepeat): fix IE8 test compatibility issueIgor Minar
This reverts commit 0c6fb665a4e2e1e7ceb11372153963658d4b53b1. The change invalidated the test because the point of the the test was to test that an element directive works. Changing it to attribute directive was wrong.
2013-07-02fix($injector): refactor module loading code and use minErrIgor Minar
2013-07-02docs(guide/location): fix example code - `hashPrefix` is a methodNiall Smart
2013-07-01fix(jqLite): rename jqLiteError to jqLiteMinErrIgor Minar
2013-07-01feat(minErr): Error stripping build stepKen Sheedlo
2013-07-01test(ngRepeat): fix IE8 test compatibility issueIgor Minar
2013-07-01fix(Angular.js): handle duplicate params in parseKeyValue/toKeyValuejoshkurz
parseKeyValue and toKeyValue can now handle duplicate values in the query. ``` ?x=1&x=2 <-> {x:[1,2]} ``` The algorithm looks like: 1)parseKeyValue looks for presence of obj[key] 2)detects and replaces obj[key] with [obj[key],val] 3)then pushes more duplicates if necessary 4)toKeyValue decodes array correctly 5)(not changed)$location.search({param: 'key'}) still replaces if necessary 6)(not changed)$location.search({param: ['key1', 'key2']}) sets the url with duplicates BREAKING CHANGE: Before this change: - `parseKeyValue` only took the last key overwriting all the previous keys; - `toKeyValue` joined the keys together in a comma delimited string. This was deemed buggy behavior. If your server relied on this behavior then either the server should be fixed or a simple serialization of the array should be done on the client before passing it to $location.
2013-07-01chore: add karma-script-launcher pluginVojta Jina
This plugin is shipped as a default one with Karma. It's specified as a peer dependency. I assume, there's an old version of NPM on the CI server, which does not support peerDependencies and therefore it didn't get installed. This will make the dependency explicit.
2013-07-01docs($cacheFactory): show that you can access existing cachesItamar Rogel
2013-07-01docs(Angular.js): explain that toJson strips $... propertiesSpencer Applegate
In Angular.toJson, any properties with a leading '$' character will be stripped from the resulting string since angular uses this notation internally for services. There have been complaints of not knowing about this functionality until it breaks within their code.
2013-06-28test($compile): use FQDN for img[src]Chirayu Krishnappa
img[src]="https://foo" has the unfortunate problem that the browser will actually try retrieving the resource the non FQDN foo. The local DNS might suffix a domain to this, resolve it, and try to present a certificate for the https request and prompt the user to pick a certificate. This commit avoids that by making foo a FQDN. Note that it might be better to replace foo with example.com (ref http://tools.ietf.org/html/rfc2606#section-3).
2013-06-28chore(gitignore): add .agignoreChirayu Krishnappa
I use a .agignore file to skip the build directory and some other files while searching using Ag (see https://github.com/ggreer/the_silver_searcher).
2013-06-28test(docs): fix invalid pathsVojta Jina
2013-06-28chore: set up Sauce Labs with TravisVojta Jina
This should not affect the Jenkins build at all. Now, the Travis build uses Chrome on Sauce Labs, which in theory gives us opportunity to use any browser/platform that Sauce Labs offers.
2013-06-28chore: clean up angularFiles.jsVojta Jina
2013-06-28chore: update karma to 0.9.4Vojta Jina
And also add shared config to make karma configs a bit simpler.
2013-06-28chore: remove jstd leftoversVojta Jina
2013-06-28docs(misc/faq): remove obsolte t-shirt instructionsIgor Minar
2013-06-28chore(build): change logging level for e2e tests to infoIgor Minar
2013-06-28style(ngRepeatSpec): fix up colons and iitPete Bacon Darwin
2013-06-27fix(compiler): corrects component transclusion on compilation root.Igor Minar
Closes# 2155
2013-06-27chore(build): temporarily add more logging to debug flakiness on CIIgor Minar
2013-06-27docs(ngBind): clarify some of the writingAndrew Peterson
2013-06-27docs(ngPluralize): improve wordingAndrew Peterson
2013-06-27docs(guide/e2e-testing): clarify description of input(name) selectorAdam
The description of the input selector made it seem that you were selecting an input element based upon it's name attribute. In reality, you are selecting an element by the string in the ng-model attribute.
2013-06-27docs(ngMock/$httpBackend): fix testing examplePete Bacon Darwin
Closes #3075
2013-06-27docs(tutorial): add experiment showing reverse sortNelson Blaha
2013-06-25docs(guide/controller): fix an error in the scope inheritance exampleJeffrey Palmer
The chained scope creation example at the bottom of this document was using the childCtrl to create the babyScope, instead of the childScope.
2013-06-25fix(doc-gen): correctly transform index filesPete Bacon Darwin
Closes #3021
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