Title: Calling history.replaceState in data URI of an iframe causes error in Firefox and Edge · Issue #16900 · angular/angular.js · GitHub
Open Graph Title: Calling history.replaceState in data URI of an iframe causes error in Firefox and Edge · Issue #16900 · angular/angular.js
X Title: Calling history.replaceState in data URI of an iframe causes error in Firefox and Edge · Issue #16900 · angular/angular.js
Description: I'm submitting a ... regression from 1.7.0 security issue issue caused by a new browser version other Current behavior: When I use AngularJS 1.7.8 + ng-table 3.0.1 in an iframe that was loaded via data URI, I get errors in Firefox (NS_ER...
Open Graph Description: I'm submitting a ... regression from 1.7.0 security issue issue caused by a new browser version other Current behavior: When I use AngularJS 1.7.8 + ng-table 3.0.1 in an iframe that was loaded via ...
X Description: I'm submitting a ... regression from 1.7.0 security issue issue caused by a new browser version other Current behavior: When I use AngularJS 1.7.8 + ng-table 3.0.1 in an iframe that was loaded ...
Opengraph URL: https://github.com/angular/angular.js/issues/16900
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Calling history.replaceState in data URI of an iframe causes error in Firefox and Edge","articleBody":"**I'm submitting a ...**\r\n- [ ] regression from 1.7.0\r\n- [ ] security issue\r\n- [ ] issue caused by a new browser version\r\n- [x] other\r\n\r\n**Current behavior:**\r\nWhen I use AngularJS 1.7.8 + ng-table 3.0.1 in an iframe that was loaded via data URI, I get errors in Firefox (NS_ERROR_FAILURE) and Edge (SecurityError). This is caused by calling history.replaceState in line 6630 of angular.js.\r\n\r\n**Expected / new behavior:**\r\nYou should only execute history.replaceState if the script is not loaded within a data URI:\r\n```\r\nif (!document.URL.startsWith('data:text/html')) {\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n}\r\n```\r\n\r\n**Minimal reproduction of the problem with instructions:**\r\nYou can verify the different browser behavior with this demo:\r\nhttps://jsfiddle.net/2rtq8ezx/\r\n\r\n**AngularJS version:** 1.7.8\r\n**Browser:** Firefox 69, Edge 44\r\n\r\n**Anything else:**\r\nThis is an example of the error in Firefox:\r\n```\r\nfilename: \"https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js\"\r\nlineNumber: 6630\r\nname: \"NS_ERROR_FAILURE\"\r\nresult: 2147500037\r\nstack:\r\nBrowser/self.url@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:6630:56\r\n$LocationProvider/this.$get\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:15310:16\r\ninvoke@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5141:19\r\ncreateInjector/protoInstanceInjector\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:4930:37\r\ngetService@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5084:32\r\ninjectionArgs@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5109:58\r\ninvoke@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5133:18\r\ncreateInjector/protoInstanceInjector\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:4930:37\r\ngetService@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5084:32\r\ninjectionArgs@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5109:58\r\ninvoke@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5133:18\r\nregisterDirective/\u003c/\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:8778:43\r\nforEach@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:387:20\r\nregisterDirective/\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:8776:13\r\ninvoke@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5141:19\r\nenforcedReturnValue@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:4976:37\r\ninvoke@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5141:19\r\ncreateInjector/protoInstanceInjector\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:4930:37\r\ngetService@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5084:32\r\naddDirective@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:10751:52\r\ncollectDirectives@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9980:15\r\ncompileNodes@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9751:22\r\ncompile@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9636:15\r\nNgTableController\u003c/NgTableController.prototype.compileDirectiveTemplates@https://unpkg.com/ng-table@3.0.1/bundles/ng-table.js:1441:22\r\ncompile/\u003c@https://unpkg.com/ng-table@3.0.1/bundles/ng-table.js:1123:28\r\nbind/\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:1388:18\r\ninvokeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:11266:9\r\nnodeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:10585:11\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9832:13\r\nnodeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:10579:11\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9832:13\r\nnodeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:10579:11\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9832:13\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9835:13\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9835:13\r\nnodeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:10579:11\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9832:13\r\nnodeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:10579:11\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9832:13\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9835:13\r\ncompositeLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9835:13\r\npublicLinkFn@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:9697:30\r\nbootstrapApply/\u003c@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:1965:27\r\n$eval@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:19393:28\r\n$apply@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:19492:25\r\nbootstrapApply@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:1963:15\r\ninvoke@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:5141:19\r\ndoBootstrap@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:1961:14\r\nbootstrap@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:1981:12\r\nangularInit@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:1866:5\r\n@https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.js:36430:5\r\ni@https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:2:27449\r\nfireWith@https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:2:28213\r\nready@https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:2:30006\r\nK@https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:2:30368\r\n```\r\n","author":{"url":"https://github.com/dikow","@type":"Person","name":"dikow"},"datePublished":"2019-09-05T09:32:50.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/16900/angular.js/issues/16900"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:1c83902e-d469-eee5-9914-eedf8842a7fa |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A4D2:169C19:2846A7F:350B7D7:696DA226 |
| html-safe-nonce | 25f55fac5235c519a70370820336afcaec2a949ae488b4cdbede4791380ddf50 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNEQyOjE2OUMxOToyODQ2QTdGOjM1MEI3RDc6Njk2REEyMjYiLCJ2aXNpdG9yX2lkIjoiNDgzMDI0Mzg2MjA3Mzk0MjU2NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 79fd2ab706925ca3542d4b7bde04c91b7a7cb23542bf3d5874e4ead1094ee4b1 |
| hovercard-subject-tag | issue:489639033 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/angular/angular.js/16900/issue_layout |
| twitter:image | https://opengraph.githubassets.com/6f46bcfa5f5b648aed20d575d9aa0a73d3e08a1970e21b3636b7e3962769568b/angular/angular.js/issues/16900 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/6f46bcfa5f5b648aed20d575d9aa0a73d3e08a1970e21b3636b7e3962769568b/angular/angular.js/issues/16900 |
| og:image:alt | I'm submitting a ... regression from 1.7.0 security issue issue caused by a new browser version other Current behavior: When I use AngularJS 1.7.8 + ng-table 3.0.1 in an iframe that was loaded via ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | dikow |
| hostname | github.com |
| expected-hostname | github.com |
| None | 4922b452d03cd8dbce479d866a11bc25b59ef6ee2da23aa9b0ddefa6bd4d0064 |
| turbo-cache-control | no-preview |
| go-import | github.com/angular/angular.js git https://github.com/angular/angular.js.git |
| octolytics-dimension-user_id | 139426 |
| octolytics-dimension-user_login | angular |
| octolytics-dimension-repository_id | 460078 |
| octolytics-dimension-repository_nwo | angular/angular.js |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 460078 |
| octolytics-dimension-repository_network_root_nwo | angular/angular.js |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7e5ae23c70136152637ceee8d6faceb35596ec46 |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width