Martin Kadlec blogging

Opera Extensions API discussion

Red Opera
As I am watching Opera development I have noticed that Opera developers like to focus on something, then for a time work really hard on it and finally slowly leave it with only occasional fixes.

Sometimes I discover or star using a great opera feature and I'm angry I haven't give it more attention when It was being developed because improving the feature now is nearly impossible. You can't persuade (nor intimidate :D ) any Opera developer to give it more time because they are already working hard on something else and they just can't give it the time.

Now why am I talking about it. Right now Opera is working on extensions and their APIs. There is new API for tabs and windows in Opera 12. There is even more in a recent lab build and there is very likely coming much more cool stuff to Opera in near future.

I'm quite sure Opera already has a road map of what to implement, but even though this is probably the best time to come up with something and talk with Opera developers about the possibility of it being implemented. It might be just small change to some already existing API or some completely new API you would like to see in Opera. :)

All ideas are welcome and if you add how it should work in JavaScript it would be even better. Please express yourselves in comments and tweet about this post to get as many ideas and opinions as possible!

Please login to post comments.
13.09.2012 16:09
Some more ideas for URL Filter API taken from the lab build discussion:

Returns list of all items in urlfilter.block/allow

urlfilter.test(string url)
Tests url against urlfilter if it would be blocked or not. Should be accessible only from injected script as it would be often domain specific.

urlfilter.(block|allow).clear() and urlfilter.clear()
Clear all items in "block", "allow" or in both lists.
04.09.2012 14:09
wtf, publish that anti-stack extension like its yesterday.
04.09.2012 14:09

Originally posted by DoTheEvo:

wtf, publish that anti-stack extension like its yesterday.

What do you mean? I'm not going to publish it to the addon site. If you want to try it, here is a link:
27.07.2012 21:07
I know my screen shot suggestion was implemented. I think the really needed features will be overlooked out of security fear.
27.07.2012 21:07

Originally posted by toyotabedzrock:

I think the really needed features will be overlooked out of security fear.

What features? Any examples? :)
27.07.2012 00:07
I'll start with something I have already proposed on

1 - "tab" property on a message event object.
There is currently no 100% way to determine what tab send a message. The "tab" property would solve it.
-> bg process
opera.extension.onmessage = function(e) {;

2 - "unstack" method for TabGroup.
I have create and published the "anti-stacker" extension on Twitter. It was quite hard to properly unstack a new stack because there is no unstack method on tab group object.

3 - preventDefault in tabgroups.oncreate event
Even better than unstacking a newly created stack would be not to allowed it to be even created. It could work like this:
opera.extension.tabGroups.oncreate = function(e) {
The oncreate event already exists, so it is only about the preventDefault do its job (which is currently not).