Search completed in 1.54 seconds.
JS_ForgetLocalRoot
syntax void js_
forgetlocalroot(jscontext *cx, void *thing); name type description cx jscontext * pointer to the context in which the caller is running.
...in case a native hook allocates many objects or other gc-things, but the native protects some of those gc-things by storing them as property values in an object that is itself protected, the hook can call js_
forgetlocalroot to free the local root automatically pushed for the now-protected gc-thing.
... (here the term gc-thing refers to any value that is subject to garbage collection: a jsobject, jsstring, jsfunction, or jsdouble.) js_
forgetlocalroot works on any gc-thing allocated in the current local root scope, but it's more time-efficient when called on references to more recently created gc-things.
...And 2 more matches
JS_FORGET_STRING_FLATNESS
syntax static moz_always_inline jsstring * js_
forget_string_flatness(jsflatstring *fstr) { return (jsstring *)fstr; } name type description fstr jsflatstring * a string to convert description js_
forget_string_flatness converts jsflatstring * to jsstring *.
... see also mxr id search for js_
forget_string_flatness jsflatstring jsstring bug 609440 ...
Client-side storage - Learn web development
add the following lines to your javascript file: // create needed constants const rememberdiv = document.queryselector('.remember'); const
forgetdiv = document.queryselector('.
forget'); const form = document.queryselector('form'); const nameinput = document.queryselector('#entername'); const submitbtn = document.queryselector('#submitname'); const
forgetbtn = document.queryselector('#
forgetname'); const h1 = document.queryselector('h1'); const personalgreeting = document.queryselector('.personal-greeting'); next up, we need to inclu...
...on when the 'say hello' button is clicked submitbtn.addeventlistener('click', function() { // store the entered name in web storage localstorage.setitem('name', nameinput.value); // run namedisplaycheck() to sort out displaying the // personalized greetings and updating the form display namedisplaycheck(); }); at this point we also need an event handler to run a function when the "
forget" button is clicked — this is only displayed after the "say hello" button has been clicked (the two form states toggle back and forth).
...add this to the bottom: // run function when the '
forget' button is clicked
forgetbtn.addeventlistener('click', function() { // remove the stored name from web storage localstorage.removeitem('name'); // run namedisplaycheck() to sort out displaying the // generic greeting again and updating the form display namedisplaycheck(); }); it is now time to define the namedisplaycheck() function itself.
...And 3 more matches
nsISHEntry
nsdocshelleditordataptr
forgeteditordata(); violates the xpcom interface guidelines nsicontentviewer getanycontentviewer(out nsishentry ownerentry); void getscrollposition(out long x, out long y); void getviewerbounds(in nsintrect bounds); native code only!
... title, in nsiinputstream inputstream, in nsilayouthistorystate layouthistorystate, in nsisupports cachekey, in acstring contenttype, in nsisupports owner, in unsigned long long docshellid, in boolean dynamiccreation ); parameters uri title inputstream layouthistorystate cachekey contenttype owner docshellid dynamiccreation violates the xpcom interface guidelines
forgeteditordata() gets the owning pointer to the editor data assosicated with this shistory entry.
... this
forgets its pointer, so free it when you're done.
...And 2 more matches
Common causes of memory leaks in extensions - Extensions
for example, in xul overlay code: var contentwindows = []; function inbrowserxuloverlay(contentwindow) { //
forgetting or failing to pop the content window thing again contentwindows.push(contentwindow); } this will keep the content window compartments alive until the browser window is closed.
... for example: var windows = []; function injavascriptcodemodule(window) { //
forgetting or failing to pop the window again windows.push(window); } both of these cases can happen if you
forget to declare local variables with var or let, which means they end up belonging to the global scope.
...
forgetting to unregister observers holding onto event observers for too long is another problem.
...
forgetting to unload javascript modules in restartless add-ons another common cause of leaks is
forgetting to unload javascript code modules in bootstrapped add-ons.
Extending a Protocol
return echopromise.
forget(); } ok, let's ./mach build and make sure everything is compiling ok.
... implementing methods on windowglobalparent.cpp open up dom/ipc/windowglobalparent.cpp and let's implement: allocpechoparent() deallocpechoparent(pechoparent* aactor) so, let's add: already_addrefed<echoparent> windowglobalparent::allocpechoparent() { puts("windowglobalparent::allocpechoparent was called"); refptr<echoparent> actor = new echoparent(); return actor.
forget(); } bool windowglobalparent::deallocpechoparent( pechoparent* aactor) { refptr actor = dont_addref(static_cast(aactor)); return true; } the "puts()" there will help us see what's going on once we get things going.
... open up dom/ipc/windowglobalchild.cpp and let's implement: allocpechochild() deallocpechochild(pechochild* aactor) already_addrefed<echochild> windowglobalchild::allocpechochild() { refptr<echochild> actor = new echochild(); return actor.
forget(); } bool windowglobalchild::deallocpechochild(pechochild* actor) { delete actor; return true; } and now finally, let's implement echochild.cpp and echoparent.cpp.
..."); // send the string back out a utf16 echopromise->mayberesolve(ns_convertutf8toutf16(returnedstring)); }, // reject lambda [echopromise](mozilla::ipc::responserejectreason&& areason) { puts("[navigator.cpp] boo, something went wrong!"); echopromise->maybereject(ns_error_unexpected); }); return echopromise.
forget(); } now, ./mach build; ./mach run.
imgIRequest
inherits from: nsirequest last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview void canceland
forgetobserver(in nsresult astatus); imgirequest clone(in imgidecoderobserver aobserver); void decrementanimationconsumers(); imgirequest getstaticrequest(); void incrementanimationconsumers(); void lockimage(); void requestdecode(); void unlockimage(); attributes attribute type description corsmode long the cors mode that this image was loaded with.
... cors_anonymous 2 cors_use_credentials 3 methods canceland
forgetobserver() cancels this request as in nsirequest.cancel(); further, also nulls out decoderobserver so it gets no further notifications from us.
...void canceland
forgetobserver( in nsresult astatus ); parameters astatus clone() clone this request; the returned request will have aobserver as the observer.
...imgirequest clone( in imgidecoderobserver aobserver ); parameters aobserver return value decrementanimationconsumers() tell the image it can
forget about a request that the image animate.
nsIJSON
don't
forget to gcroot the result before using it.
...don't
forget to gcroot the jsval before using it.
...don't
forget to gcroot the result before using it.
...don't
forget to gcroot the jsval before using it.
Mozilla internal string guide
have the string "
forget" about it and hand off ownership to other code.
... a method may look like this: void getvalue(char16_t** avalue) { *avalue = tonewunicode(foo); } without getter_copies(), the caller would need to free the string: { char16_t* val; getvalue(&val); if (somecondition) { // don't
forget to free the value!
... // and later, still don't
forget to free!
nsIMsgIncomingServer
method overview void clearallvalues(); void cleartemporaryreturnreceiptsfilter(); void closecachedconnections(); void configuretemporaryfilters(in nsimsgfilterlist filterlist); void configuretemporaryreturnreceiptsfilter(in nsimsgfilterlist filterlist); obsolete since gecko 1.8 void displayofflinemsg(in nsimsgwindow awindow); boolean equals(in nsimsgincomingserver server); void
forgetpassword(); void
forgetsessionpassword(); astring generateprettynameformigration(); boolean getboolattribute(in string name); boolean getboolvalue(in string attr); acstring getcharattribute(in string name); acstring getcharvalue(in string attr); nsilocalfile getfilevalue(in string relpref, in string abspref); nsimsgfilterlist getfilterlist(in nsimsgwindow amsgwindow); long getint...
...ng exception missing description displayofflinemsg() void displayofflinemsg( in nsimsgwindow awindow ); parameters awindow missing description exceptions thrown missing exception missing description equals() boolean equals( in nsimsgincomingserver server ); parameters server missing description return value missing description exceptions thrown missing exception missing description
forgetpassword() void
forgetpassword(); parameters none.
... exceptions thrown missing exception missing description
forgetsessionpassword() void
forgetsessionpassword(); parameters none.
nsISessionStore
method overview void deletetabvalue(in nsidomnode atab, in astring akey); void deletewindowvalue(in nsidomwindow awindow, in astring akey); nsidomnode duplicatetab(in nsidomwindow awindow, in nsidomnode atab); nsidomnode
forgetclosedtab(in nsidomwindow awindow, in unsigned long aindex); nsidomnode
forgetclosedwindow(in unsigned long aindex); astring getbrowserstate(); unsigned long getclosedtabcount(in nsidomwindow awindow); astring getclosedtabdata(in nsidomwindow awindow); unsigned long getclosedwindowcount(); astring getclosedwindowdata(); astring get...
...
forgetclosedtab() nsidomnode
forgetclosedtab( in nsidomwindow awindow, in unsigned long aindex ); parameters awindow is the browser window associated with the closed tab.
... return value
forgetclosedwindow() nsidomnode
forgetclosedwindow( in unsigned long aindex ); parameters aindex is the index of the closed window to be removed (fifo ordered).
Getting Started Guide
if you
forget to call release, the object will leak, i.e., the storage for that object will never be reclaimed.
...it may sound simple, but in practice it's very easy to
forget to release at the appropriate moment.
... it's easy to
forget.
Using Promises - JavaScript
this happens when we create a new promise but
forget to return it.
... the third mistake is
forgetting to terminate chains with catch.
... using async/await addresses most, if not all of these problems—the tradeoff being that the most common mistake with that syntax is
forgetting the await keyword.
Signing an XPI - Archive of obsolete content
you will be prompted for the nss certificate database password - don't
forget it!
... don't
forget to delete the certificate from mozilla firefox once you've finished testing firefox 1.5: from the tools menu choose options->advanced->security->view certificates->authorities firefox 1.0: from the tools menu choose options->advanced->certificates->manage certificates->authorities press the import button.
MMgc - Archive of obsolete content
forgetting a write barrier if you
forget to put a write barrier on a pointer, the incremental mark process might miss the pointer being changed.
...
forgetting a drc if you
forget to put a drc macro on a pointer to an rcobject from unmanaged memory, you can get a dangling pointer.
IPDL Tutorial
because protocol messages are represented as c++ methods, it's easy to
forget that they are in fact asynchronous messages: by default the c++ method will return immediately, before the message has been delivered.
...}; virtual pexamplechild* toplevelchild::allocpexample() { refptr<examplechild*> actor = new examplechild(); return actor.
forget(); } virtual bool toplevelchild::deallocpexample(pexamplechild* actor) { ns_release(static_cast<examplechild*>(actor)); return true; } if an object that implements a protocol can't be constructed inside allocpfoo, has been previously constructed and doesn't require an ipdl connection throughout its lifetime, or implements a refcounted protocol where the first form of constructor is not ava...
OS.File for the main thread
note that the operating system limits the number of files that can be opened simultaneously by one process, so do not
forget to close that file once you have finished it, to ensure that you are not blocking the rest of the process.
... note that the operating system limits the number of files that can be opened simultaneously by one process, so do not
forget to close that file once you have finished it to make sure that you are not blocking the rest of the process.
FC_InitToken
(user certs are the certificates that have their associated private keys in the key database.) a user must be able to call fc_inittoken() without logging into the token (to assume the nss user role) because either the user's password hasn't been set yet or the user
forgets the password and needs to blow away the password-encrypted private key database and start over.
... application usage fc_inittoken() is used to reset the password for the key database when the user
forgets the password.
Index
267 js_
forget_string_flatness jsapi reference, reference, référence(2), spidermonkey js_
forget_string_flatness converts jsflatstring * to jsstring *.
... 273 js_
forgetlocalroot jsapi reference, obsolete, spidermonkey this function is used to interact with scoped local root management.
JSAPI reference
they have been removed in js 1.8.5, though js_enterlocalrootscope obsolete since javascript 1.8.5 js_leavelocalrootscope obsolete since javascript 1.8.5 js_leavelocalrootscopewithresult obsolete since javascript 1.8.5 js_
forgetlocalroot obsolete since javascript 1.8.5 added in spidermonkey 1.8 if an object contains references to other gc things that are not stored in spidermonkey data structures ("slots"), it must implement the jstraceop hook to enable the garbage collector to traverse those references.
...y 38 js_getlatin1stringcharsandlength added in spidermonkey 38 js_gettwobytestringcharsandlength added in spidermonkey 38 js::getdeflatedutf8stringlength added in spidermonkey 38 js::deflatestringtoutf8buffer added in spidermonkey 38 js_fileescapedstring added in spidermonkey 1.8.5 js_putescapedstring added in spidermonkey 1.8.5 js_putescapedflatstring added in spidermonkey 1.8.5 js_
forget_string_flatness added in spidermonkey 1.8.5 js_stringisflat added in spidermonkey 38 js_assert_string_is_flat added in spidermonkey 1.8.5 js_flattenstring added in spidermonkey 1.8.5 typedef jschar obsolete since jsapi 35 js_newstring obsolete since jsapi 1.8.5 js_newgrowablestring obsolete since jsapi 27 js_getstringbytes obsolete since jsapi 1.8.5 js_getstringbytesz obsolete since js...
SpiderMonkey 1.8.5
parsejson) js_decompilescriptobject js_deepfreezeobject js_definefunctionbyid js_defineownproperty js_definepropertybyid js_deletepropertybyid js_deletepropertybyid2 js_doubleisint32 js_encodestringtobuffer js_entercrosscompartmentcall js_evaluatescriptforprincipalsversion js_evaluateucscriptforprincipalsversion js_executeregexp js_executeregexpnostatics js_executescriptversion js_
forget_string_flatness js_fileescapedstring js_finishjsonparse (removed in future releases, replaced with js_parsejson) js_flatstringequalsascii js_flattenstring js_flushcaches js_freezeobject js_getcompartmentprivate js_getemptystring js_getflatstringchars js_getgcparameter js_getgcparameterforthread js_getglobalforscopechain js_getinternedstringchars js_getinternedstringcharsandlength j...
... jsautorequest jsautosuspendrequest jsautocheckrequest jsautoentercompartment js::anchor<> js::call obsolete apis js_clearnewbornroots js_enterlocalrootscope js_leavelocalrootscope js_leavelocalrootscopewithresult js_
forgetlocalroot js_newgrowablestring deleted apis js_addnamedroot – use js_add*root js_addnamedrootrt – use js_add*root js_addroot – use js_add*root js_clearnewbornroots – no longer needed js_clearoperationcallback js_clearregexproots js_decompilescript js_destroyscript js_enterlocalrootscope js_executescriptpart js_
forgetlocalroot js_getfunctionname js_getoperationlimit js_gets...
SpiderMonkey 1.8.7
parsejson) js_decompilescriptobject js_deepfreezeobject js_definefunctionbyid js_defineownproperty js_definepropertybyid js_deletepropertybyid js_deletepropertybyid2 js_doubleisint32 js_encodestringtobuffer js_entercrosscompartmentcall js_evaluatescriptforprincipalsversion js_evaluateucscriptforprincipalsversion js_executeregexp js_executeregexpnostatics js_executescriptversion js_
forget_string_flatness js_fileescapedstring js_finishjsonparse (removed in future releases, replaced with js_parsejson) js_flatstringequalsascii js_flattenstring js_flushcaches js_freezeobject js_getcompartmentprivate js_getemptystring js_getflatstringchars js_getgcparameter js_getgcparameterforthread js_getglobalforscopechain js_getinternedstringchars js_getinternedstringcharsandlength j...
... jsautorequest jsautosuspendrequest jsautocheckrequest jsautoentercompartment js::anchor<> js::call obsolete apis js_clearnewbornroots js_enterlocalrootscope js_leavelocalrootscope js_leavelocalrootscopewithresult js_
forgetlocalroot js_newgrowablestring deleted apis js_getscopechain use js_getglobalforscopechain api changes operation callback js_setoperationcallback was introduced in js 1.8.0, replacing the branch callback, in anticipation of the addition of the tracing jit (tracemonkey).
Introduction to XPCOM for the DOM
in the first case, if we
forget to addref the object, the object may delete itself before we are done using the pointer, which would cause a crash when dereferencing it.
... in the second case, if we
forget to release the object, it will never delete itself, which will cause "memory leaks", i.e.
nsITextInputProcessor
if the same modifier key is stored, the instance
forgets the key.
...if it's not stored, i.e., the modifier state is inactive, the instance stores the modifier key, otherwise
forgets the key.
Creating a Custom Column
don't
forget to add in a splitter before the column to ensure that the user can easily resize and drag our column around.
... don't
forget that columns aren't restricted to text - they can also load images (via getimagesrc()) so that your extension can display a new visual cue to the user.
dev/panel - Archive of obsolete content
}); in my-panel.js: // my-panel.js var content = document.getelementbyid("content"); window.addeventlistener("message", function(event) { var debuggee = event.ports[0]; console.log(debuggee); debuggee.onmessage = function(event) { content.textcontent = json.stringify(event.data); } debuggee.postmessage({ "to":"root", "type":"listtabs" }); }); if you do this, don't
forget to call start() on the port before passing it over to the panel document.
Inline options - Archive of obsolete content
for example: var observer = { observe: function(asubject, atopic, adata) { if (atopic == "addon-options-displayed" && adata == "my_addon@my_domain") { var doc = asubject; var control = doc.getelementbyid("myaddon-pref-control"); control.value = "test"; } } }; services.obs.addobserver(observer, "addon-options-displayed", false); // don't
forget to remove your observer when your add-on is shut down.
Index - Archive of obsolete content
threats may involve intentional actors (e.g., attacker who wants to access information on a server) or unintentional actors (e.g., administrator who
forgets to disable user accounts of a former employee.) threats can be local, such as a disgruntled employee, or remote, such as an attacker in another geographical area.
Menu - Archive of obsolete content
if a user
forgets or is unable to tell whether a certain menuitem is part of firefox or provided by a feature, she does not know where to turn when she has problems with it.
Reading textual data - Archive of obsolete content
nce(components.interfaces.nsiconverterinputstream); is.init(fis, charset, 1024, replacementchar); now you can read string from is: var str = {}; var numchars = is.readstring(4096, str); if (numchars != 0 /* eof */) var read_string = str.value; to read the entire stream and do something with the data: var str = {}; while (is.readstring(4096, str) != 0) { processdata(str.value); } don't
forget to close the stream when you're done with it (is.close()).
String Quick Reference - Archive of obsolete content
ing(const nsastring& str); handlestring(nsdependentstring(foo)); stack-based strings what: use of special stack-oriented classes why: to avoid excess heap allocations and memory leaks wrong: use nsstring/nscstring or raw characters // call getstringvalue(nsastring& out); nsstring value; getstringvalue(value); // call getstringvalue(char** out); char *result; getstringvalue(&result); // don't
forget to free result!
Example Sticky Notes - Archive of obsolete content
fax - respond today.</p></div> <div class="sticker"><p>don't
forget the eggs!</p></div> <div class="sticker"><p>the new project - who's on charge?</p></div> <div class="sticker"><p>learn more about xbl.</p></div> <p style="clear: left"><a href="http://validator.w3.org/check?uri=referer"><img src="https://udn.realityripple.com/samples/e2/dd625ef1cd.png" width="88" height="31" alt="valid html 4.01" style="border: 1px none"></a></p> </body> </html> ...
Debugging a XULRunner Application - Archive of obsolete content
/* debugging prefs */ pref("browser.dom.window.dump.enabled", true); pref("javascript.options.showinconsole", true); pref("javascript.options.strict", true); pref("nglayout.debug.disable_xul_cache", true); pref("nglayout.debug.disable_xul_fastload", true); don't
forget to change these preferences back to their defaults when you've finished debugging; leaving them as-is can significantly harm performance and usability.
Threats - Archive of obsolete content
threats may involve intentional actors (e.g., attacker who wants to access information on a server) or unintentional actors (e.g., administrator who
forgets to disable user accounts of a former employee.) threats can be local, such as a disgruntled employee, or remote, such as an attacker in another geographical area.
Building a Theme - Archive of obsolete content
add in this code: skin browser sample chrome/browser/ skin communicator sample chrome/communicator/ skin global sample chrome/global/ skin mozapps sample chrome/mozapps/ don't
forget the trailing slash, "/"!
Obsolete: XPCOM-based scripting for NPAPI plugins - Archive of obsolete content
nsitestplugin *scriptablepeer = (nsitestplugin *)instance->pdata; // see if this is the first time and we haven't created it yet if (!scriptablepeer) { nsitestplugin *scriptablepeer = new nsscriptablepeer(); if (scriptablepeer) ns_addref(scriptablepeer); // addref for ourself, // don't
forget to release on // shutdown to trigger its destruction } // add reference for the caller requesting the object ns_addref(scriptablepeer); *(nsisupports **)value = scriptablepeer; } else if (variable == nppvpluginscriptableiid) { nsiid* ptr = (nsiid *)npn_memalloc(sizeof(nsiid)); *ptr = scriptableiid; ...
Game distribution - Game development
publishing the game there are three main options when it comes to publishing a game: self-hosting publishers stores remember that the name of your game should be unique enough to be quickly promoted later on, but also catchy enough, so people don't
forget it.
Game monetization - Game development
once you've sold an exclusive license you can
forget about promoting that particular game as you won't earn more, so go into such a deal only if you're sure it's profitable enough.
Player paddle and controls - Game development
game.load.image('ball', 'img/ball.png'); game.load.image('paddle', 'img/paddle.png'); } adding the paddle graphic just so we don't
forget, at this point you should grab the paddle graphic from github, and save it in your /img folder.
What is CSS? - Learn web development
the individual property pages on mdn give you a quick way to look up properties and their values when you
forget, or want to know what else you can use as a value.
Advanced Svelte: Reactivity, lifecycle, accessibility - Learn web development
don't
forget to pass the prop into moreactions from inside todos.svelte, where the component is called: <moreactions {todos} on:checkall={e => checkalltodos(e.detail)} on:removecompleted={removecompletedtodos} /> working with the dom: focusing on the details now that we have completed all of the app's required functionality, we'll concentrate on some accessibility features that will improve ...
Creating a Login Manager storage module
the category registration looks like this: nscomptr<nsicategorymanager> cat = do_getservice(ns_categorymanager_contractid); ns_ensure_state(cat); cat->addcategoryentry("login-manager-storage", "nsiloginmanagerstorage", kyourcontractid, pr_true, pr_true, nsnull); don't
forget to unregister the category on unload.
Capturing a minidump
at this point, you should type ".dump /ma c:\temp\firefoxcrash.dmp" -- without the quotes, but don't
forget the dot at the beginning.
Configuring Build Options
g ac_add_options --enable-debug and a mozconfig-rel-opt: mk_add_options moz_objdir=@topsrcdir@/obj-ff-rel-opt ac_add_options --disable-debug ac_add_options --enable-optimize allow for building both versions by specifiying the configuration via the mozconfig environment variable: $ env mozconfig=/path/to/mozconfig-dbg ./mach build $ env mozconfig=/path/to/mozconfig-rel-opt ./mach build don't
forget to set the mozconfig environment variable for the mach run command as well.
Simple Instantbird build
try asking in mozilla.dev.chat - don't
forget to include details of what is in your mozconfig, and what the actual error is.
IME handling guide
when imestatemanager::stopimestatemanagement() is called in the remote process by this, the imestatemanager
forgets all focus information (i.e., that indicates nobody has focus).
Using JavaScript code modules
y registering an alias in the chrome manifest using a line like this: resource aliasname uri/to/files/ for example, if the xpi for your foo extension includes a top-level modules/directory containing the bar.js module (that is, the modules/directory is a sibling to chrome.manifest and install.rdf), you could create an alias to that directory via the instruction: resource foo modules/ (don't
forget the trailing slash!) you could then import the module into your javascript code via the statement: components.utils.import("resource://foo/bar.js"); programmatically adding aliases custom aliases to paths that can be represented as an nsilocalfile can be programmatically added as well.
Localization content best practices
don't
forget to add a localization note when: part of the string is not supposed to be localized (for example, the name of an html attribute in a warning).
SVN for Localizers
if you
forget any of the information on this page, don't worry, you can always come back and review.
Uplifting a localization from Central to Aurora
in the workrepo directory, do #verify that we didn't
forget changesets hg inc ../l10n-central/ab-cd comparing with ../l10n-central/ab-cd searching for changes no changes found hg inc -r default ../releases/l10n/mozilla-aurora/ab-cd comparing with ../releases/l10n/mozilla-aurora/ab-cd searching for changes no changes found # push to central hg push ../l10n-central/ab-cd # push to aurora hg push ../releases/l10n/mozilla-aurora/ab-cd ...
Gecko Profiler FAQ
and don’t
forget that if you’re interested in finding io slowness issues, profiling on a machine with a fast ssd isn’t recommended.
Leak-hunting strategies and tips
--jesse) dropping a reference on the floor by:
forgetting to release (because you weren't using nscomptr when you should have been): see bug 99180 or bug 93087 for an example or bug 28555 for a slightly more interesting one.
Memory reporting
forgetting a const) that prevent the overriding from happening.
Localization Use Cases
need pluralization in other languages, and pluralize them even in english: availablesize = {[ plural(size) ]} availablesize[other] = {{$size}} {{$unit}} available an italian translation might look like this: availablesize = {[ plural(size) ]} availablesize[one] = {{$size}} {{$unit}} disponibile availablesize[other] = {{$size}} {{$unit}} disponibili it's easy to imagine how developers might
forget to pluralize some strings that in other languages might require pluralization (or other grammatical features that the framework supports).
nss tech note4
ver's cert handle; if ssl server, this will get you the client's cert handle if client auth is enabled certcertificate* cert = ssl_localcertificate(prfiledesc *fd); if ssl client, this will get you the client cert's handle, if client auth happened if ssl server, this will get you the server's cert handle don't
forget to clean up the cert handle when you're done with it void cert_destroycertificate(certcertificate *cert); some info is readily available cert->subjectname (char*) cert->issuername (char*) cert->emailaddr (char*) or char *cert_getcertificateemailaddress(certcertificate *cert); cert->keyusage (unsigned int) to brea...
NSC_InitToken
examples application usage nsc_inittoken() is used to reset the password for the key database when the user
forgets the password.
JS_EnterLocalRootScope
to remove a gc thing from a local root scope (perhaps to save memory), use js_
forgetlocalroot.
JS_FlattenString
example: // in a fallible situation jsflatstring *fstr = js_flattenstring(cx, str); if (!fstr) return false; js_assert(fstr == js_assert_string_is_flat(str)); // in an infallible situation, for the same 'str' const jschar *chars = js_getflatstringchars(fstr) js_assert(chars); see also mxr id search for js_flattenstring js_assert_string_is_flat js_
forget_string_flatness bug 609440 ...
Using RAII classes in Mozilla
ensuring raii classes are not used as temporaries a common mistake when using raii classes is to accidentally
forget to name object, which causes its scope to be different from what is intended.
An Overview of XPCOM
it can raise some real housekeeping problems when, for example, a client uses an interface and
forgets to decrement the reference count.
Starting WebLock
ns_imethodimp weblock::getsites(nsisimpleenumerator * *asites) { myenumerator* enumerator = new myenumerator(mrooturlnode); if (!enumerator) return ns_error_out_of_memory; ns_addref(*asites = enumerator); return ns_ok; } addref, releasing, and deleting objects never
forget to addref an xpcom object which you instantiate via new.
Interfacing with the XPCOM cycle collector
what the cycle collector does the cycle collector spends most of its time accumulating (and
forgetting about) pointers to xpcom objects that might be involved in garbage cycles.
HOWTO
both success and error callbacks, put: gscriptdone = true; if you
forget some condition where your script should exit but you don't add this statement, your script will hang (busy wait).
nsAdoptingCString
take the value of what's given, and make what's given
forget its value.
nsAdoptingString
take the value of what's given, and make what's given
forget its value.
nsIIdleService
// don't
forget to remove the observer using removeidleobserver!
nsINavHistoryResultTreeViewer
if you use this object and attach it to a result without attaching it to a tree, then
forget about it, it will leak.
Frequently Asked Questions
comparing an nscomptr to a raw xpcom interface pointer declaring an nscomptr to a forward-declared class not linking to xpcom not including nscomptr.h different settings of nscap_feature_debug_ptr_types runtime errors ns_assertion "queryinterface needed" may be caused by a class that derives from a given interface, when you
forgetting to also specify the interface name in the ns_impl_isupports / ns_impl_threadsafe_isupports macro.
Reference Manual
nscomptr<nsibar> bar( getter_addrefs(createbar()) ); // ...which i must query for the right type nscomptr<nsifoo> foo( do_queryinterface(bar) ); one unfortunate trap that people fall into in this case is
forgetting that their getter function addrefed the result.
Activity Manager examples
ntractid); srcfolder->setasisupports(reinterpret_cast<nsisupports*>(imapfolder)); copyevent->addsubject(srcfolder); copyevent->init(ns_literal_string("message copy event"), initiator, ns_literal_string("completed successfully"), pr_now() / pr_usec_per_msec, // start time pr_now() / pr_usec_per_msec); // completion time // do not
forget to increase the ref counter if needed copyevent->setundohandler(undohandler); //////////////////////////////////////////////////////////////// //// adding the event into activity manager nscomptr<nsiactivitymanager> activitymgr(do_getservice("@mozilla.org/activity-manager;1")); pruint32 id; activitymgr->addactivity(copyevent, &id); adding an activity with a custom context type this sample s...
AudioBufferSourceNode - Web APIs
indeed, you can use these nodes in a "fire and
forget" manner: create the node, call start() to begin playing the sound, and don't even bother to hold a reference to it.
Using IndexedDB - Web APIs
transaction.oncomplete = function(event) { console.log("all done!"); }; transaction.onerror = function(event) { // don't
forget to handle errors!
Media Session API - Web APIs
it then instantiates a metadata object for the session, and adds event handlers for the user control actions: if ('mediasession' in navigator) { navigator.mediasession.metadata = new mediametadata({ title: 'un
forgettable', artist: 'nat king cole', album: 'the ultimate collection (remastered)', artwork: [ { src: 'https://dummyimage.com/96x96', sizes: '96x96', type: 'image/png' }, { src: 'https://dummyimage.com/128x128', sizes: '128x128', type: 'image/png' }, { src: 'https://dummyimage.com/192x192', sizes: '192x192', type: 'image/png' }, { src: 'https://dummyimage.com/25...
Using Service Workers - Web APIs
the "
forget" button, available in firefox's customization options, can be used to clear service workers and their caches (bug 1252998).
Basic Concepts of grid layout - CSS: Cascading Style Sheets
lumn-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } don't
forget that you can use the grid inspector in firefox developer tools to see how the items are positioned against the lines of the grid.
Syntax - CSS: Cascading Style Sheets
the last declaration of a block doesn't need to be terminated by a semi-colon, though it is often considered good style to do it as it prevents
forgetting to add it when extending the block with another declaration.
<kbd>: The Keyboard Input element - HTML: Hypertext Markup Language
for example, you can explain how to choose the "new document" option in the "file" menu using html that looks like this: <p>to create a new file, choose the menu option <kbd><kbd><samp>file</samp></kbd>⇒<kbd><samp>new document</samp></kbd></kbd>.</p> <p>don't
forget to click the <kbd><samp>ok</samp></kbd> button to confirm once you've entered the name of the new file.</p> this does some interesting nesting.
Data URLs - HTTP
data:text/html,lots of text...<p><a name%3d"bottom">bottom</a>?arg=val this represents an html resource whose contents are: lots of text...<p><a name="bottom">bottom</a>?arg=val syntax the format for data urls is very simple, but it's easy to
forget to put a comma before the "data" segment, or to incorrectly encode the data into base64 format.
Redirections in HTTP - HTTP
if someone changes the http redirects but
forgets to change the html redirects, the redirects will no longer be identical, which could cause an infinite loop or other nightmares.
switch - JavaScript
if you
forget a break then the script will run from the case where the criterion is met and will run the cases after that regardless if a criterion was met.
with - JavaScript
if you
forget to define x in the object you pass as the second argument, or if there's some similar bug or confusion, you won't get an error -- just unexpected results.