Limitation of Chrome Extensions API

The Chrome Extension model is amazingly easy to use with just few basic concepts to understand. But there are rather severe limitations. The most important I found so far:

  • There is no easy and consistent way to create option page. Developer needs to create option page as any normal HTML page, this is just overkill! See Extension options page, Chrome issue cr25317.
  • Attaching action to context menu is limited in many ways:
    • You can’t add two items to context menu. Chrome automatically creates a group called after the extension and puts all your items into this submenu.
    • Callback method from event gets very limited amount of data about the click – e.g. you can’t easily read the contents of a link (A) tag right-clicked by user.
  • There is no way you can modify the title of the link in context menu when it’s being displayed (no OnShow or similar event).

Expect edits here.

TranslateMe – my first Chrome extension

I spend long hours reading on-line (don’t we all?). Most of interesting material is available in English only (including which is much superior to my native, so I tend to read all in that language. And as it is my second tongue, I need to use translator quite often. Google translator is doing pretty good job with helping me, but the manual process (copy->new tab->type address->paste) was just too slow to be comfortable. This is where the idea for extension for Chrome came from.

Basic needs for the plugin were defined as:

  • No need to open everytime I need a translation
  • No need to copy/paste to translate
  • Quick
  • No more than 3 hours to develop (including the ramp up – this was my first attempt to create a Chrome Extension)

The result is quite encouraging – the extension is working and can be downloaded from Chrome Web Store. More information about the extension can be found here (click!)


This week I’ve attended meeting of London-GTUG (Google Technology Users Group). Main themes of the meeting were Chrome Extensions and HTML5. First part was interesting, but not inspiring – the Firefox plugins are widely available, Chrome Extensions just close the gap between the browsers. I like the architecture of Extensions and reasonable restrictions Google put on available APIs. All information are available on Chrome Extensions Lab page.

On the other hand, the HTML5 show put some new ideas in my mind. I like new semantic tags like <header/footer>, <time>, I love new styles (after 20 years we will finally have rounded corners :)), new attributes (“default if empty” for input fields) and other minor stuff like new types of input fields. But the real revolution lies in HTML’s multimedia capabilities. HTML currently supports audio and video embedding with full control over the elements from JavaScript; there are transitions to allow define movement of elements and my personal favourite – canvas. Where’s canvas and bunch of developers, there will be frameworks that will make it really usable. And this canvas gets access to GPU, so it’s fast. I will observe WebGL closely. This may be a foundation of revolution in PLM world!

Is HTML5 a flash-killer? If you compare capabilities, it may seem so, but the battle is not lost for Adobe yet. At the moment there are no IDEs that let developers use full potential of new capabilities. And the browser support is still quite poor with Internet Explorer in lead in department of ignoring new standard. Adobe has some time to make a leap forward and run away before HTML folks produce something stable and popular enough.

Btw: Someone took a decision to stop numbering HTML, so we should not talk about HTML5 – it’s just HTML now. How do you tell what capabilities are supported by your browser? IMHO it will make some mess in two or three years. I don’t understand why they did it.