

Chrome treats DELETE requests as GET and caches them - eranation
http://code.google.com/p/chromium/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Pri%20Mstone%20ReleaseBlock%20OS%20Area%20Feature%20Status%20Owner%20Summary&groupby=&sort=&id=136320

======
T-R
Chrome's excessive caching is so broken for RESTful web services that I've
just given up on letting it cache any requests from Javascript. It completely
ignores Vary headers, too, so hitting the back button after an AJAX request to
the same URL (but with a different content-type) as a visited page displays
the AJAX response (e.g., JSON) instead of the page. Worse yet, it's been
marked as WONTFIX.

<http://code.google.com/p/chromium/issues/detail?id=94369>

~~~
ZoFreX
I don't think it's really fair to brag that your browser is the fastest when
it willfully breaches the HTTP spec just to appear better than the
competition. Is Chrome really better than IE, from an intentions viewpoint?

Also worth noting that Chrome does (or at least, did) cache items even that it
is explicitly told not to if they are CSS or JS which can be absolutely
infuriating.

~~~
dspillett
> _Also worth noting that Chrome does (or at least, did) cache items even that
> it is explicitly told not to if they are CSS or JS which can be absolutely
> infuriating._

I've certainly noticed it breaking the "ctrl+f5 refreshes everything"
convention in recent versions, which can be a pain when testing new code and
may cause problems for users on the release of new code if you don;t vary
filenames (or other parts of the request).

This is for script included using a simple <script> tag, not something that is
loaded dynamically, so that isn't the cause.

The solution I've used is to either close and reopen Chrome (yep: close all
windows and restart, Google is becoming the new Microsoft in this manner!) or
load the script file in a different tab and hit ctrl+f5 there first (it obeys
the refresh then, and updates the memory cache that other tabs are using too).

~~~
mjdwitt
I may be mistaken, but I believe that Chrome uses ctrl+shift+R to refresh
everything.

~~~
idupree
It's "Ctrl-Shift-R twice". Hit it, wait a few moments for the page to start
reloading, then hit it again.

Otherwise it _doesn't_ reload everything. Verify this by watching the
Developer Console's Network section. I can only assume this is intentional; my
coworkers told me this trick last year and it still seems to be the case.

~~~
jberryman
You can turn off cache in developer tools, which has saved my sanity. Nothing
else is consistent.

~~~
city41
Even then I find Chrome still caches. I've gotten in the habit of doing cmnd-
shift-delete, which takes you straight to the clear cache settings. Sadly the
equivalent command in Windows (Ctrl-shift-delete) does not work.

I still feel Chrome is the best browser, but that's more to do with the lousy
competition than Chrome's own quality as of late.

~~~
DeepDuh
Try the new safari. I've been a Chrome user for quite some time, since the
retine MBP I'm forced to use safari (for retina support). Since ML it has
actually become quite pleasant I have to say. I don't see any clear advantages
of chrome anymore in terms of functionality (I still like its interface better
though).

