Developers › Choose Opera

Introducing Opera Extensions

October 21, 2010 · by Aleksander Aas

Extensions are one of the exciting new features in the Opera 11 alpha. Not only is it a new feature, it's also one of the most requested features from our community. Let's take a look at how they work.

How are extensions made?

All Opera extensions are based on Open Standards such as HTML, CSS and JavaScript. In reality, all extensions are .zip archives containing a index file, an XML file describing its name and some additional information about the extension, some JavaScript and its icon. It might seem a bit daunting to begin with, but if you know your HTML and JavaScript, you should be able to make your own in no time!

For more information on how to make your own extensions check out Dev.Opera!

What about performance?

Performance is, and always has been, a major focus for Opera. We will do our best to make sure the quality and performance of the extensions mechanism is as high as possible. Adding new extensions usually leaves a very small memory footprint, but the size really depends on the craftsmanship of the developer and the task at hand.

As all extensions are reviewed before they are approved in our repository, we might point out some optimization suggestions before we publish the extensions. This helps developers improve their extensions, and it helps us have a high level of quality.

We do have a few tricks to make sure we deliver the best possible experience to our users even with loads of extensions. Our take on DOM-handling is a bit different from our competitors'. In our implementation, only one DOM is maintained per tab, which is shared without duplication in memory. This allows us to have multiple scripting environments and not need multiple DOM environments. The result is a dramatic reduction in memory consumption when running multiple extensions.

Opera extensions are built with open web technologies and run via a JavaScript engine. We look forward to your feedback about them.

What about extension security?

By installing a extension, you trust the developer and his work. All extensions posted in the repository are checked, so they don't contain any harmful code or any tracking without the user's consent. In the alpha, extensions are not allowed to read from secure HTTPS tabs, although we are looking into how we can allow this without compromising security in the future. In the end, there are no guarantees when you install third-party extensions.

What does the future hold for extensions?

We do have some plans for the future of extensions in Opera. The most important thing is, of course, the auto-update system we will introduce in the beta stages of Opera 11. You should not "download" extensions; you should subscribe to them. After subscribing, your extensions will, by default, update automatically without any actions required from you. If, for some reason, you like doing this manually, we will have a option for that too.

We are also looking into how we can allow more interaction with secure sites without compromising security. Rest assured that we won't rush into something that could potentially compromise your security. Expect more news on this to follow.

Download

The Opera 11 alpha is available to download from Opera Next!

Readers' comments 19

