Add-ons/Reviewers/MiscCannedResponses: Difference between revisions
Jump to navigation
Jump to search
m (Mutation events) |
|||
Line 33: | Line 33: | ||
== 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 should consider using ctypes rather than binary components if at all possible. Libraries loaded via ctypes do no need to be recompiled for each Gecko release, and often times stub libraries can be avoided altogether when a C linkage API is already available for the functionality that you need.</pre> | <pre style="white-space:pre-wrap;">P.S. You should consider using ctypes rather than binary components if at all possible. Libraries loaded via ctypes do no need to be recompiled for each Gecko release, and often times stub libraries can be avoided altogether when a C linkage API is already available for the functionality that you need.</pre> | ||
== Mutation events == | |||
<pre style="white-space:pre-wrap;">DOM mutation events profoundly degrade performance, and that degradation is not reversed by removing the listeners. We can't allow mutation listeners except when they're absolutely necessary, and never for the top-level browser document. | |||
Please see https://developer.mozilla.org/en/XUL_School/Appendix_F:_Monitoring_DOM_changes for more information.</pre> | |||
== Approval Notes == | == Approval Notes == |
Revision as of 12:48, 5 February 2013
This is a bit of a clipboard for the most active editors that need access to some not-very-frequently used canned responses.
Zombie Compartments
Your add-on keeps alive references to objects from windows or sandbox globals after those globals should have been destroyed, leading to zombie compartments and consequential memory leaks. Please see https://developer.mozilla.org/en/Zombie_Compartments#Proactive_checking_of_add-ons for more information.
For Video Downloader Add-ons
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. Thank you
Miscellaneous Quoting Issues
HTML
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] + ";");
URL Query Parameters
You need to URL encode your GET query parameters with the encodeURIComponent function so that characters like %, &, and # are not misinterpreted.
SQL Query Parameters
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
The ShortName element must have a value not longer than 16 characters.
Sticky Toolbar Buttons
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
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."
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
P.S. You should consider using ctypes rather than binary components if at all possible. Libraries loaded via ctypes do no need to be recompiled for each Gecko release, and often times stub libraries can be avoided altogether when a C linkage API is already available for the functionality that you need.
Mutation events
DOM mutation events profoundly degrade performance, and that degradation is not reversed by removing the listeners. We can't allow mutation listeners except when they're absolutely necessary, and never for the top-level browser document. Please see https://developer.mozilla.org/en/XUL_School/Appendix_F:_Monitoring_DOM_changes for more information.
Approval Notes
First Warning
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
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.