~~~
city41
The new Safari does look nice at initial glance. What worries me about it is
WebGL is not enabled by default, and its JS engine is much slower than
Chrome's. I mostly do WebGL game dev for my personal projects, and so I don't
support Safari (since I can't expect people to have turned WebGL on).

~~~
DeepDuh
It isn't? That's strange. Why would they do that, security reasons?

About JS performance: Might be important to you as a gamedev, but for the
overwhelming majority of today's web apps this shouldn't be an issue anymore.

That being said, I will probably still switch back to chrome when they get
retina support. The interface is just cleaner and it has more intuitive
developer tools IMO (safari's are more powerful, but chrome's do have
everything I need and are easier to navigate).

~~~
city41
Chrome Canary has retina support if you want to get a sneak peak at it. The
problem is Canary crashes OSX often.

------
jperras
Not surprising. The amount of _aggressive_ caching that Chrome does to make
the web "faster" is excessive, not to mention infuriating. Developing a web
application and using Chrome is an exercise in anger management.

And then there's the bug in the dev channel where multiple assignment was just
plain broken (bug report:
<http://code.google.com/p/chromium/issues/detail?id=136380>)

Example:

    
    
        var foo = function() { /* foo function */ };
        var bar = function() { /* bar function */ };
        var baz = function() { /* baz function */ };
        var sup = function() { /* sup function */ };
    
        foo.test = bar.test = baz.test = sup;
    
        console.log(foo.test);  // shows bar, not sup

~~~
jryans
I don't think your anger about multiple assignment is valid.

I also use the Dev channel regularly, but I don't think it's fair to expect it
to meet a high bar of quality. Typically issues are corrected within a few
days.

~~~
masklinn
> I don't think your anger about multiple assignment is valid.

He didn't express any anger about it, he just noted that it was broken. The
anger he expresses is about Chrome's insanely aggressive caching (and every
web dev I know agrees with that, even IE's caching was less over-the-top than
Chrome's).

I'm taking his note on multiple assignment more as a supplementary piece of
evidence re. Chrome's quality control: how can you break something as basic as
multiple assignments and get that pushed to a build?

~~~
wickedchicken
From the dev channel page[1]:

"While this build does get tested, it is still subject to bugs, as we want
people to see what's new as soon as possible" and "Remember, Dev channel
browsers and Canary builds may still crash frequently."

[1] <http://www.chromium.org/getting-involved/dev-channel/>

~~~
masklinn
I know what the channel page says and what the dev channel is about, my issue
is that multiple assignment is not a complex or advanced feature, which means
either it's not tested or Chrome's devs don't even bother running any test
suite before pushing changes.

~~~
cwp
What makes you think assignment is simple? V8 is a multi-stage, dynamically
optimizing just-in-time compiler. That's complex and advanced, pretty much by
definition.

------
eranation
Why is this bad? for example if you have an Image you want to both DELETE and
GET, and have cache control, once it's cached, the DELETE will return the
bytes of the image without going to the server...

~~~
darklajid
I wonder why three people answered your question, not understanding that you

\- submitted the link in the first place

\- tried to provide an explanation why this is a bad idea (i.e. wrong)

and telling you that this behavior is, in fact, not according to the specs.

Communication failure? Maybe it would help to clarify your statement a bit?

Edit: Reading a third and forth time I'm becoming less certain that _I_ got
your point and the others didn't (note to self: That shouldn't be the default
assumption). Did you really ask why that is bad?

Edit 2: Looking at your username and the issue comments I kind of assume that
you are the commenter over at code.google.com, calling this 'severe'. So I'm
back to my original assumption that you know perfectly fine why this is bad.

~~~
biot
The question "Why is this bad?" can be interpreted two ways: both as "Can
someone please tell me why this is bad?" and "Why is this bad, you might be
wondering? Let me tell you..." Ambiguities like this are sometimes amusing,
such as when a reply saying "Love it!" can be read as both "[I] love it!" and
the imperative command "[You must] love it!"

~~~
eranation
Yep, bad choice of English words from my side. not may native language... yep,
I was trying to explain why it's bad, not asking why it is bad... :)

~~~
sp332
It's pretty subtle :) The closest way to do it is like this:

Why is this bad? _Well_ , for example if you have an Image...

Just put the word "well," between the question and the explanation. I doubt
they put that in a textbook though :)

~~~
eranation
thanks! next time I will... ;)

------
eranation
By the way credit goes to Sebastian from blueimp.net (who wrote the excellent
jQuery File Upload) for discovering and opening the bug initially.

------
eranation
Apparently your votes have helped, see official comment
<http://code.google.com/p/chromium/issues/detail?id=136320#c8>

Priority was bumped

~~~
atesti
I can only see 1,2,9-14. What was written in comment 8 and why did they hide
it?

------
pgambling
Comment 4 on the bug report cracked me up:

"Obviously, google doesn't believe in deleting data."

~~~
btipling
No it is not funny. The comments section on an issue is not a place for jokes
or otherwise unhelpful comments. It is not twitter or a comments section on a
blog.

Everyone on that list gets pinged whenever there is an update. This is the
place to fix the bug. People should not see every single input box as an
invitation to demonstrate their wit.

~~~
rimantas
It's good that they are pinged. Maybe they be annoyed enough to fix it.

~~~
slurgfest
It also 'pings' everyone who starred/subscribed to the issue out of interest -
very not cool

~~~
SquareWheel
It's the reason I don't star issues any more. The number of "me too!" comments
is out of hand.

------
darkhorn
Aahhhaaa that's why it behaves strange when you click the back button on ExtJS
documentation! Instead of the previous page I see JavaScript codes. But yeah
yeah Gogole knows what he is doing, for sure!

------
recursive
I wasn't even aware that browsers could use request methods other than GET and
POST.

~~~
ajasmin
<http://stackoverflow.com/q/165779>

You can use other request methods with XMLHttpRequest. Apparently HTML5
allowed forms with PUT and DELETE for a while but this was removed from the
spec.

------
KirinDave
And the update to fix this will be pushed in 3... 2... 1...

------
eranation
Update - a fix patch was created

------
eranation
Update: this was fixed!

