You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Components.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ To get the latest releases, use the `download` links below for recent releases.
47
47
<li>third party documentation</li>
48
48
<li markdown="span">{{chromeUrl}} to configure via <a href="SettingsInterface">SettingsInterface</a></li><li>license (if other than GNU LGPL 3)</li>
49
49
</ul>
50
-
<span markdown="span">{{chromeUrl}}s only work after you install the add-on in Firefox</span>
50
+
<span markdown="span">{{chromeUrl}}s only work after you install the component in Firefox</span>
51
51
</td>
52
52
<td><strong>Other</strong></td>
53
53
</tr>
@@ -306,4 +306,4 @@ To get the latest releases, use the `download` links below for recent releases.
306
306
</table>
307
307
308
308
# Cutting edge
309
-
If you're eager to use the development versions, apply [InstallFromSource](InstallFromSource). Also, installing the add-ons that way may be faster than downloading them one by one. Additionally, the source contains [PackagedScripts](PackagedScripts), which serve as active documentation. If you use a [GIT client](http://git-scm.com/downloads), it gives you easy access to future development versions.
309
+
If you're eager to use the development versions, apply [InstallFromSource](InstallFromSource). That way may be faster than downloading components one by one. Additionally, the source contains [PackagedScripts](PackagedScripts), which serve as active documentation. If you use a [GIT client](http://git-scm.com/downloads), it gives you easy access to future development versions.
For the easiest download get all add-ons of [SeLite Development Tools collection](https://addons.mozilla.org/en-GB/firefox/collections/peter-kehl/selite-development-tools/). Otherwise install
24
+
For the easiest download get all components of [SeLite Development Tools collection](https://addons.mozilla.org/en-GB/firefox/collections/peter-kehl/selite-development-tools/). Otherwise install
Copy file name to clipboardExpand all lines: DocumentationStandard.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -80,10 +80,10 @@ Don't use [Kramdown-specific header IDs](http://kramdown.gettalong.org/syntax.ht
80
80
## Generating raw links
81
81
GitHub doesn't serve raw versions of most file types with their MIME, except for images. So we use [htmlpreview.github.io](http://htmlpreview.github.io) for `.html` files. For any other files, e.g. `.xml, .xsl` or `.js`, use [rawgit.com](http://rawgit.com).
82
82
83
-
In detail: Use _htmlpreview.github.io_ rather than _rawgit.com_ for `.html`, because if you pass a generic Github URL (rather than a commit hash or a tag), _htmlpreview.github.io_ fetches the latest commit of that file. So we don't have to update those _htmlpreview.github.io_ links. However, production _cdn.rawgit.com_ caches the files. So if you change e.g. `add-on's-name/src/chrome/content/reference.xml` or `extension-sequencer/src/chrome/content/selenese_reference_to_html.xsl`, then update its _cdn.rawgit.com_ URLs to use the new commit hash or tag.
83
+
In detail: Use _htmlpreview.github.io_ rather than _rawgit.com_ for `.html`, because if you pass a generic Github URL (rather than a commit hash or a tag), _htmlpreview.github.io_ fetches the latest commit of that file. Therefore we don't have to update those _htmlpreview.github.io_ links. However, production _cdn.rawgit.com_ caches the files. If you change e.g. `component's-name/src/chrome/content/reference.xml` or `extension-sequencer/src/chrome/content/selenese_reference_to_html.xsl`, then update its _cdn.rawgit.com_ URLs to use the new commit hash or tag.
84
84
85
85
### Updating links to cdn.rawgit.com
86
-
Navigate to [github.com/selite/selite](https://github.com/selite/selite) > 'latest commit XYZ...' link near middle top > 'Browse files' button near the right top > locate the file > 'Raw' button. The URL will start with _https://raw.githubusercontent.com/selite/selite/XYZ.../\<add-on's-name\>/src/chrome/..._ Then append the path part of that URL to _https://cdn.rawgit.com/_, i.e. _https://cdn.rawgit.com/selite/selite/XYZ.../\<add-on's-name\>/src/chrome/..._
86
+
Navigate to [github.com/selite/selite](https://github.com/selite/selite) > 'latest commit XYZ...' link near middle top > 'Browse files' button near the right top > locate the file > 'Raw' button. The URL will start with _https://raw.githubusercontent.com/selite/selite/XYZ.../\<component's-name\>/src/chrome/..._ Then append the path part of that URL to _https://cdn.rawgit.com/_, i.e. _https://cdn.rawgit.com/selite/selite/XYZ.../\<component's-name\>/src/chrome/..._
Copy file name to clipboardExpand all lines: ExitConfirmationChecker.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ layout: default
6
6
{:toc}
7
7
8
8
# Status #
9
-
This add-on is a work in progress. Currently it works only for Selenese commands `type` and `typeRandom`.
9
+
This component is a work in progress. Currently it works only for Selenese commands `type` and `typeRandom`.
10
10
11
11
# Overview #
12
12
Modern web pages assist you to prevent unintended loss of the data that you entered. When you edit a form but you don't submit it and then you try to close the tab (or the window or the browser), or you try to navigate away from the screen (following links or typing a new URL), the page asks you to confirm your intention. In Firefox it says 'This page is asking you to confirm that you want to leave - data you have entered may not be saved.' and it gives you a choice of two buttons: 'Stay on Page' and 'Leave Page'. (You won't be able to close the tab/window or even Firefox unless you click at one of those buttons, or unless you close Firefox forcibly). The application asks for that confirmation in a handler for [window.onbeforeunload()](https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onbeforeunload).
@@ -18,7 +18,7 @@ Also, say you have an application that attracts your attention (e.g. an alert fr
18
18
ExitConfirmationChecker helps your [scripts][script] to validate that the application asks for this confirmation exactly when it should. (It doesn't add any Selenese commands.)
19
19
20
20
# What it does for you #
21
-
This add-on suppresses the confirmation dialog activated from `window.onbeforeunload()`. If that's all you need, use mode `ignored`. The other two active modes `includeRevertedChanges` and `skipRevertedChanges` also verify (or assert) whether the confirmation popup would show up (or would not show up) as it should.
21
+
This component suppresses the confirmation dialog activated from `window.onbeforeunload()`. If that's all you need, use mode `ignored`. The other two active modes `includeRevertedChanges` and `skipRevertedChanges` also verify (or assert) whether the confirmation popup would show up (or would not show up) as it should.
22
22
23
23
## Out-of-the-box ##
24
24
Out-of-the-box ExitConfirmationChecker only handles
Copy file name to clipboardExpand all lines: InstallFramework.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ layout: default
8
8
# Scope and downloads #
9
9
This assumes that you've set up your web application and that there is an SeLite framework for it. You'll need packages mentioned at [Overview](./) > [Install](./#install). However, if you haven't downloaded SeLite [Components](Components) yet, getting them from source (which you'll need anyway) may be faster.
10
10
11
-
Regardless of how you install [Components](Components), download SeLite source to get the frameworks: follow [InstallFromSource](InstallFromSource) > [Get the source](InstallFromSource#get-the-source). If you're installing add-ons from source, follow [Install add-ons from source](InstallFromSource#install-add-ons-from-source).
11
+
Regardless of how you install [Components](Components), download SeLite source to get the frameworks: follow [InstallFromSource](InstallFromSource) > [Get the source](InstallFromSource#get-the-source). If you're installing components from source, follow [Install components from source](InstallFromSource#install-components-from-source).
12
12
13
13
If your web application uses SQLite, you'll get full SeLite functionality and smoother script data life cycle. You'll be able to copy/restore {{ appDB }}, {{ scriptDB }} and {{ vanillaDB}} from within SeLite (via [SettingsInterface](SettingsInterface)). Otherwise you need to apply [DataImport](DataImport).
(If you've already installed any SeLite add-ons from downloads, uninstall them and restart Firefox. Only then apply the next steps.) Run `SeLite\setup_proxies.bat` and `SeLBlocksGlobal\setup_proxy.bat` (or `SeLite/setup_proxies.sh` and `SeLBlocksGlobal/setup_proxy.sh` on Mac OS/Linux). You can provide a Firefox profile name as a parameter, otherwise it uses `default` profile. After setting up proxy files, start Firefox (with that profile).
23
+
# Install components from source #
24
+
(If you've already installed any SeLite components from downloads, uninstall them and restart Firefox. Only then apply the next steps.) Run `SeLite\setup_proxies.bat` and `SeLBlocksGlobal\setup_proxy.bat` (or `SeLite/setup_proxies.sh` and `SeLBlocksGlobal/setup_proxy.sh` on Mac OS/Linux). You can provide a Firefox profile name as a parameter, otherwise it uses `default` profile. After setting up proxy files, start Firefox (with that profile).
25
25
26
-
On Windows (and probably on Mac OS, too):
27
-
28
-
* you may need to accept add-ons
29
-
* verify that all SeLite add-ons are enabled at Firefox menu > Tools > Add-ons > Extensions.
26
+
You may need to accept components (add-ons). Verify that all SeLite components are enabled at Firefox menu > Tools > Add-ons > Extensions.
30
27
31
28
Visit Firefox chrome URL _about:config_. Find or create a preference with name `xpinstall.signatures.required` and set it to `false`. (See [MDN Signing and distributing your add-on](https://developer.mozilla.org/en-US/Add-ons/Distribution)). <!-- Also see https://support.mozilla.org/en-US/kb/add-on-signing-in-firefox?as=u&utm_source=inproduct and https://wiki.mozilla.org/Add-ons/Extension_Signing -->
32
29
33
30
Restart Firefox.
34
31
35
-
Add-ons set up this way won't receive any updates. You'll need to run `GIT pull` (or download a new `.zip` file and extract it at the same location).
32
+
Components set up this way won't receive any updates. You'll need to run `GIT pull` (or download a new `.zip` file and extract it at the same location).
36
33
37
34
# Install Selenium IDE from source #
38
35
You'd need this only for debugging Selenium IDE, or custom add-ons that override it.
Copy file name to clipboardExpand all lines: JavascriptComplex.md
+1-13
Original file line number
Diff line number
Diff line change
@@ -109,19 +109,7 @@ However, that would flood the client's namespace with no obvious benefit. It wou
109
109
### Dependent Javascript code modules ###
110
110
A Javascript code module can depend on one or more other code modules. If the dependent functionality is optional, wrap any respective code, e.g. calls to `Components.utils.import()`, in a `try{..}` statement, so that clients can still use the essential functionality even without the optional module.
111
111
112
-
Also, two or more Javascript code modules can depend on each other cyclically. That can be required (for essential functionality), each one requiring the other(s), or optional (for some functionality only). Make sure a code module defines `EXPORTED_SYMBOLS` and any symbols required by its cyclic dependent code module(s) before it loads those dependants via `Components.utils.import()`. See sources of `SeLiteSettings` and `SeLiteData.Storage`. TODO links.
113
-
114
-
## CommonJS modules in the future ##
115
-
This is a new approach to Javascript modules - [CommonJS](http://wiki.commonjs.org/wiki/Modules/1.1). Firefox offers it for add-ons, but it documented it only in December 2013 (at [Module structure of the SDK](https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Module_structure_of_the_SDK)).
116
-
117
-
SeLite depends on Firefox-specific Javascript features and on Selenium IDE, which is for Firefox only. Due to high number of existing user extensions, Firefox will most likely support its classic way of code modules for years. So there is no urgent need to migrate SeLite to CommonJS.
118
-
119
-
In order to move towards CommonJS we'd need to:
120
-
121
-
* migrate the documentation to use JSDoc 3 [@module tag](http://usejsdoc.org/tags-module.html) (more at [JSDoc CommonJS support](http://usejsdoc.org/howto-commonjs-modules.html)). However, JSDoc 3 is not supported by [NetBeans 7.3](https://netbeans.org/kb/73/ide/javascript-editor.html#jsdoc_support) (not sure about newer versions). Until then the JSDoc documentation would not show up in NetBeans.
122
-
* have NetBeans code navigation to recognise CommonJS notation.
123
-
124
-
The migration may not change [ExtensionSequencer](ExtensionSequencer) mechanism, since that resolves the order of activating [extensions of Selenium IDE][extension of Selenium IDE], and not the order of loading Javascript code modules.
112
+
Also, two or more Javascript code modules can depend on each other cyclically. That can be required (for essential functionality), each one requiring the other(s), or optional (for some functionality only). Make sure a code module defines `EXPORTED_SYMBOLS` and any symbols required by its cyclic dependent code module(s) before it loads those dependants via `Components.utils.import()`. See sources of `SeLiteSettings` and `SeLiteData.Storage`. <!--TODO links.-->
125
113
126
114
# Class inheritance #
127
115
There are many ways of class inheritance in Javascript. Follow [Mozilla way](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#Inheritance) with `Object.create()`. E.g.:
Copy file name to clipboardExpand all lines: JavascriptEssential.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ If you've used Javascript only for web pages, you’ll find out some new terms a
26
26
Privileged Javascript controls (or extends or overrides) Firefox functionality. It can only come from {{chromeUrl}}s or _file://_ URLs. That is why [Bootstrap](Bootstrap) and [SettingsInterface](SettingsInterface) (and [SettingsAPI](SettingsAPI)) can't load files over http (neither https). _chrome://_ URLs are governed by extension's `chrome.manifest` (which maps a custom _chrome://xyz/_ URL prefix to a location within the extension).
27
27
28
28
## Scope ##
29
-
Javascript for web applications has only two levels of scope: _global_ and _local_ (within functions). On the other hand, Firefox avoids conflicts between add-ons by running them with separate global scopes. However, extensions can share Javascript files without mixing their scopes: they can specify global scope used in those files. (The code from such files is still shared, even though global scope for each of its usages may be different. See {{navLoadingJavascriptFiles}}.) See also [Core scope].
29
+
Javascript for web applications has only two levels of scope: _global_ and _local_ (within functions). On the other hand, Firefox avoids conflicts between components (add-ons) by running them with separate global scopes. However, extensions can share Javascript files without mixing their scopes: they can specify global scope used in those files. (The code from such files is still shared, even though global scope for each of its usages may be different. See {{navLoadingJavascriptFiles}}.) See also [Core scope].
30
30
31
31
## Prevent name conflicts ##
32
32
If you add custom functionality at [Core scope], do it only for new Selenese commands or for use in parameters of Selenese commands. The later should be grouped in an object with a name unlikely to cause conflicts. Such object serves as a namespace. You can have multi-level namespace objects, or group classes and functions in a Java package-like notation.
Copy file name to clipboardExpand all lines: PackagedScripts.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@ Follow [InstallFromSource](InstallFromSource) for the easiest way to get SeLite
17
17
18
18
To make navigation across files easy, here's a convention: filenames of suites end with `_suite.html`, and cases are in files that have names ending with `_case.html`. If there are several shared cases, they can be in `shared_cases/` subfolder.
19
19
20
-
Scripts have {{navValuesManifests}} for any [Settings](Settings). If the same add-on has multiple [suites][suite] that need different configuration, such [suites][suite] and their {{valuesManifest}}s are in subfolders.
20
+
Scripts have {{navValuesManifests}} for any [Settings](Settings). If the same component (add-on) has multiple [suites][suite] that need different configuration, such [suites][suite] and their {{valuesManifest}}s are in subfolders.
21
21
22
-
Selenium IDE doesn't indicate the current [suite]'s folder in the GUI. Therefore make suite file names clear. That helps especially when having similar suites in different folders (because of different configurations). SeLite own suites have file names in format `add-on-name_subfolder_suite.html` or `add-on-name_subfolder_subfolder_suite.html`.
22
+
Selenium IDE doesn't indicate the current [suite]'s folder in the GUI. Therefore make suite file names clear. That helps especially when having similar suites in different folders (because of different configurations). SeLite own suites have file names in format `component-name_subfolder_suite.html` or `component-name_subfolder_subfolder_suite.html`.
23
23
24
24
## Navigating to local forms/pages
25
25
[Cases][case] of packaged scripts must refer to their local `.html` forms/pages by _file://_-based URLs relative to location of the [suite]. Do not use URLs should not be relative to the [case], because the same case can be shared by multiple suites.
@@ -53,7 +53,7 @@ These validate functionality
53
53
* which would be awkward to test in Selenese, or
54
54
* which is not Selenese-specific, and while it can (and should) be tested from Selenese, it should be tested without Selenium IDE, too.
55
55
56
-
There's no extra installation - they are a part of their add-ons (in folders `javascript-tests`). You can invoke them offline and directly from Firefox (without starting Selenium IDE) through {{chromeUrl}}s listed at [Components](Components). However, you normally don't need to run them separately, since they get invoked from packaged Selenese scripts.
56
+
There's no extra installation - they come as a part of their components (in folders `javascript-tests`). You can invoke them offline and directly from Firefox (without starting Selenium IDE) through {{chromeUrl}}s listed at [Components](Components). However, you normally don't need to run them separately, since they get invoked from packaged Selenese scripts.
57
57
58
58
# Shell tests #
59
59
These are invoked from shell (i.e. `cmd` on Windows). They only exist for [ExtensionSequencer](ExtensionSequencer) > [Shell tests](ExtensionSequencer#shell-tests).
0 commit comments