I looked into a tree a little, and result:
1. Firefox uses it only within RSS Feed Reader.
1.2. Microformats does not use it, but it has its own ISO8601 bits. Probably this bug won't cover that, but someone some time should fix it (bug 419433 for more details.)
2. Thunderbird also uses it.
3. Others in Gecko family, such as Flock, may be using it.
4. Extension authors? In my opinion, all what this bug can do for them is to remove ISO8601DateUtils.jsm ASAP or mark it as "deprecated" in dev.m.o
Created attachment 497207 [details] [diff] [review]
Too late for 2.0, but I'm pretty confident the patch will elude bitrot until we have a trunk again.
Created attachment 497208 [details] [diff] [review]
Oops, forgot the part that will bitrot, switching from only removing it ifdef omnijar to always removing it on update/paveover.
Comment on attachment 497208 [details] [diff] [review]
In-tree callers are all gone, the only possible even vaguely reasonable consumers would be extensions using the completely untested (and never used in-tree) create(), in which case they can just copy it into their code, and write their own tests for it, since we certainly have no idea whether or not it actually works.
Created attachment 551369 [details] [diff] [review]
Oh, yeah, guess that rotted a bit over the last eight months.
Are we sure this isn't going to break Thunderbird? And we might want to add a relnote.
Actually, instead we should just make sure we post to the addon community. Looks like really nobody is using this.
The (outdated) add-ons MXR shows 9 hits on AMO. I'll add it to the checks to include the compatibility bump.
I assume this is targeted for Firefox 8?
It is indeed - I just danced around for an hour about whether I should sit on it for ten days and aim it at 9, but it's such a simple change (if you were using parse, just use the JS Date object, if you were using create... I bet you weren't) that I decided we might as well just do it.
(In reply to Phil Ringnalda (:philor) from comment #9)
> if you were using create... I bet you weren't
Oh, hello, Date.toISOString().
Don't EVER remove APIs like that. There was no need to remove this.
ISO dates must be supported. While Date.parse() now supports ISO dates, which is good, there is no standard function to output an ISO date. I need that in pretty much every project, and I don't want to copy&paste that function everywhere.
Removing such basic APIs without replacement is NOT ACCEPTABLE.
Oh no, you're right! I probably should have said something about the existence of Date.toISOString() in comment 11!
Oh, and one more thing: DON'T EVER YELL AT ME ABOUT WHAT TO DO WHEN YOU HAVEN'T EVEN LOOKED AT WHAT YOU ARE TALKING ABOUT, HAVEN'T LOOKED AT THE REPLACEMENT, HAVEN'T FIXED BUGS IN WHAT YOU ARE TALKING ABOUT, AND HAVEN'T WRITTEN TESTS FOR IT TO BE SURE IT EVEN WORKS.
I looked at <https://developer.mozilla.org/en/Firefox_8_for_developers#ISO8601DateUtils.jsm>, and it doesn't mention toISOString(). It's good that toISOString() is there.
I didn't yell, I used caps for strong emphasis. You yelled. Breaking APIs is no-go, and I want to get that very clear to everybody responsible for breaking APIs.
(In reply to Ben Bucksch (:BenB) from comment #15)
> I looked at
> jsm>, and it doesn't mention toISOString(). It's good that toISOString() is
Then, could you update the dev doc?
My bad English writing, by dev-doc I meant
Anyway -> v.
Many thanks to philor and other guys.
While it is possible to fix extensions by using the new function, modulo the timezone problem, it remains work for extension authors, which would be unnecessary if there was a compat shim that just used the new Date() functions. Those extensions that have not been updated, because the author is not aware, on vacation, whatever, *** will break FF8 entirely ***. On our extension, not even the Firefox Addon page worked anymore, FF was totally broken by the extension, merely due to this lacking import. This is a too high cost. Shipping a 6-line .jsm file is a minor cost in comparison.
Thus, REOPEN, to keep the file, but as a compat shim.
reassign to gal.
in addons mxr I can find _seven_ add-ons using this old module, maybe it's worth to keep a shim (I don't think so though) but that should be done in a separate regression bug, no point in reopening a bug to do something completely different from its original purpose, neither changing assignee of a fixed bug. That is just going to create confusion.
Filed bug 695345.
qa- as nothing to do for QA. Please set to qa+ if there is something QA can do to verify this fix.
I've just requested a backout of the removal in bug 695345. We think it's best to add a deprecation warning (in the console) here that would be in a released version for at least 2 releases. Once we've moved past those two releases, we can then move ahead with the removal.
If anybody is interested in speeding up the process, we could uplift the deprecation warning to FF10 (aurora). Please nominate if that's desired.
Are we really adding all of this complication for 7 add-ons? While I'm not saying they are not important and I understand the will to not break unless needed, we take a lot of changes that break a far large number of add-ons on a weekly base, and we just notify them on upgrade blogposts, on newsgroups and I suppose we may even notify specific add-ons maintainers. Why is this case so different from the usual?
I think at this point the deprecation warning should absolutely be at least in Aurora.
That only covers add-ons on AMO. I was informed about some heavily-used add-ons hosted elsewhere that were going to break because of this, which prompted the reversal and all the extra work. While those add-ons should be fixed by now, I think the deprecation period may still be worthwhile.
(In reply to Jorge Villalobos [:jorgev] from comment #26)
> That only covers add-ons on AMO. I was informed about some heavily-used
> add-ons hosted elsewhere that were going to break because of this, which
> prompted the reversal and all the extra work.
Ok, thank you for the clarification, I was not aware of this.
Docs no longer say that ISO8601DateUtils.jsm is gone. If so, docs update is needed.