IndexedDB, Milestone 8, ES5 Strict Mode and progress on Print Preview

Published on in Google Chrome, Last Week, tech, WebKit. Version: Chrome 8

Only three commits short of 700 in the past week, the Chromium Team has been quite active. The Chromium nightlies have been pushed up to version 8, just over seven weeks after version seven. WebKit received 485 commits, but there were some large changes among them like support for ECMAScript 5’s Strict Mode.

Well over two years after Eric Lake filed Issue 173, there is finally some visible progress on previewing a print in Chromium. When using the latest nightly, you should launch Chrome using the “--enable-print-preview” flag and browse to “chrome://print/” to see a (not working!) preview of the feature. Enabling the Cloud Printing Proxy for Windows may now be done through the Labs page and a lot of work on supporting the CSS Paged Media Modules has been completed already. The feature is currently scheduled for milestone 9, which may be as soon as six weeks from now.

Another large change is that support for IndexedDB has been enabled by default. IndexedDB is a specification originally proposed by Oracle, but currently is being edited by experts from Google, Mozilla and Microsoft as well. Especially the latter makes this interesting, because since Opera’s Charles McCathieNevile has been positive about IndexedDB as well, chances on getting an interoperable database system are looking good.

The Web Inspector team hasn’t been idle either, and although I haven’t said much about it in the past few weeks, there certainly are some exciting changes coming up. Some more fine-tuning was done on the Network panel, the Extension API now also exposes a document’s body. Setting breakpoints on specific events will become a possibility too! And did I mention remote debugging?

Many of these features are still disabled in the Chromium builds. If you’d like to play around with them, you will either have to build Chromium yourself or create yourself a WebKit build. In time these features will be enabled for all Chromium builds, something which surely will be announced on the Chromium Blog.

Also great news for the Safari users, as Oliver Hunt landed support for ECMAScript 5’s Strict Mode just a few hours ago. In a nutshell, strict mode will disable some really bad practices in your JavaScript code like eval() and the with-construct. These changes couldn’t be applied by default, considering ECMAScript 5 had to remain backwards-compatible with ECMAScript 3. Until today, Kangax’ compatibility page shows that BESEN was the only JavaScript engine to support it, although Mozilla is actively working on supporting it.

Other changes this week include:

Finally I just want to note down that I really don’t think recordings like these are going to make me popular, even though Christian Heilmann obviously thinks otherwise. A big thank you to the organization of Fronteers 2010, all the speakers, and of course all the visitors. The conference has been really great, cheers for that!

15 Responses to “IndexedDB, Milestone 8, ES5 Strict Mode and progress on Print Preview”

Both comments and pings are currently closed.

Just a quick question about “use strict”. How complete is the support?

The changeset talks about adding “(hopefully) all of the restrictions required by strict mode.” If so, it is indeed good news.

Also, I am a bit confused about how the change in Webkit relates to Chromium, since the latter uses V8. (Please educate me!)

BTW, to complete the facts, MSIE 9 will (most probably) support strict mode as well. In fact they are almost as complete in their coverage as the Mozilla team is, AFAIK.


Peter

October 11, 2010 at 11:51 pm

It’s a basic implementation, meaning that while most requirements of strict-mode should be implemented, some parts of it may be added later on. Especially performance-wise there’s still work to be done, but that’s an ongoing effort anyway.

The change only adds support for strict-mode to JavaScriptCode, which is the engine used by Safari. I’m not sure about the plans of the V8 Team, which is used by Chromium. My posts address both Chromium as WebKit, even though I tend to focus on the Chromium-port for the latter.


ruben

October 12, 2010 at 3:04 am

That should be , not .


Peter Beverloo

October 12, 2010 at 9:21 am

Hi Ruben, could you perhaps emphasize a bit more on what you think is wrong? The contents of the code-element are missing..


Peter, just wanted to take the time to let you know that we love the “last week” articles. Please keep it up 🙂

Cheers,

Marcelo


dinu

October 12, 2010 at 7:23 pm

hey, thanks a lot for the update !!!!!!!!!


Thanks for the update, however for whatever reason when I try to use “chrome://print” in the most recent Chromium builds I don’t see a print preview section like the screenshot above. What gives?


Peter Beverloo

October 12, 2010 at 10:29 pm

Sorry, I should have mentioned that you have to launch Chromium with the “–enable-print-preview” flag. When you supply it, the chrome://print/ page will look like it does in the screenshot.


PhistucK

October 13, 2010 at 1:36 pm

A double correction – 1. “unlimited_storage” is the older name for the permission, the new and more consistent name is “unlimitedStorage” Reference – http://code.google.com/chrome/extensions/manifest.html#permissions

2. The “unlimitedStorage” existed before. That revision only extends it to apply to the fileSystem API as well.

Also, s//.

(And while you are there, also add the print preview flag note ;))

Next – Most of the command line flags of Chromium for enabling new features will be ‘official’ Labs features! How great. 🙂 But you already knew that. 🙂


PhistucK

October 13, 2010 at 2:19 pm

Oh, too bad. It was supposed to be s/<process>/<progress> (unescape these entities and understand ;)).

Also, I forgot to thank you for yet another very informative update. I really hope you will not give up, you have a great thing going on here.


PhistucK

October 13, 2010 at 2:20 pm

Oh, the entities are escaped. Well, good! hehe. The faulty line was – Support for the HTML5 <process> element landed for the EFL port!


MichaelP

October 17, 2010 at 11:36 pm

Question on spatial navigation. I can see that in theory it is enabled in Webkit and Chrome however I can’t seem to find the right keyboard shortcuts. I also can’t find any switches to enable it in either your list of the Chrome source. Any help appreciated.


Peter Beverloo

October 19, 2010 at 10:04 am

PhistucK: Thanks! I’ve adopted all your notes in my post 🙂

MichaelP: As I’ve already replied on Twitter, it doesn’t seem like spatial navigation will be coming to Chrome anytime soon. To cite Dimitri Glazkov: “We won’t support spatial navigation for a looong time. Until there’s a port of Chrome running on a phone with rocker-navigator.”

Unfortunately, I don’t see phones with rocket-navigators in the foreseeable feature. The WebKit GTK and Qt ports do seem to have enabled it, more information about which is available on this page.


ruben

October 19, 2010 at 8:36 pm

I was trying to mention the process/progress issue also but your blog ate the contents of the code tags.