{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/11381","labels_url":"https://api.github.com/repos/angular/angular.js/issues/11381/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/11381/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/11381/events","html_url":"https://github.com/angular/angular.js/pull/11381","id":63162335,"number":11381,"title":"fix(ngInput): change URL_REGEXP to better match RFC3987","user":{"login":"andrewaustin","id":166746,"avatar_url":"https://avatars.githubusercontent.com/u/166746?v=3","gravatar_id":"","url":"https://api.github.com/users/andrewaustin","html_url":"https://github.com/andrewaustin","followers_url":"https://api.github.com/users/andrewaustin/followers","following_url":"https://api.github.com/users/andrewaustin/following{/other_user}","gists_url":"https://api.github.com/users/andrewaustin/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewaustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewaustin/subscriptions","organizations_url":"https://api.github.com/users/andrewaustin/orgs","repos_url":"https://api.github.com/users/andrewaustin/repos","events_url":"https://api.github.com/users/andrewaustin/events{/privacy}","received_events_url":"https://api.github.com/users/andrewaustin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/component:%20forms","name":"component: forms","color":"7B947B"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20review","name":"needs: review","color":"eb6420"},{"url":"https://api.github.com/repos/angular/angular.js/labels/severity:%20broken%20expected%20use","name":"severity: broken expected use","color":"fbda00"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20bug","name":"type: bug","color":"000000"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/80","html_url":"https://github.com/angular/angular.js/milestones/1.4.x","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/80/labels","id":901585,"number":80,"title":"1.4.x","description":"","creator":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"open_issues":75,"closed_issues":104,"state":"open","created_at":"2014-12-12T10:36:27Z","updated_at":"2015-10-12T14:51:40Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2015-03-20T04:49:02Z","updated_at":"2015-10-12T19:28:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/11381","html_url":"https://github.com/angular/angular.js/pull/11381","diff_url":"https://github.com/angular/angular.js/pull/11381.diff","patch_url":"https://github.com/angular/angular.js/pull/11381.patch"},"body":"The URL_REGEXP in use to perform validation in ngInput is too restrictive and fails to\r\nfollow RFC3987. In particular, it only accepts ftp, http, and https scheme components and\r\nrejects perfectly valid schemes such as \"file\", \"mailto\", \"chrome-extension\",\r\netc. The regex also requires the scheme to be followed by two \"/\" but the RFC says\r\n0 to n are acceptable. This change fixes both of these issues to better align to\r\nthe standard.\r\n\r\nCloses #11341"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/147497734","html_url":"https://github.com/angular/angular.js/pull/11381#issuecomment-147497734","issue_url":"https://api.github.com/repos/angular/angular.js/issues/11381","id":147497734,"user":{"login":"gkalpak","id":8604205,"avatar_url":"https://avatars.githubusercontent.com/u/8604205?v=3","gravatar_id":"","url":"https://api.github.com/users/gkalpak","html_url":"https://github.com/gkalpak","followers_url":"https://api.github.com/users/gkalpak/followers","following_url":"https://api.github.com/users/gkalpak/following{/other_user}","gists_url":"https://api.github.com/users/gkalpak/gists{/gist_id}","starred_url":"https://api.github.com/users/gkalpak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gkalpak/subscriptions","organizations_url":"https://api.github.com/users/gkalpak/orgs","repos_url":"https://api.github.com/users/gkalpak/repos","events_url":"https://api.github.com/users/gkalpak/events{/privacy}","received_events_url":"https://api.github.com/users/gkalpak/received_events","type":"User","site_admin":false},"created_at":"2015-10-12T19:28:29Z","updated_at":"2015-10-12T19:28:29Z","body":"A little research:\r\n\r\n* (As expected), Chrome (<= Chromium <= WebKit) does not use a RegExp, they [parse the URL][1] instead.\r\n* They use [KURL][2] for that.\r\n\r\n--\r\nI don't think it's worth implementing a URL parser into core.\r\nLet's work o that RegExp :)\r\n\r\n\r\n[1]: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/html/forms/URLInputType.cpp&q=typeMismatch&sq=package:chromium&type=cs&l=56\r\n[2]: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/weborigin/KURL.cpp&q=kurl.&sq=package:chromium&type=cs&l=1"}}