<commit_before># Opera Extensions JavaScript API Compatibility Layer (operaextensions.js)

This library provides a compatibility Layer containing the JavaScript Opera Extension APIs that have been provided in Opera <= version 12.

<font color="red">This library is intended for use in the [oex2nex convertor tool](https://github.com/operasoftware/oex2nex). If you want to convert an existing Opera oex extension into an Opera 15+ nex extension then you should download the [oex2nex convertor tool](https://github.com/operasoftware/oex2nex) directly rather than using this library standalone.</font>

## Supported Opera Extension APIs

This library adds support to Chromium for the following Opera oex extension APIs:

- [Widget object](http://dev.opera.com/articles/view/extensions-api-widget-object/)
- [Windows and Tabs API](http://dev.opera.com/articles/view/extensions-api-windows-tabs)
- [Messaging API](http://dev.opera.com/articles/view/extensions-api-messaging)
- [Button and Badge API](http://dev.opera.com/articles/view/extensions-api-browser-toolbar)
- [Popup API](http://dev.opera.com/articles/view/extensions-api-popup)
- [Resource Loader API](http://dev.opera.com/articles/view/extensions-api-resourceloader)
- [Screenshot API](http://dev.opera.com/articles/view/extensions-api-screenshot)
- [Injected Scripts API](http://dev.opera.com/articles/view/extensions-api-injected-scripts) *
- [URL Filter API](http://dev.opera.com/articles/view/extensions-api-urlfilter)
- [Context Menus API](http://dev.opera.com/articles/view/extensions-api-contextmenu)
- [Speed Dial API](http://dev.opera.com/articles/view/extensions-api-speeddial)

\* minus support for [addEventListener](http://dev.opera.com/articles/view/extensions-api-opera-addEventListener) and [removeEventListener](http://dev.opera.com/articles/view/extensions-api-opera-removeEventListener) UserJS events.

## Download this library

You can download a [ZIP](https://github.com/operasoftware/operaextensions.js/zipball/master) or [TAR.GZ](https://github.com/operasoftware/operaextensions.js/tarball/master) file containing all the operaextensions.js library code or you can clone this repo via Git as follows:

    git clone git://github.com/operasoftware/operaextensions.js.git

## Building the libraries

Using tools provided in this library we can build the compatibility library for the different contexts in which it can be used.

The latest builds are provided by default in the `/build` directory of this repository (see: [the Opera Extension Compatibility Libraries](#the-opera-extension-compatibility-layer-libraries) section below). If, however, you would like to build these files yourself then the following instructions are for you.

The build tools included in this library have the following dependencies that first need to be installed:

* Python >= version 1.6
* Java

To build the library from source change directories to the folder in which you cloned this repository and execute the follow code:

    cd ./tools
    ./build.sh

(alternatively, we can replace 'build.sh' above with 'build.bat' if we are running on Windows).

## The Opera Extension Compatibility Layer libraries

The following six final build files are provided in this repository:<commit_msg>Fix minor editorial issue in README<commit_after># Opera Extensions JavaScript API Compatibility Layer (operaextensions.js)

This library provides a compatibility Layer containing the JavaScript Opera Extension APIs that have been provided in Opera <= version 12.

<font color="red">This library is intended for use in the [oex2nex convertor tool](https://github.com/operasoftware/oex2nex). If you want to convert an existing Opera oex extension into an Opera 15+ nex extension then you should download the [oex2nex convertor tool](https://github.com/operasoftware/oex2nex) directly rather than using this library standalone.</font>

## Supported Opera Extension APIs

This library adds support to Chromium for the following Opera oex extension APIs:

- [Widget object](http://dev.opera.com/articles/view/extensions-api-widget-object/)
- [Windows and Tabs API](http://dev.opera.com/articles/view/extensions-api-windows-tabs)
- [Messaging API](http://dev.opera.com/articles/view/extensions-api-messaging)
- [Button and Badge API](http://dev.opera.com/articles/view/extensions-api-browser-toolbar)
- [Popup API](http://dev.opera.com/articles/view/extensions-api-popup)
- [Resource Loader API](http://dev.opera.com/articles/view/extensions-api-resourceloader)
- [Screenshot API](http://dev.opera.com/articles/view/extensions-api-screenshot)
- [Injected Scripts API](http://dev.opera.com/articles/view/extensions-api-injected-scripts) *
- [URL Filter API](http://dev.opera.com/articles/view/extensions-api-urlfilter)
- [Context Menus API](http://dev.opera.com/articles/view/extensions-api-contextmenu)
- [Speed Dial API](http://dev.opera.com/articles/view/extensions-api-speeddial)

\* minus support for [addEventListener](http://dev.opera.com/articles/view/extensions-api-opera-addEventListener) and [removeEventListener](http://dev.opera.com/articles/view/extensions-api-opera-removeEventListener) UserJS events.

## Download this library

You can download a [ZIP](https://github.com/operasoftware/operaextensions.js/zipball/master) or [TAR.GZ](https://github.com/operasoftware/operaextensions.js/tarball/master) file containing all the operaextensions.js library code or you can clone this repo via Git as follows:

    git clone git://github.com/operasoftware/operaextensions.js.git

## Building the libraries

Using utilities provided in this library we can build the compatibility library for the different contexts in which it can be used.

The latest builds are provided by default in the `/build` directory of this repository (see: [the Opera Extension Compatibility Libraries](#the-opera-extension-compatibility-layer-libraries) section below). If, however, you would like to build these files yourself then the following instructions are for you.

The build utilities included in this library have the following dependencies that first need to be installed:

* Python >= version 1.6
* Java

To build the library from source change directories to the folder in which you cloned this repository and execute the follow code:

    cd ./utils
    ./build.sh

(alternatively, we can replace 'build.sh' above with 'build.bat' if we are running on Windows).

## The Opera Extension Compatibility Layer libraries

The following six final build files are provided in this repository:
{'fraction_non_alphanumeric': 0.10260336906584992, 'fraction_numerical': 0.0030627871362940277, 'mean_word_length': 4.969835466179159, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2381986', 'n_tokens_mistral': 1857, 'n_tokens_neox': 1778, 'n_words': 600}