New Chrome Beta release renders web pages as you type, screens downloads
chrome.blogspot.com
chrome.blogspot.com
Here's the actual announcement: http://chrome.blogspot.com/2012/01/speed-and-security.html
HN needs tons more transparency on moderation for simple things like this, as well as some of the dodgy issues I've seen in the past. I know a lot of trolls are "rules lawyers", but frankly when I notice changes being done by a select elite for my own good with no accountability or properly outlined rules it leaves a bad taste in my mouth. Especially when people complain of opinionated moderation and no evidence remains of it for me to make a determination myself as to who was in the right (I suspect the moderators are right in most cases, but if it's not there it's not there).
I'm taking a break from HN I think.
Seeing traffic that never materialized.
Headers aren't part of any standard log format.
Every web-server configuration and every log analysis script will need to be modified, unless Chrome...
1. Adds a GET variable to each URL to signify this is a preview pull (ex: GET http://url/?ChromePreview=Background).
2. Hits the URL again in some way (ex: HEAD http://url/?ChromePreview=View) to signify that this is now a view.
(edit: adding GET vars is a bad idea as outlined in comments)
Which will solve only half the problem, you'll still need to update your analysis scripts in a non trival way.
Headers won't work here well as these are not logged, and the only thing you could do with them is block the request, or have your Apache, IIS, Node.js, etc add non-standard entries into the log file, which creates more problems.
(edit: headers are about the only way for this to work as outlined in comments)
Not to mention the extra traffic on the web could be doubled.
The fact that there are servers which don't allow users to do the sort of log analysis they need to do is not the fault of Google. Headers are the correct place to put the information.
Not only that, but depending on the way the framework works it could break the page itself. I believe CherryPy's mapping for instance provides GET variables as kwargs to the handler, unless the developer added catch-all handlers it's going to blow up the routing and yield either a 404 or a 500.
2. Modify every analysis software/script.
Simple and easy!
The header is the correct place to put information like this, regardless of whether the deficiencies of the server software.
Care to elaborate on how your Apache configuration is already set up for this?
This is certainly not default/standard behavior.
I have no doubt that this can be done by detecting a header for the prefetch (if there is one!) and using Apache's syntax to mod the log, AND then accounting for this in your analytics scripts ... BUT what I doubt is that this will be a simple task to push to the other 100 million server and analysis instances that I don't control.
Not to mention some of those instances will not be like the rest, and the work required to handled this will be great.
As for me, I happily do not run any public websites other than my personal ones, and in that context I don't much care about analytics, so I'm afraid that I can't show you a good way to do this in Apache. For what it's worth, thought, I think the header for prefetch is "X-Purpose: prefetch" in Safari and Chrome, and "X-Moz: prefetch" (yes, really) for Firefox.
Alternatively, you can just block the preview if you really need your clean logs. Just add a rule to reply with 403 to any request with their header.
It prefetched links you were likely to click on a website but it had to be abandoned because some GET-links also issued actions, such as removing blog-posts, on way to many web-pages causing havoc.
I fear this will have the same problem.
Note that this new feature also _renders_ the page in the background.
http://support.google.com/chrome/bin/answer.py?hl=en&ans... has instructions on how to disable it.
Google Instant is bad, but at least only Google supports the increased load on its servers.
Now Chrome is trying to build "Web Instant", which everyone will have to support.
I have a REST API for placing automated phone calls, for example, which I regularly test using my browser. Chrome is going to start calling people when I've half way finished typing a URL because it thinks it knows what I'm going to type. That's not only not what I want, but costs real money.
Or what if I'm an administrator for some user-generated content site. I have a webpage that shows me a list of user accounts and lets me click a "delete all this user's content" link to fix someone's mistake by request. Now in the process of typing the URL to get to this admin area, Chrome thinks I'm trying to go to the "delete all" page and accesses it in the background...
This is a dangerous feature.
On the other hand, there are probably many HTTP based APIs that cause harmful side effects on GET, so the danger is still lurking.
There's a front page story right now about Google AppEngine, where the linked discussion mentions mashing a link to start a MapReduce job every day that's costing $200-300 a day to run. What if Chrome autocompletes the URL to that job, costing you $300 before you finish typing something else?
Then the API owners will realize they shouldn't break the HTTP standard just because it happened to work before.
In particular, the convention has been established that the GET and HEAD methods
SHOULD NOT have the significance of taking an action other than retrieval. These methods
ought to be considered "safe". This allows user agents to represent other methods,
such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact
that a possibly unsafe action is being requested.
Naturally, it is not possible to ensure that the server does not generate side-effects
as a result of performing a GET request; in fact, some dynamic resources consider
that a feature. The important distinction here is that the user did not request the
side-effects, so therefore cannot be held accountable for them.
This argument comes up every time there's a breaking change, but developers should be responsible for their actions. They broke the spec, they should be deal with the consequences.Do you remember its name?
here is the link, https://chrome.google.com/webstore/detail/nipkbmplhlokenofof...
it does not work anymore coz of an api problem. u can see the working video. never bothered to fix it. just wanted to say that i did that before Google :)
Eg web browser sends a request with the header:
X-Page-Preload: Something
I configure my webserver to 403 any requests with that header.
X-Purpose: instant
(http://www.google.co.uk/chrome/intl/en-GB/webmasters-faq.htm...)I'm not sure I like this, since it will slow down your site until the blacklist gets cleared up if the user accesses a page they are forbidden for.
Unless of course you are the admin for http://www.faceboo.com/
Imagine when I request Hacker News (too often), if it could download the HTML and the site returned NOT MODIFIED on everything else before I've even pressed enter, it could be displayed straight away, with little pressure on the server.
Looks like the best you can get is a JS property once the page is loaded. http://code.google.com/chrome/whitepapers/pagevisibility.htm...
Why do you say that? They seem to send "X-Purpose: instant", at least according to their FAQ[1] and bug reports[2].
[1]: http://www.google.co.uk/chrome/intl/en-GB/webmasters-faq.htm...
[2]: https://code.google.com/p/chromium/issues/detail?id=91735
It is nice to have the page appear instantly if you wanted exactly what was preloaded, but the overhead this adds in both network and CPU is kind of worrying.
It's the type of feature that I think most users would want on when they are at plugged in at home using a virtually unlimited internet connection. On the other hand, when using battery power and a 3g or tethered internet connection, it probably isn't so desirable.