Account confirmers, Confirmed users
126
edits
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
== For Video Downloader Add-ons == | == For Video Downloader Add-ons == | ||
< | <pre style="white-space:pre-wrap;">We appreciate your submission, but there are already several add-ons listed on AMO with near identical functionality as yours. Having so many similar add-ons listed isn't beneficial to our users, so we have only granted your entry preliminary approval for now. | ||
We appreciate your submission, but there are already several add-ons listed on AMO with near identical functionality as yours. Having so many similar add-ons listed isn't beneficial to our users, so we have only granted your entry preliminary approval for now. | |||
If you plan to significantly differentiate your add-on from the others, we encourage you to continue working on it and submit again once you have produced a more unique offering. | If you plan to significantly differentiate your add-on from the others, we encourage you to continue working on it and submit again once you have produced a more unique offering. | ||
Thank you | Thank you</pre> | ||
</ | |||
== Miscellaneous Quoting Issues == | == Miscellaneous Quoting Issues == | ||
=== HTML === | === HTML === | ||
< | <pre style="white-space:pre-wrap;">Your add-on creates DOM nodes with raw HTML strings containing unsanitized string data. While the recommended method of creating DOM nodes is to use JavaScript DOM building methods such as createElement and appendChild (see https://developer.mozilla.org/en/How_to_create_a_DOM_tree) or one of the libraries which simplify using this method, creating content via strings is allowed if non-static data is sanitized with a function such as the following: | ||
function escapeHTML(str) str.replace(/[&"<>]/g, | |||
function (m) "&" + ({ "&": "amp", '"': "quot", "<": "lt", ">": "gt" })[m] + ";");</pre> | |||
=== URL Query Parameters === | === URL Query Parameters === | ||
< | <pre style="white-space:pre-wrap;">You need to URL encode your GET query parameters with the encodeURIComponent function so that characters like %, &, and # are not misinterpreted.</pre> | ||
You need to URL encode your GET query parameters with the encodeURIComponent function so that characters like %, &, and # are not misinterpreted. | |||
</ | |||
=== SQL Query Parameters === | === SQL Query Parameters === | ||
< | <pre style="white-space:pre-wrap;">Splicing unquoted strings into SQL statements is always error prone and dangerous when that data is from a remote source. Please use parameter placeholders instead: https://developer.mozilla.org/en/storage#section_8</pre> | ||
Splicing unquoted strings into SQL statements is always error prone and dangerous when that data is from a remote source. Please use parameter placeholders instead: https://developer.mozilla.org/en/storage#section_8 | |||
</ | |||
== ShortName Values >16 Characters == | == ShortName Values >16 Characters == | ||
< | <pre style="white-space:pre-wrap;">The ShortName element must have a value not longer than 16 characters.</pre> | ||
The ShortName element must have a value not longer than 16 characters. | |||
</ | |||
== Sticky Toolbar Buttons == | == Sticky Toolbar Buttons == | ||
< | <pre style="white-space:pre-wrap;">Your add-on makes it impossible for a user to permanently remove its toolbar button, which we can't allow. Inserting your toolbar button at first run is fine, and recommended, but doing so at every startup or making it impossible to move or remove it is not.</pre> | ||
Your add-on makes it impossible for a user to permanently remove its toolbar button, which we can't allow. Inserting your toolbar button at first run is fine, and recommended, but doing so at every startup or making it impossible to move or remove it is not. | |||
</ | |||
== setTimeout/setInterval == | == setTimeout/setInterval == | ||
< | <pre style="white-space:pre-wrap;">Your add-on calls the setTimeout or setInterval functions with string rather than function arguments, which is normally not allowed. For instance, setTimeout('object.doStuff()',1) should be written as setTimeout(function () { object.doStuff() },1) instead.</pre> | ||
Your add-on calls the setTimeout or setInterval functions with string rather than function arguments, which is normally not allowed. For instance, setTimeout('object.doStuff()',1) should be written as setTimeout(function () { object.doStuff() },1) instead. | |||
</ | |||
== Preferences not in "extensions." == | == Preferences not in "extensions." == | ||
< | <pre style="white-space:pre-wrap;">Extension preferences should be stored in the "extensions." branch. So rather than "myextension.abcpref" it should "extensions.myextension.abcpref".</pre> | ||
Extension preferences should be stored in the "extensions." branch. So rather than "myextension.abcpref" it should "extensions.myextension.abcpref". | |||
</ | |||
== Use ctypes or NPAPI plugins rather than XPCOM == | == Use ctypes or NPAPI plugins rather than XPCOM == | ||
< | <pre style="white-space:pre-wrap;">p.s. you might want to investigate if using ctypes or rewriting as a NPAPI plugin would work for your addon instead. <br>If so then the binaries wouldn't need recompiling for each Firefox release. | ||
NPAPI: | ctypes: | ||
https://developer.mozilla.org/en/Plugins</pre | http://adblockplus.org/blog/binary-xpcom-components-are-dead-js-ctypes-is-the-way-to-go | ||
NPAPI: | |||
https://developer.mozilla.org/en/Plugins</pre> | |||
== Approval Notes == | == Approval Notes == | ||
=== First Warning === | === First Warning === | ||
< | <pre style="white-space:pre-wrap;">Please do _NOT_ copy Version Notes into Approval Notes, as we can see both in the queue. Approval notes are optional and only necessary if there are any exceptions you need to communicate to us reviewers.</pre> | ||
Please do _NOT_ copy Version Notes into Approval Notes, as we can see both in the queue. Approval notes are optional and only necessary if there are any exceptions you need to communicate to us reviewers. | |||
</ | |||
=== Repeated Warnings === | === Repeated Warnings === | ||
< | <pre style="white-space:pre-wrap;">If you chose to ignore any of our requests (e.g. because you needed to quickly release a bugfix) please use the Approval Notes fields to supply us with more information.</pre> |