Skip to content

Instantly share code, notes, and snippets.

View nmaier's full-sized avatar
😨
I may be slow to respond.

Nils Maier nmaier

😨
I may be slow to respond.
View GitHub Profile
@nmaier
nmaier / scratchpad.js
Created December 4, 2012 04:38
DOM construction vs. string concat
function generateHTML_ok(nodes) {
var result = document.createElement("div");
for (var n = 0; n < nodes.length; ++n) {
var node = nodes[n];
var h1 = document.createElement("h1");
h1.textContent = node.localName;
result.appendChild(h1);
var list = document.createElement("ul");
for (var a = 0; a < node.attributes.length; ++a) {
@nmaier
nmaier / mem-xpc-reduce-v0.diff
Created May 26, 2012 01:45
Patch v0, Avoid a massive number of XPConnect calls when using memory reporters
# HG changeset patch
# Parent 1987beeb0038e84eddd39d3026388ba361dc0cf2
Avoid a massive number of XPConnect calls when using memory reporters
diff --git a/toolkit/components/aboutmemory/content/aboutMemory.js b/toolkit/components/aboutmemory/content/aboutMemory.js
--- a/toolkit/components/aboutmemory/content/aboutMemory.js
+++ b/toolkit/components/aboutmemory/content/aboutMemory.js
@@ -149,17 +149,13 @@ function minimizeMemoryUsage3x(fAfter)
*
* @param aMgr
@nmaier
nmaier / gist:2764014
Created May 21, 2012 19:06
about:memory?verbose post Bug 754771 (debug build)
Main Process
Explicit Allocations
68,239,048 B (100.0%) -- explicit
├──32,137,000 B (47.09%) -- js
│ ├───6,195,936 B (09.08%) -- runtime
│ │ ├──4,194,304 B (06.15%) ── stack-committed
│ │ ├────524,288 B (00.77%) ── atoms-table
│ │ ├────339,432 B (00.50%) ── mjit-code
│ │ ├────323,584 B (00.47%) ── temporary
@nmaier
nmaier / gist:2763057
Created May 21, 2012 16:09
gdb traces
#1 CreateNewCompartment
#2 xpc_CreateGlobalObject
#3 XPCWrappedNative::WrapNewGlobal
#4 nsXPConnect::InitClassesWithNewWrappedGlobal
#5 mozJSComponentLoader::GlobalForLocation
#6 mozJSComponentLoader::LoadModule
#7 nsComponentManagerImpl::KnownModule::Load
#8 nsFactoryEntry::GetFactory
#9 nsComponentManagerImpl::CreateInstance
#10 nsJSCID::CreateInstance
@nmaier
nmaier / gist:2711868
Created May 16, 2012 16:25
named about:compartments with vanilla profile
[System Principal]
[System Principal], about:blank [3]
[System Principal], about:compartments?verbose
[System Principal], about:sessionrestore
[System Principal], chrome://browser/content/hiddenWindow.xul
[System Principal], chrome://browser/content/places/menu.xml
[System Principal], chrome://browser/content/search/search.xml
[System Principal], chrome://browser/content/tabbrowser.xml
[System Principal], chrome://browser/content/urlbarBindings.xml
[System Principal], chrome://global/content/bindings/autocomplete.xml
@nmaier
nmaier / gdb setup
Created May 16, 2012 16:20
gdb unique code paths
$ gdb binary
(gdb) b JS_NewCompartmentAndGlobalObject
(gdb) commands
> bt 12
> continue
> end
(gdb) set logging on
(gdb) r <args>
import re
from urllib2 import urlopen, Request, URLError
from html5lib import parse as html5
url = "https://addons.mozilla.org/en-US/editors/reviewlog?start=2011-12-22&end=&page={0}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:12.0a1) Gecko/20120117 Firefox/12.0a1",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3",
"Referer": "https://addons.mozilla.org/en-US/editors/reviewlog",
@nmaier
nmaier / dta.log
Created January 20, 2012 10:39
dta gcthing allocs (pre-optimized)
Object
269368: resource://dta/support/bytebucket.jsm:205
269194: resource://dta/support/bytebucket.jsm:209
104017: resource://dta/utils.jsm:826
96318: chrome://dta/content/common/internalFunctions.js:337
88085: resource://dta/support/bytebucket.jsm:208
87964: resource://dta/support/bytebucket.jsm:202
83466: chrome://dta/content/dta/manager/manager.js:2524
82773: chrome://dta/content/common/internalFunctions.js:81
72326: chrome://dta/content/dta/manager/manager.js:1101
@nmaier
nmaier / httpreqrespobserver.js
Created January 18, 2012 01:16
http request/response observer template module
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const EXPORTED_SYMBOLS = ['HttpRequestObserver'];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
const module = Cu.import;
const error = Cu.reportError;
diff --git a/browser/app/nsBrowserApp.cpp b/browser/app/nsBrowserApp.cpp
--- a/browser/app/nsBrowserApp.cpp
+++ b/browser/app/nsBrowserApp.cpp
@@ -69,16 +69,20 @@
#define strcasecmp _stricmp
#endif
#include "BinaryPath.h"
#include "nsXPCOMPrivate.h" // for MAXPATHLEN and XPCOM_DLL