Opened 11 years ago
Closed 8 years ago
#11484 closed feature (migrated)
SourceURL support for scripts loaded by domManip using XHRs.
Reported by: | Owned by: | jaubourg | |
---|---|---|---|
Priority: | low | Milestone: | 1.12/2.2 |
Component: | ajax | Version: | 1.7.1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
This ticket is inspired by discussion in Chrome Developer Tools mailing group: https://groups.google.com/group/google-chrome-developer-tools/browse_thread/thread/e22f4cb5b0685dbd
SourceURL is a way to give a name to the script executed by eval() for debugging purposes. See http://blog.getfirebug.com/2009/08/11/give-your-eval-a-name-with-sourceurl/
Adding sourceURL to scripts loaded by domManip would make debugging easier. example: $('head').append('<script src="test.js'></script>');
Similar (but different) request http://bugs.jquery.com/ticket/8292 was closed as wontfix earlier, so some comments on the reasons mentioned there:
This is a functionality that:
- only developers will need while debugging
Yes, but is very valuable for developers and it comes with virtually zero cost for users.
- is only useful for Chrome users
sourceURL is supported by Firefox and WebKit (Chrome, Safari) which makes together more than 60% of browser market share.
- is of limited use as the names would need to be randomly generated
In the example mentioned above the url could and should be taken from the src attribute of the script tag. This is the same url the script was loaded from.
Vsevolod Vlasov, webkit reviewer
Change History (12)
comment:1 Changed 11 years ago by
Component: | unfiled → ajax |
---|---|
Priority: | undecided → low |
comment:2 Changed 11 years ago by
Milestone: | None → 1.next |
---|---|
Status: | new → open |
comment:4 Changed 11 years ago by
Type: | enhancement → feature |
---|
Bulk change from enhancement to feature.
comment:6 Changed 10 years ago by
Just a note after a quick look at that pull request. It's possible we might open up security holes by adding this if we're not careful with the sourceURL string and it has a newline. We also need to be alert for the IE conditional javascript bug, see #13274.
comment:7 Changed 10 years ago by
As for the IE conditional compilation bug, fortunately that's behind us - the recent sourcemap specification changes also changed the //@ sourceURL=
to //# sourceURL=
.
comment:8 Changed 10 years ago by
Milestone: | 1.next → 1.next/2.next |
---|
comment:9 Changed 9 years ago by
If we switch to always using <script>
tags for running code, we get this for free. I don't think the remaining use cases warrant a change to globalEval
. See https://github.com/jquery/jquery/pull/1449 for tradeoffs.
comment:10 Changed 9 years ago by
This one just came up again: https://code.google.com/p/chromium/issues/detail?id=365645
I believe that with wither globalEval or a script tag the script will not have a real name that's debuggable in browser devtools. @sourceURL has strong x-browser support and would allow you to inject a filename for all injected scripts which would allow them to participate like real files.
comment:11 Changed 9 years ago by
Milestone: | 1.next/2.next → 1.12/2.2 |
---|
See #14757, but since it's a feature I'll leave it open separately. I don't think we'd retain the globalEval
method just so we could inject a #sourceURL
comment, but if the user has added one the script
tag method should use it.
comment:12 Changed 8 years ago by
Resolution: | → migrated |
---|---|
Status: | assigned → closed |
Migrated to https://github.com/jquery/jquery/issues/1733
Worth investigating.