Left under the original article, as archived.

  • IKokeThursday, October 21, 2010 9:24:22 AM

    :up:
  • NutzShellsThursday, October 21, 2010 9:36:59 AM

    "As all extensions are reviewed before they are approved in our repository,"

    iTunes apps store, anyone? :bigsmile: but that explains why there is virtually NO crash on iPhone. They have such a strict QA.

    That's said, I think this kind of 3rd party content filtering is appropriate for a browser seeking to maintain balance of extendibility and performance.

    Great thinking of Opera dev. :idea:

    Suggestion: since the approval process may take time, It's better to make the unreviewed extension available for download WITH a prior warning to user.
  • Aleksander AasThursday, October 21, 2010 9:39:33 AM

    Originally posted by NutzShells:

    Suggestion: since the approval process may take time, It's better to make the unreviewed extension available for download WITH a prior warning to user.


    Both yes and no, to test the approval system I submitted an extension before publishing this one. Let's see how long it takes before we look at other solutions :smile:
  • Artur „Jurgi” JurgawkaThursday, October 21, 2010 10:02:41 AM

    So, extensions are basically widgets + APIs? Or UserJE + APIs? This shouls help quckly develop first extensions.
  • TamilThursday, October 21, 2010 11:47:46 AM

    :up:
  • imboxThursday, October 21, 2010 1:01:15 PM

    :happy: Yay!
  • PengeThursday, October 21, 2010 5:19:38 PM

    Originally posted by Aleksander:

    In the end there are no guarantees when you install third-party extensions.


    Any plan for internal pages, M2 and IRC?
    It would be great. For example linkifier to the M2/RSS client or IRC, (or disable the opera:illegal-url page to avoid having to source mining if an user linked the http://opera,com instead of http://opera.com or etc. :lol: )

    Originally posted by Aleksander:

    After subscribing your extensions will by default update automatically without any actions required from you. If for some reason you like doing this manually we will have a option for that to.


    Awesome, but any notifer would be great. For example "x extension updated from version 1.2 to version 1.4" and maybe a link to the changelog. :smile:

    Originally posted by Aleksander:

    We are also looking into how we can allow more interaction with secure sites without compromising security.


    Hidden INI entry, that filters the inexperienced users? :bigsmile:
    A great idea from a Chrome extension (NoScripts): http://itcafe.hu/dl/upc/2010-10/61605_noscripts.png

    If the user can't set password, he/she can't use the NoScripts (that is an advanced extension).

    And also would be great if you're break the HTTPS UserJS confirmation dialog. Very annoying. If I want to disable (for example netbanking) I uncheck the checkbox that I dragged to my a toolbar.
  • Rafael LuikThursday, October 21, 2010 7:52:55 PM

    You should not "download" extensions, you should subscribe to them. After subscribing your extensions will by default update automatically without any actions required from you."

    So what about synchronizing these subscriptions through Opera Link? :smile:
  • Cutting SpoonThursday, October 21, 2010 10:56:11 PM

    Hehe, I like the way you think. Seconded.

    As to the framework itself, I would like to see who's first to cram some version of Adblock onboard (silly kids!)
  • Jσδμξ_181Friday, October 22, 2010 5:19:22 AM

    :up:
  • ₣ıđø Ðıđø™Friday, October 22, 2010 1:35:02 PM

    guys what about preparing a list of our favorite extensions?

    I begin

    1. AdBlock plus
    2. Flag (flag of country of website)
    3. coolris
    4. download video (like youtube)

    go ahead guys (let's make it a demand)
  • TZ86Friday, October 22, 2010 8:04:29 PM

    Any plans to make enabling UserJS and extensions independent of enabling JavaScript?
  • MarkLJacksonMonday, October 25, 2010 9:24:43 AM

    > "As all extensions are reviewed before
    > they are approved in our repository,"

    http://www.theregister.co.uk/2010/10/18/wac_grows/

    How ironic.

    > iTunes apps store, anyone? but that explains why there is
    > virtually NO crash on iPhone. They have such a strict QA.

    Assumes facts not in evidence, plus attempts to link disparate items that have no relation to each other.

    Security is more than just crashes.

    I won't use an iPhone, as I don't need the Nanny (Steve Jobs) to tell me what I can have or not have.

    Isn't this nothing but an extension of User Javascript?
  • prd3Monday, October 25, 2010 12:08:03 PM

    Originally posted by MarkLJackson:

    How ironic.


    What is ironic, how?

    Isn't this nothing but an extension of User Javascript?


    User JS has access to tabs?
  • PengeMonday, October 25, 2010 12:53:40 PM

    Originally posted by prd3:

    User JS has access to tabs?


    To the title and the favicon. :smile:
    But we really need the HTML5 FileWriter API and access to the opera:config settings.
  • prd3Monday, October 25, 2010 1:53:22 PM

    Originally posted by Penge4:

    To the title and the favicon.


    Title and favicon belong to the page (the title is in the page code, and the favicon is stored on the server, and referred to in the page code (or fetched from a standard location), not to the tab.
  • Cutting SpoonMonday, October 25, 2010 4:43:07 PM

    Originally posted by MarkLJackson:

    Security is more than just crashes.


    In fact Opera states that crashes are almost never a security issue, only stability. Note that Opera will allow you to install apps/extensions from any source - but you will be warned if the source is not registered in Opera's trusted providers list. No walled garden here.

    As to the function of extensions, they already bundle custom userjs with custom css and html (similar to an application widget). The key difference is that extensions dock to the UI and can alter the actual browser chrome. Possibly in the near future (as more API calls are approved and integrated), even some really crazy Firefox-style extensions will be possible.
  • Cutting SpoonMonday, November 1, 2010 3:35:35 PM

    ^^-KILL IT
  • Aleksander AasMonday, November 8, 2010 10:04:24 AM

    Updated slightly to clarify a bad choice of words :smile:

About this article

Published inChoose Opera
DateOctober 21, 2010
AuthorAleksander Aas
TagsOpera 11 alpha, extensions, alpha
OriginalInternet Archive