https://wiki.mozilla.org/api.php?action=feedcontributions&user=Jandem&feedformat=atomMozillaWiki - User contributions [en]2024-03-28T15:33:53ZUser contributionsMediaWiki 1.27.4https://wiki.mozilla.org/index.php?title=Modules/Core&diff=1228401Modules/Core2020-06-23T15:50:33Z<p>Jandem: Add Caroline, André as JIT peers</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:jteh@mozilla.com Jamie Teh]<br />
|peers=[mailto:eitan@monotonous.org Eitan Isaacson], [mailto:jteh@mozilla.com James Teh], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal], [mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peersemeritus=[mailto:dbolter@mozilla.com David Bolter], [mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:bbirtles@mozilla.com Brian Birtles] (:birtles)<br />
|peers=[mailto:hiro@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-tech-layout<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Transitions and Animations<br />
}}<br />
<br />
{{Module<br />
|name=Anti-Tracking<br />
|description=Tracking detection and content-blocking.<br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:dlee@mozilla.com Dimi Lee], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:ewright@mozilla.com Erica Wright], [mailto:xeonchen@gmail.com Gary Chen], [mailto:jhofmann@mozilla.com Johann Hofmann], [mailto:tihuang@mozilla.com Tim Huang]<br />
|group=dev-platform<br />
|source_dirs=toolkit/components/antitracking/, several files under browser/ and netwerk/url-classifier/<br />
|components=Core::Privacy: Anti-Tracking<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay]<br />
|peers=[mailto:fabrice@mozilla.com Fabrice Desré]<br />
|ownersemeritus=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:mh@glandium.org Mike Hommey] (:glandium)<br />
|peers=[mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj), [mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:rstewart@mozilla.com Ricky Stewart] (:ricky)<br />
|ownersemeritus=Chris Manchester (2019-2020), Gregory Szorc (2013-2019), Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|peersemeritus=Ted Mielczarek, Ralph Giles, Gregory Szorc, Chris Manchester<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/jprof/, tools/leak-gauge/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Referrer Policy, Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston], [mailto:tnguyen@mozilla.com Thomas Nguyen]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking], François Marier<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies<br />
|description=<br />
|owner=[mailto:amarchesini@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:honzab.moz@firemni.cz Honza Bambas] <br />
|ownersemeritus=Monica Chew<br />
|peersemeritus=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-platform<br />
|source_dirs=netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
<br />
{{Module<br />
|name=Permissions<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:honzab.moz@firemni.cz Honza Bambas]<br />
|ownersemeritus=Monica Chew<br />
|peersemeritus=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-platform<br />
|source_dirs=extensions/permissions/<br />
|url=<br />
|components=Core :: Permission Manager<br />
}}<br />
<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:sgiesecke@mozilla.com Simon Giesecke]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:peterv@propagandism.org Peter Van der Beken], [mailto:afarre@mozilla.com Andreas Farre]<br />
|ownersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:sawang@mozilla.com Samael Wang], [mailto:kyle@nonpolynomial.com Kyle Machulis]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell], [mailto:afarre@mozilla.com Andreas Farre], [mailto:emilio@crisal.io Emilio Cobos]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:ben@wanderview.com Ben Kelly], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:echen@mozilla.com Edgar Chen]<br />
|peersemeritus=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::DOM: UI Events & Focus Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:baku@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:asuth@mozilla.com Andrew Sutherland], [mailto:ytausky@mozilla.com Yaron Tausky]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:nnethercote@mozilla.com Nicholas Nethercote], [mailto:gsquelart@mozilla.com Gerald Squelart], [mailto:gtatum@mozilla.com Greg Tatum], [mailto:canaltinova@mozilla.com Nazim Can Altinova], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:brennie@mozilla.com Barret Rennie] (Screenshots).<br />
|ownersemeritus=[mailto:b56girard@gmail.com Benoit Girard]<br />
|peersemeritus=[mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer)<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/events (and platform specific directories under it)<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:jnicol@mozilla.com Jamie Nicol](Android), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia, Canvas2D), [mailto:rhunt@mozilla.com Ryan Hunt](OMTP), [mailto:gwatson@mozilla.com Glenn Watson ](WebRender), [mailto:dmalyshau@mozilla.com Dzmitry Malyshau](WebRender)<br />
|peersemeritus=[mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:clord@mozilla.com Christopher Lord], [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::Graphics: WebRender, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=WebGPU (Graphics submodule)<br />
|description=WebGPU implementation<br />
|owner=[mailto:dmalyshau@mozilla.com Dzmitry Malyshau]<br />
|peers=[mailto:josh@joshgroves.com Joshua Groves], [mailto:jgilbert@mozilla.com Jeff Gilbert],<br />
|group=dev-platform<br />
|source_dirs=dom/webgpu<br />
|url=https://wiki.mozilla.org/Platform/GFX/WebGPU<br />
|components=Core::Graphics::WebGPU<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:rhunt@mozilla.com Ryan Hunt], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source_dirs=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|ownersemeritus=Chris Jones, Bill McCloskey<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner], David Anderson, Kan-Ru Chen, Bevis Tseng, Ben Kelly<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], André Bargull, [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:jcoppeard@mozilla.com Jon Coppeard], [mailto:sphink@gmail.com Steve Fink], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:evilpies@gmail.com Tom Schuster], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ystartsev@mozilla.com Yulia Startsev], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:ccullen@mozilla.com Caroline Cullen] [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:luke@mozilla.com Luke Wagner], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], Andreas Gal, [mailto:efaust@mozilla.com Eric Faust], [mailto:khyperia@mozilla.com Ashley Hauck]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=André Bargull, [mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:ccullen@mozilla.com Caroline Cullen], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:emilio@crisal.io Emilio Cobos Álvarez]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Layout<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Columns, Core::Layout: Flexbox, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: Generated Content, Lists, and Counters, Core::Layout: Grid, Core::Layout: Images, Video, and HTML Frames, Core::Layout: Positioned, Core::Layout: Ruby, Core::Layout: Scrolling and Overflow, Core::Layout: Tables, Core::Layout: Text and Fonts, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|ownersemeritus=Taras Glek, Michael Wu<br />
|peers=[mailto:mnovotny@mozilla.com Michal Novotny], [mailto:vgosu@mozilla.com Valentin Gosu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership module]]<br />
|ownersemeritus=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:kershaw@mozilla.com Kershaw Chang], [mailto:juhsu@mozilla.com Junior Hsu]<br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman, Nick Hurley, [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NodeJS usage, tools, and style<br />
|description=Advises on the use of NodeJS and npm packages at build and runtime. Reviews additions/upgrades/removals of vendored npm packages. Works with appropriate teams to maintain automated license and security audits of npm packages. Works with the security team and relevant developers to respond to vulnerabilities in NodeJS and vendored npm packages.<br />
|owner=[mailto:dmosedale@mozilla.com Dan Mosedale]<br />
|peers=[mailto:mbanner@mozilla.com Mark Banner], [mailto:dcoates@mozilla.com Danny Coates], [mailto:khudson@mozilla.com Kate Hudson], [mailto:jlaster@mozilla.com Jason Laster], [mailto:elee@mozilla.com Ed Lee], [mailto:dtownsend@mozilla.com Dave Townsend]<br />
|source_dirs=package.json, package-lock.json, node_modules and others as appropriate<br />
|components=Various components<br />
|forum=[https://wiki.mozilla.org/Firefox/firefox-dev firefox-dev], #nodejs on slack<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:mh@glandium.org Mike Hommey]<br />
|ownersemeritus=[mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:davidp99@gmail.com David Parks]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:nnethercote@mozilla.com Nicholas Nethercote]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:glandium@mozilla.com Mike Hommey], [mailto:erahm@mozilla.com Eric Rahm], [mailto:kwright@mozilla.com Kristen Wright]<br />
|peersemeritus=Felipe Gomes<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=[mailto:lina@mozilla.com Lina Cambridge]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:mt@lowentropy.net Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:mt@lowentropy.net Martin Thomson]<br />
|ownersemeritus=[mailto:wtc@google.com Wan-Teh Chang], [mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peersemeritus=[mailto:birunthan@mohanathas.com Birunthan Mohanathas]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/, servo/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-tech-layout<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kearwood (Kip) Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu], [mailto:igorostizaga@mozilla.com Imanol Fernández]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=Top level Widget<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|ownersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=Android widget support<br />
|owner=[mailto:jwillcox@mozilla.com James Willcox]<br />
|peers=<br />
|ownersemeritus=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=GTK widget support<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:stransky@redhat.com Martin Stránský]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Headless<br />
|description=Headless widget support<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=<br />
|ownersemeritus=<br />
|group=dev-platform<br />
|source_dirs=widget/headless/<br />
|url=<br />
|components=Firefox::Headless<br />
}}<br />
<br />
{{Module<br />
|name=Widget - macOS<br />
|description= macOS widget support<br />
|owner=[mailto:spohl@mozilla.com Stephen A Pohl]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:mstange@themasta.com Markus Stange]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:b56girard@gmail.com Benoit Girard], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widget support<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robert.strong.bugs@gmail.com Rob Strong], [mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm], [mailto:nika@thelayzells.com Nika Layzell], [mailto:kmaglione@mozilla.com Kris Maglione]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|ownersemeritus=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:davidp99@gmail.com David Parks] (:handyman)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Crash reporting<br />
|description=Infrastructure and tools used to generate, submit and process crash reports. This includes the in-tree google-breakpad fork, the crash report generation machinery as well as the host tools used to dump symbols, analyse minidumps and generate stack traces.<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto] (:gsvelto)<br />
|peers=[mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj)<br />
|group=dev-platform<br />
|source_dirs=toolkit/crashreporter, toolkit/components/crashes, tools/crashreporter, ipc/glue/CrashReporter*, mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java<br />
|url=https://firefox-source-docs.mozilla.org/toolkit/crashreporter/crashreporter/index.html<br />
|components=Toolkit::Crash Reporting<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:mozilla@hocat.ca Tom Prince]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:dustin@mozilla.com Dustin Mitchell]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:New_to_SpiderMonkey&diff=1226450JavaScript:New to SpiderMonkey2020-04-23T15:21:47Z<p>Jandem: typo</p>
<hr />
<div>== Tutorial: your first patch ==<br />
<br />
The first step to getting involved with SpiderMonkey is to make your first patch. This guides you through it, and at the end you should have learnt a lot of the procedures and formalisms involved in getting things done here.<br />
<br />
We'll assume you're on a Unix-y platform, and that you know what you're doing. We'll ignore nearly all details. <br />
<br />
=== Get the code ===<br />
<br />
Spidermonkey development happens in the "mozilla-central" mercurial repository:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central spidermonkey<br />
<br />
See [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial/Bundles Mercurial bundles] for information about downloading a single large file instead of using "hg clone". Recent versions of Mercurial will do this automatically.<br />
<br />
=== Build the js shell ===<br />
<br />
Most of the time, you'll be working with the JavaScript shell, instead of the full Firefox browser. See the [https://firefox-source-docs.mozilla.org/js/build.html SpiderMonkey build documentation] for how to build the shell.<br />
<br />
=== Fix something ===<br />
<br />
At this point, you're ready to make your first fix. <br />
<br />
TODO: something useless. Maybe adding a datemicrosecond function.<br />
<br />
==== Building your changes ====<br />
<br />
Having made the change, build the shell again. <br />
<br />
./mach build<br />
<br />
==== Testing your changes ====<br />
<br />
It builds. Hurray. Time to run the tests to check you haven't broken anything. <br />
<br />
./mach jit-test<br />
<br />
The jit-tests are pretty quick, and should give you an idea if you've gotten something wrong. Assuming nothing goes wrong, try the ref-tests: <br />
<br />
./mach jstests<br />
<br />
<br />
==== Benchmark your changes ====<br />
<br />
Tests all pass. Congrats, you didn't break anything. Now, did you make it faster or slower? We benchmark using a number of different benchmark suites.<br />
<br />
* v8<br />
* SunSpider: One of the original js benchmarks. No real value left.<br />
* Octane: Another js benchmark that we heavily optimized for in the past. Isn't representative of current web workloads.<br />
* speedometer: A full browser benchmark. Testing react, ember, etc. Intended to be a better measure of "responsiveness". We are currently optimizing for version 2 it.<br />
<br />
Get the benchmarks: <br />
<br />
svn checkout http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider<br />
<br />
And now run them: <br />
<br />
cd SunSpider <br />
./sunspider --shell=<path-to-shell>/dist/bin/js --run=30 --suite=sunspider-0.9.1 <br />
cd ..<br />
<br />
===== Optimized build =====<br />
<br />
Whoops, we benchmarked the debug version. Let's make an optimized build. Follow the [https://firefox-source-docs.mozilla.org/js/build.html#optimized-builds build instructions] and make sure your MOZCONFIG file has:<br />
<br />
ac_add_options --disable-debug<br />
ac_add_options --enable-optimize<br />
<br />
Repeat the sunspider steps above, and take note of the line that looks like: <br />
<br />
Results are located at sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
You'll need that later. <br />
<br />
===== Baseline version / Mercurial Queues =====<br />
<br />
We need to time our optimized version against the baseline version. This calls for a brief introduction to mercurial queues, which used to be the way most people managed their SpiderMonkey workflow (though these days many people use native hg, native hg + evolution, or git):<br />
<br />
hg qinit<br />
hg qnew my_first_patch -f<br />
hg qrefresh<br />
<br />
This puts your current work into a patch, managed by Mercurial, symbolically called my_first_patch. To pop the patch off: <br />
<br />
hg qpop<br />
<br />
And we're back to our pristine version.<br />
<br />
===== Compare =====<br />
<br />
Build again and rerun SunSpider again. You should now have two files like: <br />
<br />
sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
Compare them using the compare script: <br />
<br />
cd SunSpider <br />
./sunspider-compare-results --shell=<path-to-shell>/dist/bin/js --suite=sunspider-0.9.1 FILE1-withoutPatch FILE2-withPatch<br />
<br />
=== Get a real bug ===<br />
<br />
At this point, you've seen nearly everything you need to do hack on SpiderMonkey. So it's time to get a real bug to work on. You can get a bug on [http://www.joshmatthews.net/bugsahoy/?jseng=1&unowned=1 Bugs Ahoy].<br />
<br />
Fix the bug, updating the bug report with your progress, and asking questions as you go (either in the bug comments, or in the [https://chat.mozilla.org/#/room/#spidermonkey:mozilla.org SpiderMonkey room] on Matrix). When it's done, repeat all the steps above. Then it's time to get your patch into the tree.<br />
<br />
=== Submit a patch ===<br />
<br />
To get the patch from mercurial, use: <br />
<br />
hg qdiff # if you're using queues or<br />
hg diff # if you're not<br />
<br />
Add it to the bug as an attachment. <br />
<br />
=== Get a review ===<br />
<br />
Nothing gets into the tree without a review, so you'll need one. The [[JavaScript:Hackers|SpiderMonkey hackers list]] is a good place to start: if your patch changes something listed as an area of expertise for someone there, that's a good person to ask for a review.<br />
<br />
Alternatively run <code>hg blame</code> on the files you've changed, and check who has been changing related code recently. They're likely to be good candidates. An irc bot can automate this process for a single file if you enter "/msg mrgiggles who can review something.cpp?" into your irc client.<br />
<br />
The review will consist of comments on your changes, suggesting or requesting alternative ways to do something and asking you to make changes where needed. They might also request additional changes, for example tests. Fix what they ask, resubmit the patch to bugzilla, and ask for another review. After you repeat this step a few times, they will mark the patch as "<code>r+</code>" meaning it's now good to commit.<br />
<br />
=== Commit ===<br />
<br />
You can't commit to mozilla-central / mozilla-inbound until you have "level 3" access, so you'll need someone to do this for you. Try asking in [irc://irc.mozilla.org/#jsapi #jsapi], or add the <code>checkin-needed</code> keyword to the bug. After you have been contributing for a while, you can get level 3 access by [https://www.mozilla.org/hacking/commit-access-policy/ applying for it].<br />
<br />
After committing, a large series of tests will be run to make sure you didn't break anything. You will need to hang around to make sure you didn't break something. It is difficult to determine what failures are real and what are what we call "intermittent oranges" ("orange" because that is the color used on our continuous integration dashboard for test failures). If you do break something, a sheriff will probably let you know via IRC and will probably back your patch out. You can always ask [irc://irc.mozilla.org/#jsapi for help] determining what is going on. (Over time you'll get a feel for figuring out when breakage is real on your own.)<br />
<br />
== Overview of the JS engine ==<br />
<br />
The JS engine is a swiftly moving target. The most detailed information is available at https://developer.mozilla.org/en/SpiderMonkey. Here are some particularly interesting, mostly up-to-date resources:<br />
<br />
<br />
=== High level overviews ===<br />
<br />
(Outdated) http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/<br />
<br />
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals<br />
<br />
=== Medium level documentation ===<br />
<br />
jsapi.h: http://hg.mozilla.org/mozilla-central/file/tip/js/src/jsapi.h and the files in http://hg.mozilla.org/mozilla-central/file/tip/js/public<br />
<br />
Frequently used coding recipes and mappings from JS idioms to SpiderMonkey code: https://developer.mozilla.org/En/SpiderMonkey/JSAPI_Cookbook<br />
<br />
=== Detailed documentation ===<br />
<br />
Build: https://developer.mozilla.org/en/SpiderMonkey/Build_Documentation<br />
<br />
Testing: https://developer.mozilla.org/en/SpiderMonkey/Running_Automated_JavaScript_Tests<br />
<br />
Shell: https://developer.mozilla.org/En/SpiderMonkey/Introduction_to_the_JavaScript_shell<br />
<br />
Function reference: https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference<br />
<br />
<br />
== Collaboration and teamwork ==<br />
<br />
=== Communication (in descending order of information content) ===<br />
<br />
Nearly all communication is handled through [https://bugzilla.mozilla.org Bugzilla]. All bugs, feature requests, issues, enhancements, etc, are all referred to as bugs. No code may enter the Mozilla repository without being a patch attached to a bugzilla bug first. To follow all SpiderMonkey related bugs:<br />
<br />
Go to [https://bugzilla.mozilla.org/userprefs.cgi?tab=email email preferences]<br />
Watch the user general@spidermonkey.bugs<br />
Or watch one of the JS components in the Core product: JavaScript Engine, JavaScript Engine: JIT, JavaScript: GC, or JavaScript: Standard Library<br />
<br />
SpiderMonkey contributors generally hang out in the very active [irc://irc.mozilla.org/jsapi #jsapi IRC channel].<br />
<br />
The [https://www.mozilla.org/about/forums/#dev-tech-js-engine-internals js-internals mailing list] is used for communicating with other SpiderMonkey hackers. (<i>Internals</i> as in discussing the internals of the SpiderMonkey engine. All are welcome on the list.).<br />
<br />
Reading Planet Mozilla is the best way to keep up with the Mozilla project, which includes some SpiderMonkey related blogs:<br />
<br />
[https://blog.mozilla.org/javascript General JavaScript blog]<br />
[http://blog.mozilla.com/jorendorff Jason Orendorff]<br />
[http://blog.mozilla.com/nnethercote/ Nicholas Nethercote]<br />
[http://whereswalden.com/ Jeff Walden]<br />
[https://itcouldbesomuchbetter.wordpress.com Jim Blandy]<br />
[https://jandemooij.nl/ Jan de Mooij]<br />
[https://h4writer.com/ Hannes Verschore]<br />
[http://rfrn.org/~shu/ Shu-yu Guo]<br />
[https://blog.benj.me/tag/mozilla.html Benjamin Bouvier]<br />
<br />
The [https://developer.mozilla.org/en/SpiderMonkey#Community js-engine mailing list] is generally used for communicating with people who embed SpiderMonkey, such as asking questions and announcing API changes. No actual development happens on the list.<br />
<br />
== Code considerations ==<br />
<br />
=== Repository ===<br />
<br />
Most active work on SpiderMonkey is done in the [http://hg.mozilla.org/mozilla-central mozilla-central] branch of the mozilla repository.<br />
<br />
=== Coding Style ===<br />
<br />
For many years, SpiderMonkey was written in C, and is gradually moving to C++. We still avoid many features such as run-time type information and exceptions, and generally avoid virtual functions for core data, but have come around to the glory of templates and namespaces relatively recently. Read the [[JavaScript:SpiderMonkey:C++ Coding Style|Coding Style]]. Do NOT read the portability guidelines, which I will not link to, since they are very out of date.<br />
<br />
=== Workflow ===<br />
<br />
Everything goes through bugzilla. We find a bug or have an idea, then submit it to bugzilla, then file patches to solve it. When it is solved, the patch is reviewed by team members, and is then committed to the [http://hg.mozilla.org/integration/mozilla-inbound mozilla-inbound repository]. A link to the commit is then automatically added as a comment to the bug. mozilla-inbound is periodically merged to mozilla-central by a Sheriff. This exempts us from watching [https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound treeherder] to check for failures caused by our patches, and commits are automatically backed out if errors are found.<br />
<br />
==== Sample Workflows ====<br />
<br />
(Outdated) [http://blog.mozilla.com/nnethercote/2009/07/27/how-i-work-on-tracemonkey/ Nicholas Nethercote: How I work on Tracemonkey]<br />
<br />
[https://blog.mozilla.org/sfink/2017/06/01/sfink-mozilla-workflow/ Steve Fink: Mozilla workflow]<br />
<br />
I (Paul Bone) suggest stating with a [http://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/unifiedrepo.html unified repository] checkout with the extensions and customization from Steve's workflow, using [https://www.mercurial-scm.org/wiki/ShareExtension hg share] to create workspaces, use bookmarks to track your new feature developments, and using [https://www.mercurial-scm.org/wiki/HisteditExtension hg histedit] and [https://www.mercurial-scm.org/wiki/RebaseExtension hg rebase] to prepare your patches for publication.<br />
<br />
=== Policy ===<br />
<br />
The following docs are for the Mozilla project, and differ ever so slightly from what you should do for SpiderMonkey. For example, you should find reviewers in #jsapi rather than #developers.<br />
<br />
[http://www.mozilla.org/hacking/committer/ How to get commit access]<br />
<br />
[https://developer.mozilla.org/en/Creating_a_patch How to make patches]<br />
<br />
[https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch Submitting a patch]<br />
<br />
[https://developer.mozilla.org/en/Supported_build_configurations Supported Platforms]<br />
<br />
==== .hgrc file ====<br />
<br />
This .hgrc file contains a lot of the wisdom distilled through the wiki:<br />
<br />
[extensions]<br />
mq =<br />
<br />
[ui]<br />
username = First Last <email@domain.tld><br />
<br />
[alias]<br />
qfulldiff = diff --rev qparent:.<br />
<br />
[defaults]<br />
diff = -p -U 8<br />
qdiff = -p -U 8<br />
qnew = -U<br />
commit = -v<br />
<br />
[diff]<br />
git = true<br />
showfunc = true<br />
unified = 8<br />
<br />
[paths]<br />
try = ssh://email@domain.tld@hg.mozilla.org/try/<br />
<br />
=== Try server ===<br />
<br />
Often, you may be a little wary of breaking things. Mozilla has a [[Build:TryServer|Try Server]] where you can send a patch, and it'll be built and tested on tons of machines, which report to [https://treeherder.mozilla.org/#/jobs?repo=try TreeHerder]. Although you don't have [https://www.mozilla.org/hacking/commit-access-policy/ access] to TryServer just yet, you can get someone else to push it there for you. Just attach a patch to your bug, and ask in a comment, or on [irc://irc.mozilla.org/#jsapi #jsapi]. To be able to push to try-server yourself, you will need "level 1" access, which you can [https://www.mozilla.org/hacking/commit-access-policy/ request] once you've contributed a patch or two.<br />
<br />
=== Mercurial Queues ===<br />
<br />
Since most of our lives revolve around patches, and we use Mercurial, nearly everybody uses Mercurial queues.<br />
<br />
Queues are based on the idea of patch management. Each queue consists of a series of patches, applied sequentially. The aim of the game is to split potential commits into simple, bite-sized chunks which are easy to review. This also makes it simple to experiment without polluting your existing work on a bug, to spin parts off into new bugs, and to rapidly apply and unapply patches (as demonstrated in the tutorial above).<br />
<br />
==== Enabling ====<br />
<br />
Add the following snippet to your .hgrc file to enable MQ<br />
<br />
[extensions]<br />
mq =<br />
<br />
==== Example MQ workflow ====<br />
<br />
Clone the repository to deal with a bug:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central<br />
<br />
Initialize your queue:<br />
<br />
hg qinit -c<br />
<br />
Create a new patch, with some name:<br />
<br />
hg qnew first_attempt<br />
<br />
Work on the patch, try to fix the bug, test, compile, etc.<br />
<br />
Refresh (save your work into the patch):<br />
<br />
hg qrefresh<br />
<br />
Repeat a few times.<br />
<br />
Rename the patch (because your first name wasn't appliable):<br />
<br />
hg qrename refactor_the_whatsit<br />
<br />
Create a new patch to try a logically separate part of the same bug:<br />
<br />
hg qnew rip_out_the_old_thing<br />
<br />
Repeat the process a few times, until you have solved the problem. During this time, it can often be useful to go back and forth between patches:<br />
<br />
hg qpop # unapply a patch<br />
hg qpush # reapply a patch<br />
hg qpop -a # unapply all patches<br />
hg qpush -a # reapply all patches<br />
<br />
<br />
Combine all the patches into a single patch, which you submit to bugzilla:<br />
<br />
hg qpush -a<br />
hg qdiff --rev qparent:. > my_wonderful_patch.patch<br />
<br />
Commit the patches to your local patch repository, in case you make a mistake (You might do this periodically):<br />
<br />
hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's just for you"<br />
<br />
Go back to the old patches and fiddle with them based on feedback:<br />
<br />
hg qpop<br />
hg qrefresh<br />
etc<br />
<br />
There are some more complex techniques that we won't go into in detail. You can enable only some patches using qguard and qselect, and you can reorder the patches by manually editing the .hg/patches/series file. But be careful!<br />
<br />
[[Category:New Contributor Landing Page]]</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:New_to_SpiderMonkey&diff=1226449JavaScript:New to SpiderMonkey2020-04-23T15:17:05Z<p>Jandem: IRC => Matrix</p>
<hr />
<div>== Tutorial: your first patch ==<br />
<br />
The first step to getting involved with SpiderMonkey is to make your first patch. This guides you through it, and at the end you should have learnt a lot of the procedures and formalisms involved in getting things done here.<br />
<br />
We'll assume you're on a Unix-y platform, and that you know what you're doing. We'll ignore nearly all details. <br />
<br />
=== Get the code ===<br />
<br />
Spidermonkey development happens in the "mozilla-central" mercurial repository:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central spidermonkey<br />
<br />
See [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial/Bundles Mercurial bundles] for information about downloading a single large file instead of using "hg clone". Recent versions of Mercurial will do this automatically.<br />
<br />
=== Build the js shell ===<br />
<br />
Most of the time, you'll be working with the JavaScript shell, instead of the full Firefox browser. See the [https://firefox-source-docs.mozilla.org/js/build.html SpiderMonkey build documentation] for how to build the shell.<br />
<br />
=== Fix something ===<br />
<br />
At this point, you're ready to make your first fix. <br />
<br />
TODO: something useless. Maybe adding a datemicrosecond function.<br />
<br />
==== Building your changes ====<br />
<br />
Having made the change, build the shell again. <br />
<br />
./mach build<br />
<br />
==== Testing your changes ====<br />
<br />
It builds. Hurray. Time to run the tests to check you haven't broken anything. <br />
<br />
./mach jit-test<br />
<br />
The jit-tests are pretty quick, and should give you an idea if you've gotten something wrong. Assuming nothing goes wrong, try the ref-tests: <br />
<br />
./mach jstests<br />
<br />
<br />
==== Benchmark your changes ====<br />
<br />
Tests all pass. Congrats, you didn't break anything. Now, did you make it faster or slower? We benchmark using a number of different benchmark suites.<br />
<br />
* v8<br />
* SunSpider: One of the original js benchmarks. No real value left.<br />
* Octane: Another js benchmark that we heavily optimized for in the past. Isn't representative of current web workloads.<br />
* speedometer: A full browser benchmark. Testing react, ember, etc. Intended to be a better measure of "responsiveness". We are currently optimizing for version 2 it.<br />
<br />
Get the benchmarks: <br />
<br />
svn checkout http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider<br />
<br />
And now run them: <br />
<br />
cd SunSpider <br />
./sunspider --shell=<path-to-shell>/dist/bin/js --run=30 --suite=sunspider-0.9.1 <br />
cd ..<br />
<br />
===== Optimized build =====<br />
<br />
Whoops, we benchmarked the debug version. Let's make an optimized build. Follow the [https://firefox-source-docs.mozilla.org/js/build.html#optimized-builds build instructions] and make sure your MOZCONFIG has:<br />
<br />
ac_add_options --disable-debug<br />
ac_add_options --enable-optimize<br />
<br />
Repeat the sunspider steps above, and take note of the line that looks like: <br />
<br />
Results are located at sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
You'll need that later. <br />
<br />
===== Baseline version / Mercurial Queues =====<br />
<br />
We need to time our optimized version against the baseline version. This calls for a brief introduction to mercurial queues, which used to be the way most people managed their SpiderMonkey workflow (though these days many people use native hg, native hg + evolution, or git):<br />
<br />
hg qinit<br />
hg qnew my_first_patch -f<br />
hg qrefresh<br />
<br />
This puts your current work into a patch, managed by Mercurial, symbolically called my_first_patch. To pop the patch off: <br />
<br />
hg qpop<br />
<br />
And we're back to our pristine version.<br />
<br />
===== Compare =====<br />
<br />
Build again and rerun SunSpider again. You should now have two files like: <br />
<br />
sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
Compare them using the compare script: <br />
<br />
cd SunSpider <br />
./sunspider-compare-results --shell=<path-to-shell>/dist/bin/js --suite=sunspider-0.9.1 FILE1-withoutPatch FILE2-withPatch<br />
<br />
=== Get a real bug ===<br />
<br />
At this point, you've seen nearly everything you need to do hack on SpiderMonkey. So it's time to get a real bug to work on. You can get a bug on [http://www.joshmatthews.net/bugsahoy/?jseng=1&unowned=1 Bugs Ahoy].<br />
<br />
Fix the bug, updating the bug report with your progress, and asking questions as you go (either in the bug comments, or in the [https://chat.mozilla.org/#/room/#spidermonkey:mozilla.org SpiderMonkey room] on Matrix). When it's done, repeat all the steps above. Then it's time to get your patch into the tree.<br />
<br />
=== Submit a patch ===<br />
<br />
To get the patch from mercurial, use: <br />
<br />
hg qdiff # if you're using queues or<br />
hg diff # if you're not<br />
<br />
Add it to the bug as an attachment. <br />
<br />
=== Get a review ===<br />
<br />
Nothing gets into the tree without a review, so you'll need one. The [[JavaScript:Hackers|SpiderMonkey hackers list]] is a good place to start: if your patch changes something listed as an area of expertise for someone there, that's a good person to ask for a review.<br />
<br />
Alternatively run <code>hg blame</code> on the files you've changed, and check who has been changing related code recently. They're likely to be good candidates. An irc bot can automate this process for a single file if you enter "/msg mrgiggles who can review something.cpp?" into your irc client.<br />
<br />
The review will consist of comments on your changes, suggesting or requesting alternative ways to do something and asking you to make changes where needed. They might also request additional changes, for example tests. Fix what they ask, resubmit the patch to bugzilla, and ask for another review. After you repeat this step a few times, they will mark the patch as "<code>r+</code>" meaning it's now good to commit.<br />
<br />
=== Commit ===<br />
<br />
You can't commit to mozilla-central / mozilla-inbound until you have "level 3" access, so you'll need someone to do this for you. Try asking in [irc://irc.mozilla.org/#jsapi #jsapi], or add the <code>checkin-needed</code> keyword to the bug. After you have been contributing for a while, you can get level 3 access by [https://www.mozilla.org/hacking/commit-access-policy/ applying for it].<br />
<br />
After committing, a large series of tests will be run to make sure you didn't break anything. You will need to hang around to make sure you didn't break something. It is difficult to determine what failures are real and what are what we call "intermittent oranges" ("orange" because that is the color used on our continuous integration dashboard for test failures). If you do break something, a sheriff will probably let you know via IRC and will probably back your patch out. You can always ask [irc://irc.mozilla.org/#jsapi for help] determining what is going on. (Over time you'll get a feel for figuring out when breakage is real on your own.)<br />
<br />
== Overview of the JS engine ==<br />
<br />
The JS engine is a swiftly moving target. The most detailed information is available at https://developer.mozilla.org/en/SpiderMonkey. Here are some particularly interesting, mostly up-to-date resources:<br />
<br />
<br />
=== High level overviews ===<br />
<br />
(Outdated) http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/<br />
<br />
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals<br />
<br />
=== Medium level documentation ===<br />
<br />
jsapi.h: http://hg.mozilla.org/mozilla-central/file/tip/js/src/jsapi.h and the files in http://hg.mozilla.org/mozilla-central/file/tip/js/public<br />
<br />
Frequently used coding recipes and mappings from JS idioms to SpiderMonkey code: https://developer.mozilla.org/En/SpiderMonkey/JSAPI_Cookbook<br />
<br />
=== Detailed documentation ===<br />
<br />
Build: https://developer.mozilla.org/en/SpiderMonkey/Build_Documentation<br />
<br />
Testing: https://developer.mozilla.org/en/SpiderMonkey/Running_Automated_JavaScript_Tests<br />
<br />
Shell: https://developer.mozilla.org/En/SpiderMonkey/Introduction_to_the_JavaScript_shell<br />
<br />
Function reference: https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference<br />
<br />
<br />
== Collaboration and teamwork ==<br />
<br />
=== Communication (in descending order of information content) ===<br />
<br />
Nearly all communication is handled through [https://bugzilla.mozilla.org Bugzilla]. All bugs, feature requests, issues, enhancements, etc, are all referred to as bugs. No code may enter the Mozilla repository without being a patch attached to a bugzilla bug first. To follow all SpiderMonkey related bugs:<br />
<br />
Go to [https://bugzilla.mozilla.org/userprefs.cgi?tab=email email preferences]<br />
Watch the user general@spidermonkey.bugs<br />
Or watch one of the JS components in the Core product: JavaScript Engine, JavaScript Engine: JIT, JavaScript: GC, or JavaScript: Standard Library<br />
<br />
SpiderMonkey contributors generally hang out in the very active [irc://irc.mozilla.org/jsapi #jsapi IRC channel].<br />
<br />
The [https://www.mozilla.org/about/forums/#dev-tech-js-engine-internals js-internals mailing list] is used for communicating with other SpiderMonkey hackers. (<i>Internals</i> as in discussing the internals of the SpiderMonkey engine. All are welcome on the list.).<br />
<br />
Reading Planet Mozilla is the best way to keep up with the Mozilla project, which includes some SpiderMonkey related blogs:<br />
<br />
[https://blog.mozilla.org/javascript General JavaScript blog]<br />
[http://blog.mozilla.com/jorendorff Jason Orendorff]<br />
[http://blog.mozilla.com/nnethercote/ Nicholas Nethercote]<br />
[http://whereswalden.com/ Jeff Walden]<br />
[https://itcouldbesomuchbetter.wordpress.com Jim Blandy]<br />
[https://jandemooij.nl/ Jan de Mooij]<br />
[https://h4writer.com/ Hannes Verschore]<br />
[http://rfrn.org/~shu/ Shu-yu Guo]<br />
[https://blog.benj.me/tag/mozilla.html Benjamin Bouvier]<br />
<br />
The [https://developer.mozilla.org/en/SpiderMonkey#Community js-engine mailing list] is generally used for communicating with people who embed SpiderMonkey, such as asking questions and announcing API changes. No actual development happens on the list.<br />
<br />
== Code considerations ==<br />
<br />
=== Repository ===<br />
<br />
Most active work on SpiderMonkey is done in the [http://hg.mozilla.org/mozilla-central mozilla-central] branch of the mozilla repository.<br />
<br />
=== Coding Style ===<br />
<br />
For many years, SpiderMonkey was written in C, and is gradually moving to C++. We still avoid many features such as run-time type information and exceptions, and generally avoid virtual functions for core data, but have come around to the glory of templates and namespaces relatively recently. Read the [[JavaScript:SpiderMonkey:C++ Coding Style|Coding Style]]. Do NOT read the portability guidelines, which I will not link to, since they are very out of date.<br />
<br />
=== Workflow ===<br />
<br />
Everything goes through bugzilla. We find a bug or have an idea, then submit it to bugzilla, then file patches to solve it. When it is solved, the patch is reviewed by team members, and is then committed to the [http://hg.mozilla.org/integration/mozilla-inbound mozilla-inbound repository]. A link to the commit is then automatically added as a comment to the bug. mozilla-inbound is periodically merged to mozilla-central by a Sheriff. This exempts us from watching [https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound treeherder] to check for failures caused by our patches, and commits are automatically backed out if errors are found.<br />
<br />
==== Sample Workflows ====<br />
<br />
(Outdated) [http://blog.mozilla.com/nnethercote/2009/07/27/how-i-work-on-tracemonkey/ Nicholas Nethercote: How I work on Tracemonkey]<br />
<br />
[https://blog.mozilla.org/sfink/2017/06/01/sfink-mozilla-workflow/ Steve Fink: Mozilla workflow]<br />
<br />
I (Paul Bone) suggest stating with a [http://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/unifiedrepo.html unified repository] checkout with the extensions and customization from Steve's workflow, using [https://www.mercurial-scm.org/wiki/ShareExtension hg share] to create workspaces, use bookmarks to track your new feature developments, and using [https://www.mercurial-scm.org/wiki/HisteditExtension hg histedit] and [https://www.mercurial-scm.org/wiki/RebaseExtension hg rebase] to prepare your patches for publication.<br />
<br />
=== Policy ===<br />
<br />
The following docs are for the Mozilla project, and differ ever so slightly from what you should do for SpiderMonkey. For example, you should find reviewers in #jsapi rather than #developers.<br />
<br />
[http://www.mozilla.org/hacking/committer/ How to get commit access]<br />
<br />
[https://developer.mozilla.org/en/Creating_a_patch How to make patches]<br />
<br />
[https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch Submitting a patch]<br />
<br />
[https://developer.mozilla.org/en/Supported_build_configurations Supported Platforms]<br />
<br />
==== .hgrc file ====<br />
<br />
This .hgrc file contains a lot of the wisdom distilled through the wiki:<br />
<br />
[extensions]<br />
mq =<br />
<br />
[ui]<br />
username = First Last <email@domain.tld><br />
<br />
[alias]<br />
qfulldiff = diff --rev qparent:.<br />
<br />
[defaults]<br />
diff = -p -U 8<br />
qdiff = -p -U 8<br />
qnew = -U<br />
commit = -v<br />
<br />
[diff]<br />
git = true<br />
showfunc = true<br />
unified = 8<br />
<br />
[paths]<br />
try = ssh://email@domain.tld@hg.mozilla.org/try/<br />
<br />
=== Try server ===<br />
<br />
Often, you may be a little wary of breaking things. Mozilla has a [[Build:TryServer|Try Server]] where you can send a patch, and it'll be built and tested on tons of machines, which report to [https://treeherder.mozilla.org/#/jobs?repo=try TreeHerder]. Although you don't have [https://www.mozilla.org/hacking/commit-access-policy/ access] to TryServer just yet, you can get someone else to push it there for you. Just attach a patch to your bug, and ask in a comment, or on [irc://irc.mozilla.org/#jsapi #jsapi]. To be able to push to try-server yourself, you will need "level 1" access, which you can [https://www.mozilla.org/hacking/commit-access-policy/ request] once you've contributed a patch or two.<br />
<br />
=== Mercurial Queues ===<br />
<br />
Since most of our lives revolve around patches, and we use Mercurial, nearly everybody uses Mercurial queues.<br />
<br />
Queues are based on the idea of patch management. Each queue consists of a series of patches, applied sequentially. The aim of the game is to split potential commits into simple, bite-sized chunks which are easy to review. This also makes it simple to experiment without polluting your existing work on a bug, to spin parts off into new bugs, and to rapidly apply and unapply patches (as demonstrated in the tutorial above).<br />
<br />
==== Enabling ====<br />
<br />
Add the following snippet to your .hgrc file to enable MQ<br />
<br />
[extensions]<br />
mq =<br />
<br />
==== Example MQ workflow ====<br />
<br />
Clone the repository to deal with a bug:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central<br />
<br />
Initialize your queue:<br />
<br />
hg qinit -c<br />
<br />
Create a new patch, with some name:<br />
<br />
hg qnew first_attempt<br />
<br />
Work on the patch, try to fix the bug, test, compile, etc.<br />
<br />
Refresh (save your work into the patch):<br />
<br />
hg qrefresh<br />
<br />
Repeat a few times.<br />
<br />
Rename the patch (because your first name wasn't appliable):<br />
<br />
hg qrename refactor_the_whatsit<br />
<br />
Create a new patch to try a logically separate part of the same bug:<br />
<br />
hg qnew rip_out_the_old_thing<br />
<br />
Repeat the process a few times, until you have solved the problem. During this time, it can often be useful to go back and forth between patches:<br />
<br />
hg qpop # unapply a patch<br />
hg qpush # reapply a patch<br />
hg qpop -a # unapply all patches<br />
hg qpush -a # reapply all patches<br />
<br />
<br />
Combine all the patches into a single patch, which you submit to bugzilla:<br />
<br />
hg qpush -a<br />
hg qdiff --rev qparent:. > my_wonderful_patch.patch<br />
<br />
Commit the patches to your local patch repository, in case you make a mistake (You might do this periodically):<br />
<br />
hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's just for you"<br />
<br />
Go back to the old patches and fiddle with them based on feedback:<br />
<br />
hg qpop<br />
hg qrefresh<br />
etc<br />
<br />
There are some more complex techniques that we won't go into in detail. You can enable only some patches using qguard and qselect, and you can reorder the patches by manually editing the .hg/patches/series file. But be careful!<br />
<br />
[[Category:New Contributor Landing Page]]</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:New_to_SpiderMonkey&diff=1226446JavaScript:New to SpiderMonkey2020-04-23T15:11:34Z<p>Jandem: Fix typo</p>
<hr />
<div>== Tutorial: your first patch ==<br />
<br />
The first step to getting involved with SpiderMonkey is to make your first patch. This guides you through it, and at the end you should have learnt a lot of the procedures and formalisms involved in getting things done here.<br />
<br />
We'll assume you're on a Unix-y platform, and that you know what you're doing. We'll ignore nearly all details. <br />
<br />
=== Get the code ===<br />
<br />
Spidermonkey development happens in the "mozilla-central" mercurial repository:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central spidermonkey<br />
<br />
See [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial/Bundles Mercurial bundles] for information about downloading a single large file instead of using "hg clone". Recent versions of Mercurial will do this automatically.<br />
<br />
=== Build the js shell ===<br />
<br />
Most of the time, you'll be working with the JavaScript shell, instead of the full Firefox browser. See the [https://firefox-source-docs.mozilla.org/js/build.html SpiderMonkey build documentation] for how to build the shell.<br />
<br />
=== Fix something ===<br />
<br />
At this point, you're ready to make your first fix. <br />
<br />
TODO: something useless. Maybe adding a datemicrosecond function.<br />
<br />
==== Building your changes ====<br />
<br />
Having made the change, build the shell again. <br />
<br />
./mach build<br />
<br />
==== Testing your changes ====<br />
<br />
It builds. Hurray. Time to run the tests to check you haven't broken anything. <br />
<br />
./mach jit-test<br />
<br />
The jit-tests are pretty quick, and should give you an idea if you've gotten something wrong. Assuming nothing goes wrong, try the ref-tests: <br />
<br />
./mach jstests<br />
<br />
<br />
==== Benchmark your changes ====<br />
<br />
Tests all pass. Congrats, you didn't break anything. Now, did you make it faster or slower? We benchmark using a number of different benchmark suites.<br />
<br />
* v8<br />
* SunSpider: One of the original js benchmarks. No real value left.<br />
* Octane: Another js benchmark that we heavily optimized for in the past. Isn't representative of current web workloads.<br />
* speedometer: A full browser benchmark. Testing react, ember, etc. Intended to be a better measure of "responsiveness". We are currently optimizing for version 2 it.<br />
<br />
Get the benchmarks: <br />
<br />
svn checkout http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider<br />
<br />
And now run them: <br />
<br />
cd SunSpider <br />
./sunspider --shell=../build_DBG.OBJ/dist/bin/js --run=30 --suite=sunspider-0.9.1 <br />
cd ..<br />
<br />
===== Optimized build =====<br />
<br />
Whoops, we benchmarked the debug version. Let's make an optimized build to test instead.<br />
<br />
mkdir build_OPT.OBJ <br />
cd build_OPT.OBJ <br />
../configure --disable-debug --enable-optimize<br />
make <br />
cd ..<br />
<br />
Repeat the sunspider steps above, and take note of the line that looks like: <br />
<br />
Results are located at sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
You'll need that later. <br />
<br />
===== Baseline version / Mercurial Queues =====<br />
<br />
We need to time our optimized version against the baseline version. This calls for a brief introduction to mercurial queues, which used to be the way most people managed their SpiderMonkey workflow (though these days many people use native hg, native hg + evolution, or git):<br />
<br />
hg qinit<br />
hg qnew my_first_patch -f<br />
hg qrefresh<br />
<br />
This puts your current work into a patch, managed by Mercurial, symbolically called my_first_patch. To pop the patch off: <br />
<br />
hg qpop<br />
<br />
And we're back to our pristine version.<br />
<br />
===== Compare =====<br />
<br />
Build again and rerun SunSpider again. You should now have two files like: <br />
<br />
sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
Compare them using the compare script: <br />
<br />
cd SunSpider <br />
./sunspider-compare-results --shell=../build_DBG.OBJ/js --suite=sunspider-0.9.1 FILE1-withoutPatch FILE2-withPatch<br />
<br />
=== Get a real bug ===<br />
<br />
At this point, you've seen nearly everything you need to do hack on SpiderMonkey. So it's time to get a real bug to work on. You can get a bug on [http://www.joshmatthews.net/bugsahoy/?jseng=1&unowned=1 Bugs Ahoy].<br />
<br />
Fix the bug, updating the bug report with your progress, and asking questions as you go (either in the bug comments, or in [irc://irc.mozilla.org/#jsapi #jsapi]). When it's done, repeat all the steps above. Then it's time to get your patch into the tree.<br />
<br />
=== Submit a patch ===<br />
<br />
To get the patch from mercurial, use: <br />
<br />
hg qdiff # if you're using queues or<br />
hg diff # if you're not<br />
<br />
Add it to the bug as an attachment. <br />
<br />
=== Get a review ===<br />
<br />
Nothing gets into the tree without a review, so you'll need one. The [[JavaScript:Hackers|SpiderMonkey hackers list]] is a good place to start: if your patch changes something listed as an area of expertise for someone there, that's a good person to ask for a review.<br />
<br />
Alternatively run <code>hg blame</code> on the files you've changed, and check who has been changing related code recently. They're likely to be good candidates. An irc bot can automate this process for a single file if you enter "/msg mrgiggles who can review something.cpp?" into your irc client.<br />
<br />
The review will consist of comments on your changes, suggesting or requesting alternative ways to do something and asking you to make changes where needed. They might also request additional changes, for example tests. Fix what they ask, resubmit the patch to bugzilla, and ask for another review. After you repeat this step a few times, they will mark the patch as "<code>r+</code>" meaning it's now good to commit.<br />
<br />
=== Commit ===<br />
<br />
You can't commit to mozilla-central / mozilla-inbound until you have "level 3" access, so you'll need someone to do this for you. Try asking in [irc://irc.mozilla.org/#jsapi #jsapi], or add the <code>checkin-needed</code> keyword to the bug. After you have been contributing for a while, you can get level 3 access by [https://www.mozilla.org/hacking/commit-access-policy/ applying for it].<br />
<br />
After committing, a large series of tests will be run to make sure you didn't break anything. You will need to hang around to make sure you didn't break something. It is difficult to determine what failures are real and what are what we call "intermittent oranges" ("orange" because that is the color used on our continuous integration dashboard for test failures). If you do break something, a sheriff will probably let you know via IRC and will probably back your patch out. You can always ask [irc://irc.mozilla.org/#jsapi for help] determining what is going on. (Over time you'll get a feel for figuring out when breakage is real on your own.)<br />
<br />
== Overview of the JS engine ==<br />
<br />
The JS engine is a swiftly moving target. The most detailed information is available at https://developer.mozilla.org/en/SpiderMonkey. Here are some particularly interesting, mostly up-to-date resources:<br />
<br />
<br />
=== High level overviews ===<br />
<br />
(Outdated) http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/<br />
<br />
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals<br />
<br />
=== Medium level documentation ===<br />
<br />
jsapi.h: http://hg.mozilla.org/mozilla-central/file/tip/js/src/jsapi.h and the files in http://hg.mozilla.org/mozilla-central/file/tip/js/public<br />
<br />
Frequently used coding recipes and mappings from JS idioms to SpiderMonkey code: https://developer.mozilla.org/En/SpiderMonkey/JSAPI_Cookbook<br />
<br />
=== Detailed documentation ===<br />
<br />
Build: https://developer.mozilla.org/en/SpiderMonkey/Build_Documentation<br />
<br />
Testing: https://developer.mozilla.org/en/SpiderMonkey/Running_Automated_JavaScript_Tests<br />
<br />
Shell: https://developer.mozilla.org/En/SpiderMonkey/Introduction_to_the_JavaScript_shell<br />
<br />
Function reference: https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference<br />
<br />
<br />
== Collaboration and teamwork ==<br />
<br />
=== Communication (in descending order of information content) ===<br />
<br />
Nearly all communication is handled through [https://bugzilla.mozilla.org Bugzilla]. All bugs, feature requests, issues, enhancements, etc, are all referred to as bugs. No code may enter the Mozilla repository without being a patch attached to a bugzilla bug first. To follow all SpiderMonkey related bugs:<br />
<br />
Go to [https://bugzilla.mozilla.org/userprefs.cgi?tab=email email preferences]<br />
Watch the user general@spidermonkey.bugs<br />
Or watch one of the JS components in the Core product: JavaScript Engine, JavaScript Engine: JIT, JavaScript: GC, or JavaScript: Standard Library<br />
<br />
SpiderMonkey contributors generally hang out in the very active [irc://irc.mozilla.org/jsapi #jsapi IRC channel].<br />
<br />
The [https://www.mozilla.org/about/forums/#dev-tech-js-engine-internals js-internals mailing list] is used for communicating with other SpiderMonkey hackers. (<i>Internals</i> as in discussing the internals of the SpiderMonkey engine. All are welcome on the list.).<br />
<br />
Reading Planet Mozilla is the best way to keep up with the Mozilla project, which includes some SpiderMonkey related blogs:<br />
<br />
[https://blog.mozilla.org/javascript General JavaScript blog]<br />
[http://blog.mozilla.com/jorendorff Jason Orendorff]<br />
[http://blog.mozilla.com/nnethercote/ Nicholas Nethercote]<br />
[http://whereswalden.com/ Jeff Walden]<br />
[https://itcouldbesomuchbetter.wordpress.com Jim Blandy]<br />
[https://jandemooij.nl/ Jan de Mooij]<br />
[https://h4writer.com/ Hannes Verschore]<br />
[http://rfrn.org/~shu/ Shu-yu Guo]<br />
[https://blog.benj.me/tag/mozilla.html Benjamin Bouvier]<br />
<br />
The [https://developer.mozilla.org/en/SpiderMonkey#Community js-engine mailing list] is generally used for communicating with people who embed SpiderMonkey, such as asking questions and announcing API changes. No actual development happens on the list.<br />
<br />
== Code considerations ==<br />
<br />
=== Repository ===<br />
<br />
Most active work on SpiderMonkey is done in the [http://hg.mozilla.org/mozilla-central mozilla-central] branch of the mozilla repository.<br />
<br />
=== Coding Style ===<br />
<br />
For many years, SpiderMonkey was written in C, and is gradually moving to C++. We still avoid many features such as run-time type information and exceptions, and generally avoid virtual functions for core data, but have come around to the glory of templates and namespaces relatively recently. Read the [[JavaScript:SpiderMonkey:C++ Coding Style|Coding Style]]. Do NOT read the portability guidelines, which I will not link to, since they are very out of date.<br />
<br />
=== Workflow ===<br />
<br />
Everything goes through bugzilla. We find a bug or have an idea, then submit it to bugzilla, then file patches to solve it. When it is solved, the patch is reviewed by team members, and is then committed to the [http://hg.mozilla.org/integration/mozilla-inbound mozilla-inbound repository]. A link to the commit is then automatically added as a comment to the bug. mozilla-inbound is periodically merged to mozilla-central by a Sheriff. This exempts us from watching [https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound treeherder] to check for failures caused by our patches, and commits are automatically backed out if errors are found.<br />
<br />
==== Sample Workflows ====<br />
<br />
(Outdated) [http://blog.mozilla.com/nnethercote/2009/07/27/how-i-work-on-tracemonkey/ Nicholas Nethercote: How I work on Tracemonkey]<br />
<br />
[https://blog.mozilla.org/sfink/2017/06/01/sfink-mozilla-workflow/ Steve Fink: Mozilla workflow]<br />
<br />
I (Paul Bone) suggest stating with a [http://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/unifiedrepo.html unified repository] checkout with the extensions and customization from Steve's workflow, using [https://www.mercurial-scm.org/wiki/ShareExtension hg share] to create workspaces, use bookmarks to track your new feature developments, and using [https://www.mercurial-scm.org/wiki/HisteditExtension hg histedit] and [https://www.mercurial-scm.org/wiki/RebaseExtension hg rebase] to prepare your patches for publication.<br />
<br />
=== Policy ===<br />
<br />
The following docs are for the Mozilla project, and differ ever so slightly from what you should do for SpiderMonkey. For example, you should find reviewers in #jsapi rather than #developers.<br />
<br />
[http://www.mozilla.org/hacking/committer/ How to get commit access]<br />
<br />
[https://developer.mozilla.org/en/Creating_a_patch How to make patches]<br />
<br />
[https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch Submitting a patch]<br />
<br />
[https://developer.mozilla.org/en/Supported_build_configurations Supported Platforms]<br />
<br />
==== .hgrc file ====<br />
<br />
This .hgrc file contains a lot of the wisdom distilled through the wiki:<br />
<br />
[extensions]<br />
mq =<br />
<br />
[ui]<br />
username = First Last <email@domain.tld><br />
<br />
[alias]<br />
qfulldiff = diff --rev qparent:.<br />
<br />
[defaults]<br />
diff = -p -U 8<br />
qdiff = -p -U 8<br />
qnew = -U<br />
commit = -v<br />
<br />
[diff]<br />
git = true<br />
showfunc = true<br />
unified = 8<br />
<br />
[paths]<br />
try = ssh://email@domain.tld@hg.mozilla.org/try/<br />
<br />
=== Try server ===<br />
<br />
Often, you may be a little wary of breaking things. Mozilla has a [[Build:TryServer|Try Server]] where you can send a patch, and it'll be built and tested on tons of machines, which report to [https://treeherder.mozilla.org/#/jobs?repo=try TreeHerder]. Although you don't have [https://www.mozilla.org/hacking/commit-access-policy/ access] to TryServer just yet, you can get someone else to push it there for you. Just attach a patch to your bug, and ask in a comment, or on [irc://irc.mozilla.org/#jsapi #jsapi]. To be able to push to try-server yourself, you will need "level 1" access, which you can [https://www.mozilla.org/hacking/commit-access-policy/ request] once you've contributed a patch or two.<br />
<br />
=== Mercurial Queues ===<br />
<br />
Since most of our lives revolve around patches, and we use Mercurial, nearly everybody uses Mercurial queues.<br />
<br />
Queues are based on the idea of patch management. Each queue consists of a series of patches, applied sequentially. The aim of the game is to split potential commits into simple, bite-sized chunks which are easy to review. This also makes it simple to experiment without polluting your existing work on a bug, to spin parts off into new bugs, and to rapidly apply and unapply patches (as demonstrated in the tutorial above).<br />
<br />
==== Enabling ====<br />
<br />
Add the following snippet to your .hgrc file to enable MQ<br />
<br />
[extensions]<br />
mq =<br />
<br />
==== Example MQ workflow ====<br />
<br />
Clone the repository to deal with a bug:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central<br />
<br />
Initialize your queue:<br />
<br />
hg qinit -c<br />
<br />
Create a new patch, with some name:<br />
<br />
hg qnew first_attempt<br />
<br />
Work on the patch, try to fix the bug, test, compile, etc.<br />
<br />
Refresh (save your work into the patch):<br />
<br />
hg qrefresh<br />
<br />
Repeat a few times.<br />
<br />
Rename the patch (because your first name wasn't appliable):<br />
<br />
hg qrename refactor_the_whatsit<br />
<br />
Create a new patch to try a logically separate part of the same bug:<br />
<br />
hg qnew rip_out_the_old_thing<br />
<br />
Repeat the process a few times, until you have solved the problem. During this time, it can often be useful to go back and forth between patches:<br />
<br />
hg qpop # unapply a patch<br />
hg qpush # reapply a patch<br />
hg qpop -a # unapply all patches<br />
hg qpush -a # reapply all patches<br />
<br />
<br />
Combine all the patches into a single patch, which you submit to bugzilla:<br />
<br />
hg qpush -a<br />
hg qdiff --rev qparent:. > my_wonderful_patch.patch<br />
<br />
Commit the patches to your local patch repository, in case you make a mistake (You might do this periodically):<br />
<br />
hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's just for you"<br />
<br />
Go back to the old patches and fiddle with them based on feedback:<br />
<br />
hg qpop<br />
hg qrefresh<br />
etc<br />
<br />
There are some more complex techniques that we won't go into in detail. You can enable only some patches using qguard and qselect, and you can reorder the patches by manually editing the .hg/patches/series file. But be careful!<br />
<br />
[[Category:New Contributor Landing Page]]</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:New_to_SpiderMonkey&diff=1226445JavaScript:New to SpiderMonkey2020-04-23T15:10:49Z<p>Jandem: Use mach-based workflow</p>
<hr />
<div>== Tutorial: your first patch ==<br />
<br />
The first step to getting involved with SpiderMonkey is to make your first patch. This guides you through it, and at the end you should have learnt a lot of the procedures and formalisms involved in getting things done here.<br />
<br />
We'll assume you're on a Unix-y platform, and that you know what you're doing. We'll ignore nearly all details. <br />
<br />
=== Get the code ===<br />
<br />
Spidermonkey development happens in the "mozilla-central" mercurial repository:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central spidermonkey<br />
<br />
See [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial/Bundles Mercurial bundles] for information about downloading a single large file instead of using "hg clone". Recent versions of Mercurial will do this automatically.<br />
<br />
=== Build the js shell ===<br />
<br />
Most of the time, you'll be working with the JavaScript shell, instead of the full Firefox browser. See the [https://firefox-source-docs.mozilla.org/js/build.html SpiderMonkey build documentation] for how to do that.<br />
<br />
=== Fix something ===<br />
<br />
At this point, you're ready to make your first fix. <br />
<br />
TODO: something useless. Maybe adding a datemicrosecond function.<br />
<br />
==== Building your changes ====<br />
<br />
Having made the change, build the shell again. <br />
<br />
./mach build<br />
<br />
==== Testing your changes ====<br />
<br />
It builds. Hurray. Time to run the tests to check you haven't broken anything. <br />
<br />
./mach jit-test<br />
<br />
The jit-tests are pretty quick, and should give you an idea if you've gotten something wrong. Assuming nothing goes wrong, try the ref-tests: <br />
<br />
./mach jstests<br />
<br />
<br />
==== Benchmark your changes ====<br />
<br />
Tests all pass. Congrats, you didn't break anything. Now, did you make it faster or slower? We benchmark using a number of different benchmark suites.<br />
<br />
* v8<br />
* SunSpider: One of the original js benchmarks. No real value left.<br />
* Octane: Another js benchmark that we heavily optimized for in the past. Isn't representative of current web workloads.<br />
* speedometer: A full browser benchmark. Testing react, ember, etc. Intended to be a better measure of "responsiveness". We are currently optimizing for version 2 it.<br />
<br />
Get the benchmarks: <br />
<br />
svn checkout http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider<br />
<br />
And now run them: <br />
<br />
cd SunSpider <br />
./sunspider --shell=../build_DBG.OBJ/dist/bin/js --run=30 --suite=sunspider-0.9.1 <br />
cd ..<br />
<br />
===== Optimized build =====<br />
<br />
Whoops, we benchmarked the debug version. Let's make an optimized build to test instead.<br />
<br />
mkdir build_OPT.OBJ <br />
cd build_OPT.OBJ <br />
../configure --disable-debug --enable-optimize<br />
make <br />
cd ..<br />
<br />
Repeat the sunspider steps above, and take note of the line that looks like: <br />
<br />
Results are located at sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
You'll need that later. <br />
<br />
===== Baseline version / Mercurial Queues =====<br />
<br />
We need to time our optimized version against the baseline version. This calls for a brief introduction to mercurial queues, which used to be the way most people managed their SpiderMonkey workflow (though these days many people use native hg, native hg + evolution, or git):<br />
<br />
hg qinit<br />
hg qnew my_first_patch -f<br />
hg qrefresh<br />
<br />
This puts your current work into a patch, managed by Mercurial, symbolically called my_first_patch. To pop the patch off: <br />
<br />
hg qpop<br />
<br />
And we're back to our pristine version.<br />
<br />
===== Compare =====<br />
<br />
Build again and rerun SunSpider again. You should now have two files like: <br />
<br />
sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
Compare them using the compare script: <br />
<br />
cd SunSpider <br />
./sunspider-compare-results --shell=../build_DBG.OBJ/js --suite=sunspider-0.9.1 FILE1-withoutPatch FILE2-withPatch<br />
<br />
=== Get a real bug ===<br />
<br />
At this point, you've seen nearly everything you need to do hack on SpiderMonkey. So it's time to get a real bug to work on. You can get a bug on [http://www.joshmatthews.net/bugsahoy/?jseng=1&unowned=1 Bugs Ahoy].<br />
<br />
Fix the bug, updating the bug report with your progress, and asking questions as you go (either in the bug comments, or in [irc://irc.mozilla.org/#jsapi #jsapi]). When it's done, repeat all the steps above. Then it's time to get your patch into the tree.<br />
<br />
=== Submit a patch ===<br />
<br />
To get the patch from mercurial, use: <br />
<br />
hg qdiff # if you're using queues or<br />
hg diff # if you're not<br />
<br />
Add it to the bug as an attachment. <br />
<br />
=== Get a review ===<br />
<br />
Nothing gets into the tree without a review, so you'll need one. The [[JavaScript:Hackers|SpiderMonkey hackers list]] is a good place to start: if your patch changes something listed as an area of expertise for someone there, that's a good person to ask for a review.<br />
<br />
Alternatively run <code>hg blame</code> on the files you've changed, and check who has been changing related code recently. They're likely to be good candidates. An irc bot can automate this process for a single file if you enter "/msg mrgiggles who can review something.cpp?" into your irc client.<br />
<br />
The review will consist of comments on your changes, suggesting or requesting alternative ways to do something and asking you to make changes where needed. They might also request additional changes, for example tests. Fix what they ask, resubmit the patch to bugzilla, and ask for another review. After you repeat this step a few times, they will mark the patch as "<code>r+</code>" meaning it's now good to commit.<br />
<br />
=== Commit ===<br />
<br />
You can't commit to mozilla-central / mozilla-inbound until you have "level 3" access, so you'll need someone to do this for you. Try asking in [irc://irc.mozilla.org/#jsapi #jsapi], or add the <code>checkin-needed</code> keyword to the bug. After you have been contributing for a while, you can get level 3 access by [https://www.mozilla.org/hacking/commit-access-policy/ applying for it].<br />
<br />
After committing, a large series of tests will be run to make sure you didn't break anything. You will need to hang around to make sure you didn't break something. It is difficult to determine what failures are real and what are what we call "intermittent oranges" ("orange" because that is the color used on our continuous integration dashboard for test failures). If you do break something, a sheriff will probably let you know via IRC and will probably back your patch out. You can always ask [irc://irc.mozilla.org/#jsapi for help] determining what is going on. (Over time you'll get a feel for figuring out when breakage is real on your own.)<br />
<br />
== Overview of the JS engine ==<br />
<br />
The JS engine is a swiftly moving target. The most detailed information is available at https://developer.mozilla.org/en/SpiderMonkey. Here are some particularly interesting, mostly up-to-date resources:<br />
<br />
<br />
=== High level overviews ===<br />
<br />
(Outdated) http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/<br />
<br />
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals<br />
<br />
=== Medium level documentation ===<br />
<br />
jsapi.h: http://hg.mozilla.org/mozilla-central/file/tip/js/src/jsapi.h and the files in http://hg.mozilla.org/mozilla-central/file/tip/js/public<br />
<br />
Frequently used coding recipes and mappings from JS idioms to SpiderMonkey code: https://developer.mozilla.org/En/SpiderMonkey/JSAPI_Cookbook<br />
<br />
=== Detailed documentation ===<br />
<br />
Build: https://developer.mozilla.org/en/SpiderMonkey/Build_Documentation<br />
<br />
Testing: https://developer.mozilla.org/en/SpiderMonkey/Running_Automated_JavaScript_Tests<br />
<br />
Shell: https://developer.mozilla.org/En/SpiderMonkey/Introduction_to_the_JavaScript_shell<br />
<br />
Function reference: https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference<br />
<br />
<br />
== Collaboration and teamwork ==<br />
<br />
=== Communication (in descending order of information content) ===<br />
<br />
Nearly all communication is handled through [https://bugzilla.mozilla.org Bugzilla]. All bugs, feature requests, issues, enhancements, etc, are all referred to as bugs. No code may enter the Mozilla repository without being a patch attached to a bugzilla bug first. To follow all SpiderMonkey related bugs:<br />
<br />
Go to [https://bugzilla.mozilla.org/userprefs.cgi?tab=email email preferences]<br />
Watch the user general@spidermonkey.bugs<br />
Or watch one of the JS components in the Core product: JavaScript Engine, JavaScript Engine: JIT, JavaScript: GC, or JavaScript: Standard Library<br />
<br />
SpiderMonkey contributors generally hang out in the very active [irc://irc.mozilla.org/jsapi #jsapi IRC channel].<br />
<br />
The [https://www.mozilla.org/about/forums/#dev-tech-js-engine-internals js-internals mailing list] is used for communicating with other SpiderMonkey hackers. (<i>Internals</i> as in discussing the internals of the SpiderMonkey engine. All are welcome on the list.).<br />
<br />
Reading Planet Mozilla is the best way to keep up with the Mozilla project, which includes some SpiderMonkey related blogs:<br />
<br />
[https://blog.mozilla.org/javascript General JavaScript blog]<br />
[http://blog.mozilla.com/jorendorff Jason Orendorff]<br />
[http://blog.mozilla.com/nnethercote/ Nicholas Nethercote]<br />
[http://whereswalden.com/ Jeff Walden]<br />
[https://itcouldbesomuchbetter.wordpress.com Jim Blandy]<br />
[https://jandemooij.nl/ Jan de Mooij]<br />
[https://h4writer.com/ Hannes Verschore]<br />
[http://rfrn.org/~shu/ Shu-yu Guo]<br />
[https://blog.benj.me/tag/mozilla.html Benjamin Bouvier]<br />
<br />
The [https://developer.mozilla.org/en/SpiderMonkey#Community js-engine mailing list] is generally used for communicating with people who embed SpiderMonkey, such as asking questions and announcing API changes. No actual development happens on the list.<br />
<br />
== Code considerations ==<br />
<br />
=== Repository ===<br />
<br />
Most active work on SpiderMonkey is done in the [http://hg.mozilla.org/mozilla-central mozilla-central] branch of the mozilla repository.<br />
<br />
=== Coding Style ===<br />
<br />
For many years, SpiderMonkey was written in C, and is gradually moving to C++. We still avoid many features such as run-time type information and exceptions, and generally avoid virtual functions for core data, but have come around to the glory of templates and namespaces relatively recently. Read the [[JavaScript:SpiderMonkey:C++ Coding Style|Coding Style]]. Do NOT read the portability guidelines, which I will not link to, since they are very out of date.<br />
<br />
=== Workflow ===<br />
<br />
Everything goes through bugzilla. We find a bug or have an idea, then submit it to bugzilla, then file patches to solve it. When it is solved, the patch is reviewed by team members, and is then committed to the [http://hg.mozilla.org/integration/mozilla-inbound mozilla-inbound repository]. A link to the commit is then automatically added as a comment to the bug. mozilla-inbound is periodically merged to mozilla-central by a Sheriff. This exempts us from watching [https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound treeherder] to check for failures caused by our patches, and commits are automatically backed out if errors are found.<br />
<br />
==== Sample Workflows ====<br />
<br />
(Outdated) [http://blog.mozilla.com/nnethercote/2009/07/27/how-i-work-on-tracemonkey/ Nicholas Nethercote: How I work on Tracemonkey]<br />
<br />
[https://blog.mozilla.org/sfink/2017/06/01/sfink-mozilla-workflow/ Steve Fink: Mozilla workflow]<br />
<br />
I (Paul Bone) suggest stating with a [http://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/unifiedrepo.html unified repository] checkout with the extensions and customization from Steve's workflow, using [https://www.mercurial-scm.org/wiki/ShareExtension hg share] to create workspaces, use bookmarks to track your new feature developments, and using [https://www.mercurial-scm.org/wiki/HisteditExtension hg histedit] and [https://www.mercurial-scm.org/wiki/RebaseExtension hg rebase] to prepare your patches for publication.<br />
<br />
=== Policy ===<br />
<br />
The following docs are for the Mozilla project, and differ ever so slightly from what you should do for SpiderMonkey. For example, you should find reviewers in #jsapi rather than #developers.<br />
<br />
[http://www.mozilla.org/hacking/committer/ How to get commit access]<br />
<br />
[https://developer.mozilla.org/en/Creating_a_patch How to make patches]<br />
<br />
[https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch Submitting a patch]<br />
<br />
[https://developer.mozilla.org/en/Supported_build_configurations Supported Platforms]<br />
<br />
==== .hgrc file ====<br />
<br />
This .hgrc file contains a lot of the wisdom distilled through the wiki:<br />
<br />
[extensions]<br />
mq =<br />
<br />
[ui]<br />
username = First Last <email@domain.tld><br />
<br />
[alias]<br />
qfulldiff = diff --rev qparent:.<br />
<br />
[defaults]<br />
diff = -p -U 8<br />
qdiff = -p -U 8<br />
qnew = -U<br />
commit = -v<br />
<br />
[diff]<br />
git = true<br />
showfunc = true<br />
unified = 8<br />
<br />
[paths]<br />
try = ssh://email@domain.tld@hg.mozilla.org/try/<br />
<br />
=== Try server ===<br />
<br />
Often, you may be a little wary of breaking things. Mozilla has a [[Build:TryServer|Try Server]] where you can send a patch, and it'll be built and tested on tons of machines, which report to [https://treeherder.mozilla.org/#/jobs?repo=try TreeHerder]. Although you don't have [https://www.mozilla.org/hacking/commit-access-policy/ access] to TryServer just yet, you can get someone else to push it there for you. Just attach a patch to your bug, and ask in a comment, or on [irc://irc.mozilla.org/#jsapi #jsapi]. To be able to push to try-server yourself, you will need "level 1" access, which you can [https://www.mozilla.org/hacking/commit-access-policy/ request] once you've contributed a patch or two.<br />
<br />
=== Mercurial Queues ===<br />
<br />
Since most of our lives revolve around patches, and we use Mercurial, nearly everybody uses Mercurial queues.<br />
<br />
Queues are based on the idea of patch management. Each queue consists of a series of patches, applied sequentially. The aim of the game is to split potential commits into simple, bite-sized chunks which are easy to review. This also makes it simple to experiment without polluting your existing work on a bug, to spin parts off into new bugs, and to rapidly apply and unapply patches (as demonstrated in the tutorial above).<br />
<br />
==== Enabling ====<br />
<br />
Add the following snippet to your .hgrc file to enable MQ<br />
<br />
[extensions]<br />
mq =<br />
<br />
==== Example MQ workflow ====<br />
<br />
Clone the repository to deal with a bug:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central<br />
<br />
Initialize your queue:<br />
<br />
hg qinit -c<br />
<br />
Create a new patch, with some name:<br />
<br />
hg qnew first_attempt<br />
<br />
Work on the patch, try to fix the bug, test, compile, etc.<br />
<br />
Refresh (save your work into the patch):<br />
<br />
hg qrefresh<br />
<br />
Repeat a few times.<br />
<br />
Rename the patch (because your first name wasn't appliable):<br />
<br />
hg qrename refactor_the_whatsit<br />
<br />
Create a new patch to try a logically separate part of the same bug:<br />
<br />
hg qnew rip_out_the_old_thing<br />
<br />
Repeat the process a few times, until you have solved the problem. During this time, it can often be useful to go back and forth between patches:<br />
<br />
hg qpop # unapply a patch<br />
hg qpush # reapply a patch<br />
hg qpop -a # unapply all patches<br />
hg qpush -a # reapply all patches<br />
<br />
<br />
Combine all the patches into a single patch, which you submit to bugzilla:<br />
<br />
hg qpush -a<br />
hg qdiff --rev qparent:. > my_wonderful_patch.patch<br />
<br />
Commit the patches to your local patch repository, in case you make a mistake (You might do this periodically):<br />
<br />
hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's just for you"<br />
<br />
Go back to the old patches and fiddle with them based on feedback:<br />
<br />
hg qpop<br />
hg qrefresh<br />
etc<br />
<br />
There are some more complex techniques that we won't go into in detail. You can enable only some patches using qguard and qselect, and you can reorder the patches by manually editing the .hg/patches/series file. But be careful!<br />
<br />
[[Category:New Contributor Landing Page]]</div>Jandemhttps://wiki.mozilla.org/index.php?title=Oxidation&diff=1226394Oxidation2020-04-22T13:29:46Z<p>Jandem: Rename Project Visage => SmooshMonkey</p>
<hr />
<div>'''Oxidation''' is a project to integrate [https://www.rust-lang.org/ Rust] code in and around Firefox. <br />
<br />
Rust support has been required on all platforms since Firefox 54, and the first major Rust components were shipped in Firefox 56 (encoding_rs) and 57 (Stylo). Moving forward, the goal of Oxidation is to make it easier and more productive to use Rust in Firefox, and correspondingly to increase the amount of Rust code in Firefox.<br />
<br />
This page is intended to serve as the starting point for all matters relating to Rust code in Firefox: the what, the why, and the how.<br />
<br />
= Guidelines =<br />
<br />
The goal of this section is to provide some high-level guidelines about when Rust should be used. <br />
<br />
In summary, Rust should be used in the following situations.<br />
* For new components and completely rewritten components there should be a strong bias towards using Rust, especially for code around Firefox but not within Firefox.<br />
* For existing components it's more complicated!<br />
<br />
The following sections have more detail. Ultimately, choice of language for a code component is an engineering decision, with corresponding trade-offs, and is best decided by individual teams.<br />
<br />
== Rust Strengths ==<br />
<br />
Rust has the following strengths.<br />
* Memory-safety and thread-safety. Crashes and security vulnerabilities are much less likely. (Roughly 70% of critical security vulnerabilities are due to memory safety bugs.)<br />
* High performance. In particular, the safety enables code that is designed more actively for performance, especially parallel performance.<br />
* Nimbleness. The safety enables significant changes to existing code to be made quickly and with confidence.<br />
* Expressiveness. It is powerful and pleasant to use, particularly once a moderate level of experience has been reached.<br />
* Excellent package management and an extensive ecosystem.<br />
* Excellent compiler error messages.<br />
* Excellent documentation.<br />
* A friendly and helpful community.<br />
<br />
== Rust Weaknesses ==<br />
<br />
One major issue with Rust relates to personnel.<br />
* There is a wide variety of experience levels within Mozilla, for both coding and reviewing.<br />
* Rust's learning curve is steep at the start, which can be intimidating. (The new borrow checker released in Rust 1.31 helped greatly with this.)<br />
<br />
There are also technical challenges.<br />
* Compilation is slow.<br />
* [https://gist.github.com/zbraniecki/b251714d77ffebbc73c03447f2b2c69f Crossing the C++/Rust boundary can be difficult].<br />
<br />
See "Blockers and obstacles" below for more details about work being done to remedy these weaknesses.<br />
<br />
== Recommendations ==<br />
<br />
Therefore, Rust is most suitable in the following situations.<br />
* For components that are relatively standalone, with small and simple APIs.<br />
** This minimizes the C++/Rust boundary layer issues.<br />
** Infrastructure tools that are standalone programs are ideal.<br />
** Note that it's good software engineering practice to write loosely-coupled components anyway.<br />
* For components that process untrusted input, e.g. parsers.<br />
** Rust's memory safety is a big help here.<br />
** See the [http://spw17.langsec.org/papers/chifflier-parsing-in-2017.pdf "Writing parsers like it is 2017"] paper for lots of good details.<br />
* For components where parallelism can provide big performance wins.<br />
* For components where Servo has demonstrated success.<br />
<br />
In terms of where to keep Rust crates, there are three options.<br />
* Put the crate in mozilla-central or in Servo's repository.<br />
** For binding code, the decision to put it into Gecko or Servo can be difficult. The best choice depends on the details of the binding code in question.<br />
* Put the crate on [https://crates.io crates.io] and use Cargo to access it at build-time.<br />
** This is only suitable for highly general-purpose crates, such as <tt>smallvec</tt>.<br />
* Put the crate somewhere else (e.g. a separate GitHub repository), and regularly vendor it into mozilla-central.<br />
** This makes sense for pre-existing third-party crates that we choose to import.<br />
** Otherwise, this option is not recommended, because vendoring is something of a hassle.<br />
<br />
In general, erring on the side of tighter coupling is advisable. For example, the <tt>heapsize</tt> crate used in memory reporting was moved to crates.io, and then other crates came to depend on it. Later on it needed major API changes, and we ended up replacing it with a new crate called <tt>malloc_size_of</tt> (stored in Servo's repository) because that was easier than modifying <tt>heapsize</tt>.<br />
<br />
= Documentation and assistance =<br />
<br />
== Rust in general ==<br />
<br />
* The [https://www.rust-lang.org/learn Rust Documentation] page is the best place to start. In particular, the [https://doc.rust-lang.org/book/ The Rust Programming Language] provides a good overview.<br />
* [https://www.rust-lang.org/en-US/community.html The Rust Community] page lists IRC channels, forums, and other places where Rust assistance can be obtained.<br />
* [http://shop.oreilly.com/product/0636920040385.do Programming Rust: Fast, Safe Systems Development], by Jim Blandy & Jason Orendorff, is a detailed guide to the language.<br />
* [https://github.com/ctjhoa/rust-learning rust-learning] is a huge collection of assorted Rust resources.<br />
<br />
== Rust in Firefox ==<br />
<br />
* [https://developer.mozilla.org/en-US/Firefox/Building_Firefox_with_Rust_code Developer Documentation]<br />
* [https://firefox-source-docs.mozilla.org/build/buildsystem/rust.html Build System Documentation]<br />
* [[Rust_Update_Policy_for_Firefox|Rust Update Policy for Firefox]]<br />
* [https://docs.google.com/presentation/d/1qkPwISU1BvsTVyqLuVhisSMuIS_DiXb8X09-boszcu0/edit#slide=id.g5bfdbbe5c9_0_71 How to build an XPCOM component in Rust]<br />
* [https://groups.google.com/forum/#!topic/mozilla.dev.platform/u8scZop3FkM In-tree helper crates for Rust XPCOM components]<br />
* [https://crisal.io/words/2020/02/28/C++-rust-ffi-patterns-1-complex-data-structures.html FFI patterns #1 - Complex Rust data structures exposed seamlessly to C++]<br />
* The Rust channel on [https://wiki.mozilla.org/Matrix Mozilla's Matrix network] contains lots of people who know about both Rust and Gecko.<br />
* Are you new to Rust and not sure if your Rust code could be improved? The following people can review Rust patches for Firefox from an "is this good Rust code?" point of view.<br />
** Alexis Beingessner (:Gankra)<br />
** Josh Bowman-Matthews (:jdm)<br />
** Emilio Cobos Alvarez (:emilio)<br />
** Manish Goregaokar (:manishearth)<br />
** Nika Layzell (:nika)<br />
** Cameron McCormack (:heycam)<br />
<br />
== FAQ ==<br />
<br />
'''Q:''' What is the policy for vendoring non-Mozilla crates into mozilla-central?<br /><br />
<br />
'''A:''' It is possible. The most important point is that the license must be compatible. Reviewers should also look at the crate code some to check that it looks reasonable (especially for unsafe code) and that it has reasonable tests. Other than that, there is no formal sign-off procedure, but one may be added in the future.<br />
<br />
<br />
'''Q:''' Do we support building standalone Rust programs?<br /><br />
<br />
'''A:''' Yes! Look for <tt>RUST_PROGRAMS</tt> rules in <tt>moz.build</tt> files.<br />
<br />
<br />
'''Q:''' How are in-tree Rust crates tested?<br /><br />
<br />
'''A:''' In general we don't run tests for third-party crates; the assumption is that these crates are sufficiently well-tested elsewhere. (Which means that large test fixtures should be removed when vendoring third-party crates, because they just bloat mozilla-central.) Mozilla crates can be tested with <tt>cargo test</tt> by adding them to <tt>RUST_TESTS</tt> in <tt>toolkit/library/rust/moz.build</tt>. Alternatively, you can write a GTest that uses FFI to call into Rust code.<br />
<br />
= Rust Components =<br />
<br />
== Within Firefox ==<br />
<br />
=== Shipped ===<br />
<br />
* MP4 metadata parser: {{bug|1161350}} (shipped for desktop in Firefox 48)<br />
** '''Why Rust?''' Parses untrusted input, replaces libstagefright, a 3rd-party library with a history of security vulnerabilities.<br />
* Replace uconv with encoding-rs: {{bug|1261841}} (shipped in Firefox 56)<br />
* CSS style calculation (from Servo): {{bug|stylo}} (shipped for desktop in Firefox 57)<br />
** '''Why Rust?''' Code taken from Servo, uses parallel algorithms.<br />
* U2F HID backend: {{bug|1388843}} (shipped in Firefox 57)<br />
* libcubeb Audio backend for Linux (PulseAudio): {{bug|1346665}} (shipped in Firefox 59)<br />
* XPIDL binding generator ({{bug|1293362}}) (shipped in Firefox 60)<br />
* New prefs parser: {{bug|1423840}} (shipped in Firefox 60)<br />
** '''Why Rust?''' Old parser needed replacing. Well-separated component, simple interface, parses untrusted input.<br />
* Audio remoting for Linux: {{bug|1434156}} (shipped in Firefox 60)<br />
* WebRender: {{bug|webrender}} (shipped in Firefox 67, enabled for users with appropriate hardware)<br />
** '''Why Rust?''' Code taken from Servo, has high performance; Rust's memory and thread safety assist productivity, and allow more aggressive optimizations.<br />
* kvstore (key-value storage backed by LMDB): {{bug|1490496}} (shipped in Firefox 67)<br />
** '''Why Rust?''' The rkv crate provides a safe, ergonomic wrapper around LMDB, our choice for simple key-value storage in Firefox. kvstore wraps rkv in an asynchronous XPCOM API for JS and C++ callers.<br />
* Profiler symbolication: {{bug|1509549}} (shipped in Firefox 67)<br />
** '''Why Rust?''' Makes use of existing crates that handle object file parsing and symbol iteration. Easy to compile to WebAssembly.<br />
* XUL store, backed by rkv: {{bug|1460811}} (landed in Firefox 68, used in Nightly only)<br />
* TLS certificate store, backed by rkv: {{bug|1429796}} (shipped in Firefox 68)<br />
* Synced bookmark merger: {{bug|1482608}} (shipped in Firefox 68, on by default in Nightly and early Beta)<br />
** '''Why Rust?''' Code sharing! The bookmark merging algorithm was factored out into a [https://crates.io/crates/dogear separate crate], and is shared between Desktop and [https://github.com/mozilla/application-services all our mobile products].<br />
* Windows BITS interface: {{bug|1520321}} (shipped in Firefox 68)<br />
* Japanese encoding detector: {{bug|1543077}} (shipped in Firefox 69)<br />
** '''Why Rust?''' Builds upon encoding_rs, has tiny FFI surface, subject matter prone to accesses past the bounds of a buffer.<br />
* [https://github.com/padenot/audio_thread_priority audio_thread_priority] {{bug|1429847}} (shipped in Firefox 69), allow promoting threads to a real-time scheduling class, on Windows/Linux/macOS.<br />
** '''Why Rust?''' This crate is being used by C++ code and by Rust code (audioipc), Rust is nicer to write than C++ (especially for what is essentially just a series of system calls, the error checking style is nice), and cbindgen made it trivial to expose a C ABI.<br />
* [https://github.com/mozilla/dogear/ Dogear] a bookmark merger for Sync. Shipped pref'd-off in {{bug|1482608}} (Firefox 68), enabled by default in {{bug|1588005}} (shipped in Firefox 72)<br />
** '''Why Rust?''' A single performant and safe implementation shared between desktop and the bookmarks engine in [https://github.com/mozilla/application-services/tree/master/components/places application-services]<br />
* Unicode Language Identifier: {{bug|1571915}} (shipped in Firefox 72)<br />
** '''Why Rust?''' Much faster, parser-heavy, easier to handle low-memory footprint thanks to `tinystr`.<br />
* Language Negotiation: {{bug|1581960}} (shipped in Firefox 72)<br />
** '''Why Rust?''' Ties into `unic-langid`, easier to handle list filtering and ordering.<br />
* Replace libhyphen with mapped_hyph, {{bug|1590167}} (shipped in Firefox 72).<br />
* Encoding detector: {{bug|1551276}} (shipped in Firefox 73)<br />
** '''Why Rust?''' Builds upon encoding_rs, has tiny FFI surface, subject matter prone to accesses past the bounds of a buffer, potentially parallelizable with Rayon.<br />
* Integrate [https://github.com/projectfluent/fluent-rs fluent-rs], a localization system: {{bug|1560038}} (shipped in Firefox 76)<br />
** '''Why Rust?''' Performance and memory wins are substantial over previous JS implementation. It brings zero-copy parsing, and memory savvy resolving of localization strings. It also paves the way for migrating the rest of the Fluent APIs away from JS which is required for Fission.<br />
<br />
=== In progress ===<br />
<br />
* Port [https://github.com/projectfluent/fluent-rs Localization API] to Rust: {{bug|1613705}}<br />
* [https://github.com/mozilla/neqo neqo] A QUIC implentation.<br />
* [https://github.com/CraneStation/cranelift/ cranelift, a low-level retargetable code generator]: {{bug|1469027}}<br />
** '''Why Rust?''' It's a new, well-separated component with a clear interface. Also, Rust is a great language for writing compilers, due to algebraic data types and pattern matching.<br />
* [https://github.com/mozilla-spidermonkey/rust-frontend SmooshMonkey] A Rust front-end for SpiderMonkey (featuring [https://github.com/mozilla-spidermonkey/jsparagus jsparagus]).<br />
** '''Why Rust?''' Parses untrusted input. Also, Rust is a great language for writing compilers, due to algebraic data types and pattern matching.<br />
* Audio remoting for Windows: {{bug|1432303}}<br />
* Audio remoting for Mac OS: {{bug|1425788}}<br />
* SDP parsing in WebRTC: {{bug|1365792}}<br />
** '''Why Rust?''' SDP is a complex text protocol and the existing parser in C has a history of security issues. This also allows us to tailor the SDP parser specifically for the subset used in WebRTC, further reducing its surface area. It is currently run in parallel with the C parser in Nightly.<br />
* Linebreaking with xi-unicode: {{bug|1290022}} (last update late 2016)<br />
* Background Update Agent for Windows: {{bug|1343669}}<br />
* libcubeb Audio backend for macOS (CoreAudio): {{bug|1530715}} (in Nightly since 70?)<br />
* [https://github.com/gfx-rs/wgpu wgpu], a [https://gpuweb.github.io/gpuweb/ WebGPU] API implementation: {{bug|webgpu-mvp}} (in Nightly since 72)<br />
** '''Why Rust?''' Complex tracking logic, wide attack area. Also, leverages Rust ecosystem for building libraries on top of our native implementation and the API that will target the Web.<br />
* Integrate the [https://github.com/mozilla/glean/ Glean SDK], a data collection library.<br />
<br />
=== Proposed ===<br />
<br />
* WebMIDI: {{bug|1201593}}, {{bug|1201596}}, {{bug|1201598}}<br />
* Gamepad code: {{bug|1286699}}<br />
* Replace the telemetry module(?)<br />
** '''Why Rust?''' The existing C++ code has a history of threading problems.<br />
* Replace DOM serializers (XML, HTML for Save As.., plain text)<br />
** '''Why Rust?''' Need a rewrite anyway. Minor history of security vulnerabilities.<br />
* Expose Rust API to JS Debugger: {{bug|1263317}}<br />
* Generate Rust bindings for IPDL actors ({{bug|1379739}})<br />
* WebM demuxer: {{bug|1267492}}<br />
* Parallel JS parsing: fast preparse to find function boundaries, parse non-overlapping functions in parallel with a unification step to handle free names and such (no bug on file yet)<br />
** '''Why Rust?''' Parses untrusted input. Requires safe threading. And generally, Rust is a better language than C++ for parsers, due to strong typing, algebraic data types, and pattern matching.<br />
* Crash reporter<br />
** '''Why Rust?''' Code needs rewriting, useful Rust crates exist that could be used.<br />
* [https://github.com/mozilla/application-services Sync/FxA components]<br />
** '''Why Rust?''' Single safe and performant implementation which is shared across all our products.<br />
* libcubeb Audio backend for Windows (WASAPI)<br />
* Replace the XML parser, possibly via c2rust: {{bug|1611289}}<br />
** '''Why Rust?''' Parses untrusted input, replaces expat, a 3rd-party library with a history of frequent security vulnerabilities.<br />
* Rewrite the ICE stack used by WebRTC; {{bug|1616966}}<br />
** '''Why Rust?''' Works with network data.<br />
== Outside Firefox ==<br />
<br />
=== Completed ===<br />
<br />
* Testing<br />
** GeckoDriver, a WebDriver implementation for Firefox integrated via marionette protocol: {{bug|1340637}} ([https://github.com/mozilla/geckodriver/releases standalone releases])<br />
** [https://github.com/mozilla/grcov grcov], a tool to collect and aggregate code coverage data for multiple source files, used in Firefox CI.<br />
* Build system, etc.<br />
** [https://github.com/mozilla/sccache/ sccache], compiler cache with s3 storage. Caching C++ and Rust compilation, used in Firefox CI.<br />
** Parts of [https://github.com/mozsearch/mozsearch mozsearch], the backend for the [http://searchfox.org Searchfox] code indexing tool.<br />
** [https://github.com/luser/rust-makecab makecab], a reimplementation of Microsoft's makecab tool. Used to compress PDB files before uploading to symbol server in Firefox CI.<br />
** [https://github.com/mozilla/dump_syms/ dump_syms], a reimplementation of Google Breakpad's dump_syms tool for Windows. Used to parse PDB files and print out Breakpad-compatible symbol files. <br />
*** '''Why Rust?''' Doesn't rely on Microsoft closed-source libraries anymore, can be cross-compiled and run on a non-Windows host, is an order of magnitude faster, takes less than a third of the memory, produces better symbols and relies on an active and friendly upstream [https://github.com/getsentry/symbolic/ symbolic]<br />
* Application Services, server-side<br />
** [https://github.com/mozilla-services/autopush-rs autopush-rs] Rust async based websocket server that implements Mozilla's push/webpush/broadcast protocols.<br />
*** '''Why Rust?''' Concise code with the memory efficiency of C.<br />
** [https://github.com/mozilla-services/megaphone/ Megaphone], a real-time update broadcast server for Firefox.<br />
** [https://github.com/mozilla/fxa-email-service/ fxa_email_service], a service for sending email to Firefox Accounts.<br />
** [https://github.com/mozilla-services/pairsona/ pairsona], a tool to associate instances of firefox.<br />
* Application Services, client-side<br />
** [https://github.com/mozilla/application-services/tree/master/components various sync-related components used on iOS and Fenix], includes a cross-compiled FxA Rust client, and storage/syncing of bookmarks, history, logins, tabs and webextensions data.<br />
* [https://github.com/mozilla/fix-stacks/ fix-stacks], a stack frame symbolizer: {{bug|1596292}}<br />
** '''Why Rust?''' High performance needed, a single implementation can replace multiple platform-specific scripts, and we can use the [https://github.com/getsentry/symbolic/ symbolic] crate to do all the hard parts.<br />
<br />
=== In Progress ===<br />
<br />
* IPDL Parser: {{bug|1316754}}<br />
** '''Why Rust?''' Rust is a much better language than Python for writing compilers, due to strong typing, algebraic data types, and pattern matching.<br />
<br />
= Blockers and obstacles =<br />
<br />
This section lists areas where Rust integration could be improved.<br />
* Tracking bug: Make the developer experience for Firefox + Rust great: {{Bug|rust-great}}<br />
* Compile speed and memory usage<br />
** Incremental compilation ([https://github.com/rust-lang/rust/labels/A-incr-comp A-incr-comp issues], [https://github.com/rust-lang/rust/labels/WG-compiler-incr WG-compiler-incr issues])<br />
** [https://users.rust-lang.org/t/contract-opportunity-mozilla-distributed-compilation-cache-written-in-rust/13898 Distributed compilation cache]<br />
** [https://github.com/rust-lang/cargo/issues/1997 Artifact caching]?<br />
* Debugging: improve gdb and lldb support for Rust. The first step is to establish Rust language support in DWARF distinct from the existing C++ support.<br />
* Bindings/interop<br />
** Immature rust-bindgen and cbindgen tools for general cross-language support. Working aroudn clang bugs in different versions and on different platforms can be tricky.<br />
** No IPDL binding generator ({{bug|1379739}})<br />
** No WebIDL binding generator for DOM components (Servo must have something here?)<br />
* Remaining minor crash report issues {{bug|1348896}}<br />
* IDE/symbol lookup support?<br />
* Code coverage?<br />
* Profiling improvements? Especially for parallel code<br />
* Test integration?<br />
<br />
= Meetings =<br />
<br />
* Berlin, January 2020 (minutes lost due to technical issues, unfortunately)<br />
* [https://github.com/servo/servo/wiki/Whistler-Oxidation-2019 Whistler, Jun 2019]<br />
* [https://github.com/servo/servo/wiki/Orlando-Oxidation-2018 Orlando, Dec 2018]<br />
* [https://github.com/servo/servo/wiki/San-Francisco-Oxidation San Francisco, Jun 2018]<br />
* [https://github.com/servo/servo/wiki/Austin-Oxidation Austin, Dec 2017]<br />
* [https://github.com/servo/servo/wiki/Mozlando-Oxidation Mozlando, Dec 2015]<br />
* [https://github.com/servo/servo/wiki/Oxidation-2015-11-05 Oxidation, Nov 2015]<br />
* [https://github.com/servo/servo/wiki/Whistler-GFX#servo-in-gecko Whistler, June 2015]<br />
* [https://github.com/servo/servo/wiki/Mozlandia-Rust-In-Gecko Mozlandia, Dec 2014]</div>Jandemhttps://wiki.mozilla.org/index.php?title=Javascript:Automation_Builds&diff=1225878Javascript:Automation Builds2020-04-04T08:06:59Z<p>Jandem: autospider.sh has been replaced by autospider.py</p>
<hr />
<div>= The Builds =<br />
<br />
All of the '''SM(...)''' builds appearing on Treeherder are JS shell-only builds. Currently, they all<br />
* Checkout the source<br />
* Configure using a set of options appropriate to the specific build<br />
* Build (by simply invoking make)<br />
* Run tests, possibly differently depending on the specific build<br />
<br />
All of this is done by running the Python script js/src/devtools/automation/autospider.py <variant>, where <variant> is one of the filenames in js/src/devtools/automation/variants/.<br />
<br />
= Reproducing a build =<br />
<br />
You should be able to closely replicate a TH build by running autospider.py yourself. For example, to replicate '''SM(cgc)''', you could be anywhere within your checkout, and run<br />
<br />
<gecko-root>/js/src/devtools/automation/autospider.py --clobber compacting<br />
<br />
The default objdir is <gecko-root>/obj-spider. You can change it by setting the $OBJDIR environment variable.<br />
<br />
To narrow the test down, delete some of the lines at the end of autospider.py that run the various tests.<br />
<br />
== Mapping variants to SM(...) names ==<br />
<br />
There is no good way. They're hardcoded in the Treeherder code. Many of them even show up in multiple repos. Here's a snapshot:<br />
<br />
* SM(cgc) - compacting<br />
* SM(p) - plain or plaindebug<br />
* SM(arm) - arm-sim or arm-sim-osx<br />
* SM(arm64) - arm64-sim<br />
* SM(exr) - exactrooting<br />
* SM(r) - rootanalysis<br />
* SM(pkg) - Standalone SpiderMonkey package.<br />
* SM(tsan) - tsan<br />
<br />
= Specific Build Information =<br />
<br />
== SM(pkg) ==<br />
<br />
The SM(pkg) builds create a tarball of all the sources used to make a standalone SpiderMonkey library and shell, untar it somewhere else, and then runs the autospider command listed above. To reproduce this packaging and unpackaging behavior, you can run this command:<br />
<br />
<gecko-root>/testing/taskcluster/scripts/builder/build-sm-package.sh<br />
<br />
== SM(tsan) ==<br />
<br />
sm-tsan uses the clang ThreadSanitizer dynamic thread safety checker. Since this is a dynamic analysis, any given run may report only a subset of issues based on the exact timing of that run. One thing that means is that failures in this job may well be intermittent, and thus may not be due to the immediately preceding push. You may consider retriggering a failure a few times to see what to blame it on.<br />
<br />
ThreadSanitizer failures are generally not security sensitive, though they can be. The usual rules apply -- eg if it's in GC code, it should be assumed to be sensitive until investigated.</div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1211498Modules/Core2019-04-30T17:20:47Z<p>Jandem: Add :iain to JS JIT peers</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:jteh@mozilla.com Jamie Teh]<br />
|peers=[mailto:eitan@monotonous.org Eitan Isaacson], [mailto:jteh@mozilla.com James Teh], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal], [mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peersemeritus=[mailto:dbolter@mozilla.com David Bolter], [mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:bbirtles@mozilla.com Brian Birtles] (:birtles)<br />
|peers=[mailto:hiro@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-tech-layout<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Transitions and Animations<br />
}}<br />
<br />
{{Module<br />
|name=Anti-Tracking<br />
|description=Tracking detection and content-blocking.<br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:dlee@mozilla.com Dimi Lee], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:ewright@mozilla.com Erica Wright], [mailto:jhofmann@mozilla.com Johann Hofmann]<br />
|group=dev-platform<br />
|source_dirs=toolkit/components/antitracking/, several files under browser/ and netwerk/url-classifier/<br />
|components=Core::Privacy: Anti-Tracking<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay]<br />
|peers=[mailto:fabrice@mozilla.com Fabrice Desré]<br />
|ownersemeritus=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:cmanchester@mozilla.com Chris Manchester](:chmanchester)<br />
|peers=[mailto:mh@glandium.org Mike Hommey] (:glandium), [mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:ted@mielczarek.org Ted Mielczarek] (:ted), [mailto:cmanchester@mozilla.com Chris Manchester](:chmanchester), [mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj), [mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:rgiles@mozilla.com Ralph Giles] (:rillian), [mailto:gps@mozilla.com Gregory Szorc] (:gps)<br />
|ownersemeritus=Gregory Szorc (2013-2019), Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/jprof/, tools/leak-gauge/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking], François Marier<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=Monica Chew<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:sawang@mozilla.com Samael Wang]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri (still active, but slower to respond than previously)], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:ben@wanderview.com Ben Kelly]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peersemeritus=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::Event Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:baku@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:asuth@mozilla.com Andrew Sutherland], [mailto:ytausky@mozilla.com Yaron Tausky]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:nnethercote@mozilla.com Nicholas Nethercote], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), [mailto:b56girard@gmail.com Benoit Girard].<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:mnakano@mozilla.com Masayuki Nakano]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:jnicol@mozilla.com Jamie Nicol](Android), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia, Canvas2D), [mailto:rhunt@mozilla.com Ryan Hunt](OMTP), [mailto:gwatson@mozilla.com Glenn Watson ](WebRender), [mailto:dmalyshau@mozilla.com Dzmitry Malyshau](WebRender)<br />
|peersemeritus=[mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:clord@mozilla.com Christopher Lord], [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::Graphics: WebRender, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:rhunt@mozilla.com Ryan Hunt], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source_dirs=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|ownersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey]<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:kchen@mozilla.com Kan-Ru Chen], [mailto:btseng@mozilla.com Bevis Tseng]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], André Bargull, [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:jcoppeard@mozilla.com Jon Coppeard], [mailto:sphink@gmail.com Steve Fink], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:khyperia@mozilla.com Ashley Hauck], [mailto:evilpies@gmail.com Tom Schuster], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:jwalden@mit.edu Jeff Walden], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:efaust@mozilla.com Eric Faust], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:luke@mozilla.com Luke Wagner], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], Andreas Gal<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Layout<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Columns, Core::Layout: Flexbox, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: Generated Content, Lists, and Counters, Core::Layout: Grid, Core::Layout: Images, Video, and HTML Frames, Core::Layout: Positioned, Core::Layout: Ruby, Core::Layout: Scrolling and Overflow, Core::Layout: Tables, Core::Layout: Text and Fonts, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership module]]<br />
|ownersemeritus=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:dd.mozilla@gmail.com Dragana Damjanovic ], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:kershaw@mozilla.com Kershaw Chang]<br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman, Nick Hurley, [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:wtc@google.com Wan-Teh Chang], [mailto:mh@glandium.org Mike Hommey]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:davidp99@gmail.com David Parks]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:nnethercote@mozilla.com Nicholas Nethercote]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:glandium@mozilla.com Mike Hommey], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=Felipe Gomes<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=[mailto:lina@mozilla.com Lina Cambridge]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:martin.thomson@gmail.com Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:martin.thomson@gmail.com Martin Thomson]<br />
|ownersemeritus=[mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:wtc@google.com Wan-Teh Chang], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:birunthan@mohanathas.com Birunthan Mohanathas], [mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/, servo/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill, Marionette, Firefox UI Tests. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), Rob Campbell (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (Marionette, Firefox UI tests), [mailto:ato@mozilla.com Andreas Tolfsen] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:dburns@mozilla.com David Burns] (marionette), [mailto:dminor@mozilla.com Dan Minor], [mailto:mjzffr@gmail.com Maja Frydrychowicz] (Marionette, Firefox UI tests), [mailto:james@hoppipolla.co.uk James Graham],<br />
<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:jmaher@mozilla.com Joel Maher]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], Rob Campbell, [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-tech-layout<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kip Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=Top level Widget<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|ownersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=Android widget support<br />
|owner=[mailto:jwillcox@mozilla.com James Willcox]<br />
|peers=<br />
|ownersemeritus=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=GTK widget support<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:stransky@redhat.com Martin Stránský]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Headless<br />
|description=Headless widget support<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=<br />
|ownersemeritus=<br />
|group=dev-platform<br />
|source_dirs=widget/headless/<br />
|url=<br />
|components=Firefox::Headless<br />
}}<br />
<br />
{{Module<br />
|name=Widget - OS X<br />
|description= OSX widget support<br />
|owner=[mailto:spohl@mozilla.com Stephen Pohl]<br />
|peers=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:mstange@themasta.com Markus Stange]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:b56girard@gmail.com Benoit Girard], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widget support<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robert.strong.bugs@gmail.com Rob Strong], [mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|ownersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=dom/xbl/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|ownersemeritus=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:davidp99@gmail.com David Parks] (:handyman)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:mozilla@hocat.ca Tom Prince]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:dustin@mozilla.com Dustin Mitchell]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1203159Modules/Core2018-10-31T08:41:17Z<p>Jandem: Sort jit peers list alphabetically</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:dbolter@mozilla.com David Bolter], [mailto:eitan@monotonous.org Eitan Isaacson], [mailto:jteh@mozilla.com James Teh], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal]<br />
|peersemeritus=[mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:bbirtles@mozilla.com Brian Birtles] (:birtles)<br />
|peers=[mailto:hiro@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-tech-layout<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Parsing and Computation (for CSS animations/transitions related bugs)<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:fabrice@mozilla.com Fabrice Desré]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc] (:gps)<br />
|peers=[mailto:mh@glandium.org Mike Hommey] (:glandium), [mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:ted@mielczarek.org Ted Mielczarek] (:ted), [mailto:cmanchester@mozilla.com Chris Manchester](:chmanchester), [mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj), [mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:rgiles@mozilla.com Ralph Giles] (:rillian)<br />
|ownersemeritus=Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|ownersemeritus=[mailto:gerv@mozilla.org Gervase Markham]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:francois@mozilla.com François Marier], [mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=Monica Chew<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:nfroyd@mozilla.com Nathan Froyd] (while Ehsan is away)<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:sawang@mozilla.com Samael Wang]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback],[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri (still active, but slower to respond than previously)], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [ben@wanderview.com Ben Kelly]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::Event Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:baku@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:asuth@mozilla.com Andrew Sutherland]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=Gecko embedding APIs and frameworks<br />
|owner=[mailto:myk@mykzilla.org Myk Melez]<br />
|ownersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:bdahl@mozilla.com Brendan Dahl], [mailto:tbsaunde@tbsaunde.org Trevor Saunders]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-platform<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:nnethercote@mozilla.com Nicholas Nethercote], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), [mailto:b56girard@gmail.com Benoit Girard].<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner], Garvan Keeley<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=dom/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=Aaron Leventhal<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:clord@mozilla.com Christopher Lord], [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:rhunt@mozilla.com Ryan Hunt]<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:dvander@mozilla.com David Anderson], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[https://mozillians.org/u/dhylands/ Dave Hylands]<br />
|peers=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|ownersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey]<br />
|peers=[mailto:jld@mozilla.com Jed Davis], [mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:kchen@mozilla.com Kan-Ru Chen], [mailto:btseng@mozilla.com Bevis Tseng]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], André Bargull, [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:jcoppeard@mozilla.com Jon Coppeard], [mailto:sphink@gmail.com Steve Fink], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:khyperia@mozilla.com Ashley Hauck], [mailto:evilpies@gmail.com Tom Schuster], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:jwalden@mit.edu Jeff Walden], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:efaust@mozilla.com Eric Faust], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:luke@mozilla.com Luke Wagner], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], Andreas Gal<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:mwu@mozilla.com Michael Wu]<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership module]]<br />
|ownersemeritus=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:hurley@mozilla.com Nick Hurley], [mailto:dd.mozilla@gmail.com Dragana Damjanovic ], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell] <br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman <br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:wtc@google.com Wan-Teh Chang], [mailto:mh@glandium.org Mike Hommey]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=Chris Jones, Andreas Gal<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peersemeritus=[mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:nnethercote@mozilla.com Nicholas Nethercote]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:felipe@mozilla.com Felipe Gomes], [mailto:glandium@mozilla.com Mike Hommey], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews] (while Ehsan is away)<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:lina@mozilla.com Lina Cambridge], [mailto:martin.thomson@gmail.com Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=Todd Whiteman<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:martin.thomson@gmail.com Martin Thomson]<br />
|ownersemeritus=[mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:wtc@google.com Wan-Teh Chang], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell] (while Ehsan is away)<br />
|peers=[mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:birunthan@mohanathas.com Birunthan Mohanathas], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner= [mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=Edwin Smith, [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill, Marionette, Firefox UI Tests. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), Rob Campbell (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (Marionette, Firefox UI tests), [mailto:ato@mozilla.com Andreas Tolfsen] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:dburns@mozilla.com David Burns] (marionette), [mailto:dminor@mozilla.com Dan Minor], [mailto:mjzffr@gmail.com Maja Frydrychowicz] (Marionette, Firefox UI tests), <br />
<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:jmaher@mozilla.com Joel Maher]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], Rob Campbell, [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=JS Marionette<br />
|description=NodeJS test harness, marionette client, and other utilities for running marionette tests (submodule of Test Infrastructure)<br />
|owner=[mailto:jlal@mozilla.com James Lal] <lightsofapollo>, [mailto:gaye@mozilla.com Gareth Aye] <gaye><br />
|peers=[mailto:aus@mozilla.com Ghislain "Aus" Lacroix] <auswerk><br />
|source_dirs=gaia/tests/jsmarionette<br />
|components=Testing::JSMarionette<br />
|group=dev-gaia<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=Mike Morgan<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-tech-layout<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kip Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:jwillcox@mozilla.com James Willcox]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - OS X<br />
|description= Gecko's OS X compatibility layer.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|peersemeritus=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|ownersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=dom/xbl/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@mozilla.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=dom/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:davidp99@gmail.com David Parks] (:handyman)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:dustin@mozilla.com Dustin Mitchell]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:mozilla@hocat.ca Tom Prince]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1203158Modules/Core2018-10-31T08:40:02Z<p>Jandem: Add mgaudet as JIT peer</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:dbolter@mozilla.com David Bolter], [mailto:eitan@monotonous.org Eitan Isaacson], [mailto:jteh@mozilla.com James Teh], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal]<br />
|peersemeritus=[mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:bbirtles@mozilla.com Brian Birtles] (:birtles)<br />
|peers=[mailto:hiro@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-tech-layout<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Parsing and Computation (for CSS animations/transitions related bugs)<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:fabrice@mozilla.com Fabrice Desré]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc] (:gps)<br />
|peers=[mailto:mh@glandium.org Mike Hommey] (:glandium), [mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:ted@mielczarek.org Ted Mielczarek] (:ted), [mailto:cmanchester@mozilla.com Chris Manchester](:chmanchester), [mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj), [mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:rgiles@mozilla.com Ralph Giles] (:rillian)<br />
|ownersemeritus=Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|ownersemeritus=[mailto:gerv@mozilla.org Gervase Markham]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:francois@mozilla.com François Marier], [mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=Monica Chew<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:nfroyd@mozilla.com Nathan Froyd] (while Ehsan is away)<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:sawang@mozilla.com Samael Wang]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback],[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri (still active, but slower to respond than previously)], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [ben@wanderview.com Ben Kelly]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::Event Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:baku@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:asuth@mozilla.com Andrew Sutherland]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=Gecko embedding APIs and frameworks<br />
|owner=[mailto:myk@mykzilla.org Myk Melez]<br />
|ownersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:bdahl@mozilla.com Brendan Dahl], [mailto:tbsaunde@tbsaunde.org Trevor Saunders]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-platform<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:nnethercote@mozilla.com Nicholas Nethercote], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), [mailto:b56girard@gmail.com Benoit Girard].<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner], Garvan Keeley<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=dom/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=Aaron Leventhal<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:clord@mozilla.com Christopher Lord], [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:rhunt@mozilla.com Ryan Hunt]<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:dvander@mozilla.com David Anderson], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[https://mozillians.org/u/dhylands/ Dave Hylands]<br />
|peers=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|ownersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey]<br />
|peers=[mailto:jld@mozilla.com Jed Davis], [mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:kchen@mozilla.com Kan-Ru Chen], [mailto:btseng@mozilla.com Bevis Tseng]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], André Bargull, [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:jcoppeard@mozilla.com Jon Coppeard], [mailto:sphink@gmail.com Steve Fink], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:khyperia@mozilla.com Ashley Hauck], [mailto:evilpies@gmail.com Tom Schuster], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:jwalden@mit.edu Jeff Walden], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:efaust@mozilla.com Eric Faust], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:luke@mozilla.com Luke Wagner], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], Andreas Gal<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:mwu@mozilla.com Michael Wu]<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership module]]<br />
|ownersemeritus=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:hurley@mozilla.com Nick Hurley], [mailto:dd.mozilla@gmail.com Dragana Damjanovic ], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell] <br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman <br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:wtc@google.com Wan-Teh Chang], [mailto:mh@glandium.org Mike Hommey]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=Chris Jones, Andreas Gal<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peersemeritus=[mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:nnethercote@mozilla.com Nicholas Nethercote]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:felipe@mozilla.com Felipe Gomes], [mailto:glandium@mozilla.com Mike Hommey], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews] (while Ehsan is away)<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:lina@mozilla.com Lina Cambridge], [mailto:martin.thomson@gmail.com Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=Todd Whiteman<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:martin.thomson@gmail.com Martin Thomson]<br />
|ownersemeritus=[mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:wtc@google.com Wan-Teh Chang], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell] (while Ehsan is away)<br />
|peers=[mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:birunthan@mohanathas.com Birunthan Mohanathas], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner= [mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=Edwin Smith, [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill, Marionette, Firefox UI Tests. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), Rob Campbell (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (Marionette, Firefox UI tests), [mailto:ato@mozilla.com Andreas Tolfsen] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:dburns@mozilla.com David Burns] (marionette), [mailto:dminor@mozilla.com Dan Minor], [mailto:mjzffr@gmail.com Maja Frydrychowicz] (Marionette, Firefox UI tests), <br />
<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:jmaher@mozilla.com Joel Maher]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], Rob Campbell, [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=JS Marionette<br />
|description=NodeJS test harness, marionette client, and other utilities for running marionette tests (submodule of Test Infrastructure)<br />
|owner=[mailto:jlal@mozilla.com James Lal] <lightsofapollo>, [mailto:gaye@mozilla.com Gareth Aye] <gaye><br />
|peers=[mailto:aus@mozilla.com Ghislain "Aus" Lacroix] <auswerk><br />
|source_dirs=gaia/tests/jsmarionette<br />
|components=Testing::JSMarionette<br />
|group=dev-gaia<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=Mike Morgan<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-tech-layout<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kip Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:jwillcox@mozilla.com James Willcox]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - OS X<br />
|description= Gecko's OS X compatibility layer.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|peersemeritus=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|ownersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=dom/xbl/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@mozilla.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=dom/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:davidp99@gmail.com David Parks] (:handyman)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:dustin@mozilla.com Dustin Mitchell]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:mozilla@hocat.ca Tom Prince]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1202523Modules/Core2018-10-17T07:51:50Z<p>Jandem: Add tcampbell as JIT peer</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:dbolter@mozilla.com David Bolter], [mailto:eitan@monotonous.org Eitan Isaacson], [mailto:jteh@mozilla.com James Teh], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal]<br />
|peersemeritus=[mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:bbirtles@mozilla.com Brian Birtles] (:birtles)<br />
|peers=[mailto:hiro@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-tech-layout<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Parsing and Computation (for CSS animations/transitions related bugs)<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:fabrice@mozilla.com Fabrice Desré]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc] (:gps)<br />
|peers=[mailto:mh@glandium.org Mike Hommey] (:glandium), [mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:ted@mielczarek.org Ted Mielczarek] (:ted), [mailto:cmanchester@mozilla.com Chris Manchester](:chmanchester), [mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj), [mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:rgiles@mozilla.com Ralph Giles] (:rillian)<br />
|ownersemeritus=Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:francois@mozilla.com François Marier], [mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=Monica Chew<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:nfroyd@mozilla.com Nathan Froyd] (while Ehsan is away)<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:sawang@mozilla.com Samael Wang]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback],[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri (still active, but slower to respond than previously)], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [ben@wanderview.com Ben Kelly]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::Event Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:baku@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:asuth@mozilla.com Andrew Sutherland]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=Gecko embedding APIs and frameworks<br />
|owner=[mailto:myk@mykzilla.org Myk Melez]<br />
|ownersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:bdahl@mozilla.com Brendan Dahl], [mailto:tbsaunde@tbsaunde.org Trevor Saunders]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-platform<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:nnethercote@mozilla.com Nicholas Nethercote], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), [mailto:b56girard@gmail.com Benoit Girard].<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner], Garvan Keeley<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=dom/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=Aaron Leventhal<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:clord@mozilla.com Christopher Lord], [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:rhunt@mozilla.com Ryan Hunt]<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:dvander@mozilla.com David Anderson], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[https://mozillians.org/u/dhylands/ Dave Hylands]<br />
|peers=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:jld@mozilla.com Jed Davis], [mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:danderson@mozilla.com David Anderson], [mailto:kchen@mozilla.com Kan-Ru Chen], [mailto:btseng@mozilla.com Bevis Tseng]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jwalden@mit.edu Jeff Walden], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:efaust@mozilla.com Eric Faust], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:luke@mozilla.com Luke Wagner], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], Andreas Gal<br />
|peersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:mwu@mozilla.com Michael Wu]<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:hurley@mozilla.com Nick Hurley], [mailto:dd.mozilla@gmail.com Dragana Damjanovic ], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell] <br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman <br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:wtc@google.com Wan-Teh Chang], [mailto:mh@glandium.org Mike Hommey]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=Chris Jones, Andreas Gal<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peersemeritus=[mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:nnethercote@mozilla.com Nicholas Nethercote]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:felipe@mozilla.com Felipe Gomes], [mailto:glandium@mozilla.com Mike Hommey], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews] (while Ehsan is away)<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:lina@mozilla.com Lina Cambridge], [mailto:martin.thomson@gmail.com Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=Todd Whiteman<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:martin.thomson@gmail.com Martin Thomson]<br />
|ownersemeritus=[mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:wtc@google.com Wan-Teh Chang], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell] (while Ehsan is away)<br />
|peers=[mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:birunthan@mohanathas.com Birunthan Mohanathas], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner= [mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=Edwin Smith, [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill, Marionette, Firefox UI Tests. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), Rob Campbell (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (Marionette, Firefox UI tests), [mailto:ato@mozilla.com Andreas Tolfsen] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:dburns@mozilla.com David Burns] (marionette), [mailto:dminor@mozilla.com Dan Minor], [mailto:mjzffr@gmail.com Maja Frydrychowicz] (Marionette, Firefox UI tests), <br />
<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:jmaher@mozilla.com Joel Maher]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], Rob Campbell, [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=JS Marionette<br />
|description=NodeJS test harness, marionette client, and other utilities for running marionette tests (submodule of Test Infrastructure)<br />
|owner=[mailto:jlal@mozilla.com James Lal] <lightsofapollo>, [mailto:gaye@mozilla.com Gareth Aye] <gaye><br />
|peers=[mailto:aus@mozilla.com Ghislain "Aus" Lacroix] <auswerk><br />
|source_dirs=gaia/tests/jsmarionette<br />
|components=Testing::JSMarionette<br />
|group=dev-gaia<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=Mike Morgan<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-tech-layout<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kip Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:jwillcox@mozilla.com James Willcox]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - OS X<br />
|description= Gecko's OS X compatibility layer.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|peersemeritus=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|ownersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=dom/xbl/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@mozilla.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=dom/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:davidp99@gmail.com David Parks] (:handyman)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:dustin@mozilla.com Dustin Mitchell]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:mozilla@hocat.ca Tom Prince]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1202522Modules/Core2018-10-17T07:50:09Z<p>Jandem: Move some JIT peers to emeritus list</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:dbolter@mozilla.com David Bolter], [mailto:eitan@monotonous.org Eitan Isaacson], [mailto:jteh@mozilla.com James Teh], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal]<br />
|peersemeritus=[mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:bbirtles@mozilla.com Brian Birtles] (:birtles)<br />
|peers=[mailto:hiro@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-tech-layout<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Parsing and Computation (for CSS animations/transitions related bugs)<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:fabrice@mozilla.com Fabrice Desré]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc] (:gps)<br />
|peers=[mailto:mh@glandium.org Mike Hommey] (:glandium), [mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:ted@mielczarek.org Ted Mielczarek] (:ted), [mailto:cmanchester@mozilla.com Chris Manchester](:chmanchester), [mailto:nfroyd@mozilla.com Nathan Froyd] (:froydnj), [mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:rgiles@mozilla.com Ralph Giles] (:rillian)<br />
|ownersemeritus=Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:francois@mozilla.com François Marier], [mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=Monica Chew<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:nfroyd@mozilla.com Nathan Froyd] (while Ehsan is away)<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:sawang@mozilla.com Samael Wang]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback],[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri (still active, but slower to respond than previously)], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [ben@wanderview.com Ben Kelly]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::Event Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:baku@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:asuth@mozilla.com Andrew Sutherland]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=Gecko embedding APIs and frameworks<br />
|owner=[mailto:myk@mykzilla.org Myk Melez]<br />
|ownersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:bdahl@mozilla.com Brendan Dahl], [mailto:tbsaunde@tbsaunde.org Trevor Saunders]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-platform<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:nnethercote@mozilla.com Nicholas Nethercote], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), [mailto:b56girard@gmail.com Benoit Girard].<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner], Garvan Keeley<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=dom/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=Aaron Leventhal<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:clord@mozilla.com Christopher Lord], [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:rhunt@mozilla.com Ryan Hunt]<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:dvander@mozilla.com David Anderson], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[https://mozillians.org/u/dhylands/ Dave Hylands]<br />
|peers=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:jld@mozilla.com Jed Davis], [mailto:nfroyd@mozilla.com Nathan Froyd], [mailto:bkelly@mozilla.com Ben Kelly], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:danderson@mozilla.com David Anderson], [mailto:kchen@mozilla.com Kan-Ru Chen], [mailto:btseng@mozilla.com Bevis Tseng]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jwalden@mit.edu Jeff Walden], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:efaust@mozilla.com Eric Faust], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:luke@mozilla.com Luke Wagner], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], Andreas Gal<br />
|peersemeritus=[mailto:wmccloskey@mozilla.com Bill McCloskey]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:mwu@mozilla.com Michael Wu]<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:hurley@mozilla.com Nick Hurley], [mailto:dd.mozilla@gmail.com Dragana Damjanovic ], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell] <br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman <br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:wtc@google.com Wan-Teh Chang], [mailto:mh@glandium.org Mike Hommey]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=Chris Jones, Andreas Gal<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peersemeritus=[mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:nnethercote@mozilla.com Nicholas Nethercote]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:felipe@mozilla.com Felipe Gomes], [mailto:glandium@mozilla.com Mike Hommey], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:josh@joshmatthews.net Josh Matthews] (while Ehsan is away)<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:lina@mozilla.com Lina Cambridge], [mailto:martin.thomson@gmail.com Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=Todd Whiteman<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:martin.thomson@gmail.com Martin Thomson]<br />
|ownersemeritus=[mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:wtc@google.com Wan-Teh Chang], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell] (while Ehsan is away)<br />
|peers=[mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:birunthan@mohanathas.com Birunthan Mohanathas], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner= [mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=Edwin Smith, [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill, Marionette, Firefox UI Tests. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), Rob Campbell (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (Marionette, Firefox UI tests), [mailto:ato@mozilla.com Andreas Tolfsen] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:dburns@mozilla.com David Burns] (marionette), [mailto:dminor@mozilla.com Dan Minor], [mailto:mjzffr@gmail.com Maja Frydrychowicz] (Marionette, Firefox UI tests), <br />
<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:jmaher@mozilla.com Joel Maher]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], Rob Campbell, [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=JS Marionette<br />
|description=NodeJS test harness, marionette client, and other utilities for running marionette tests (submodule of Test Infrastructure)<br />
|owner=[mailto:jlal@mozilla.com James Lal] <lightsofapollo>, [mailto:gaye@mozilla.com Gareth Aye] <gaye><br />
|peers=[mailto:aus@mozilla.com Ghislain "Aus" Lacroix] <auswerk><br />
|source_dirs=gaia/tests/jsmarionette<br />
|components=Testing::JSMarionette<br />
|group=dev-gaia<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted@mielczarek.org Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=Mike Morgan<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-tech-layout<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kip Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:jwillcox@mozilla.com James Willcox]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - OS X<br />
|description= Gecko's OS X compatibility layer.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|peersemeritus=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|ownersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=dom/xbl/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@mozilla.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=dom/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:davidp99@gmail.com David Parks] (:handyman)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:dustin@mozilla.com Dustin Mitchell]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:mozilla@hocat.ca Tom Prince]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:Coding_Style&diff=1200943JavaScript:SpiderMonkey:Coding Style2018-09-12T06:28:51Z<p>Jandem: s/NULL/nullptr/</p>
<hr />
<div>= Code Organization =<br />
<br />
See [[JavaScript:SpiderMonkey:Directories]].<br />
<br />
= Functions =<br />
<br />
* Public function names begin with JS_ followed by capitalized "intercaps", e.g. JS_NewObject.<br />
* Extern but library-private function names use a js_ prefix and mixed case, e.g. js_SearchScope.<br />
* Most static function names have unprefixed, mixed-case names: GetChar.<br />
* But static native methods of JS objects have lowercase, underscore-separated or intercaps names, e.g., str_indexOf.<br />
* Function return types are on a separate line preceding the function name.<br />
* Function braces go on the line following the function name.<br />
void DoThis() /* bad */<br />
{<br />
...<br />
}<br />
void<br />
DoThis() /* OK */<br />
{<br />
...<br />
}<br />
<br />
= Other Symbols =<br />
<br />
* Library-private and static data use underscores, not intercaps (but library-private data do use a js_ prefix).<br />
* Scalar type names are lowercase and js-prefixed: jsdouble.<br />
* Aggregate type names are JS-prefixed and mixed-case: JSObject.<br />
* Macros are generally ALL_CAPS and underscored, to call out potential side effects, multiple uses of a formal argument, etc. Line continuation characters should all line up, in column 79 if that exceeds the width of all the macro text. Macro parameters should be of the form name_ (instead of something like __name).<br />
<br />
= Indentation =<br />
<br />
* Use spaces, not tabs. There should be no tabs in source files.<br />
* Four spaces of indentation per statement nesting level.<br />
* "<code>case L:</code>" labels in <code>switch</code> statements count as half of a nesting level, so indent two spaces, with the labeled statements indenting two more for a standard four spaces indentation from <code>switch</code> to a case-controlled statement.<br />
switch (discriminant) {<br />
case L1:<br />
DoSomething();<br />
. . .<br />
}<br />
* Function arguments that overflow the first line of the call expression should be aligned to underhang the first argument (to start in overflow lines in the column after the opening parenthesis).<br />
JS_SetContext(rt, /* bad */<br />
cx);<br />
JS_SetContext(rt, /* OK */<br />
cx);<br />
<br />
= Whitespace in declarations =<br />
<br />
These rules are inconsistently applied. Be consistent with the code you're editing rather than adhere too closely to these guidelines!<br />
<br />
* In a declaration of a pointer, the <code>*</code> goes with the type:<br />
char *s; /* bad */<br />
char* s; /* OK */<br />
* In C++ method declarations with default arguments, use spaces and comments like so:<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue = 0);<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue /* = 0 */)<br />
{<br />
/* ... */<br />
}<br />
<br />
= Other whitespace =<br />
<br />
* Code should fit within 99 columns; comments should fit within 80 columns; both figures include indentation. Break down lines that are too long by splitting after a binary operator.<br />
* Exception: in a <code>switch</code> statement where each case is a trivially-short statement, it's ok to put the <code>case</code>, the statement, and the <code>break;</code> all on one line.<br />
* Comment <code>/* FALL THROUGH */</code> in place of missing <code>break</code> when intentionally falling through from one case-controlled statement sequence into another, or into the <code>default</code> statements.<br />
* Do not use spaces between a function name and its arguments list, or between an array name and the square bracket. Also, do no use spaces after a bracket. Use a space after a comma to separate arguments.<br />
JS_SetContext ( rt, cx ); /* bad */<br />
JS_SetContext(rt, cx); /* OK */<br />
* Use a space between a C keyword and parentheses.<br />
if(condition) { /* bad */<br />
if (condition) { /* OK */<br />
* Always use braces for conditionals, even if the condition and consequent occupy single lines.<br />
<br />
if (!isAwake) {<br />
return false;<br />
}<br />
if (canSwingFromWeb) {<br />
p->swingFromWeb();<br />
} else {<br />
MOZ_ASSERT(p->isSpiderPig());<br />
p->doWhateverSpiderPigDoes();<br />
}<br />
if (hungryForBananas && // and a comment makes the line long enough for a linebreak<br />
wantsAttentionInTheWorstWay)<br />
{<br />
p->eatBananasAndPreen();<br />
}<br />
* Conditions with multi-line tests should put the brace on the new line to provide a visual separation between the condition and the body.<br />
<br />
types::TypeSet* types = frame.extra(lhs).types;<br />
if (JSOp(*PC) == JSOP_SETPROP && id == types::MakeTypeId(cx, id) &&<br />
types && !types->unknownObject() &&<br />
types->getObjectCount() == 1 &&<br />
types->getTypeObject(0) != nullptr &&<br />
!types->getTypeObject(0)->unknownProperties())<br />
{<br />
JS_ASSERT(usePropCache);<br />
types::TypeObject* object = types->getTypeObject(0);<br />
types::TypeSet* propertyTypes = object->getProperty(cx, id, false);<br />
...<br />
} else {<br />
...<br />
}<br />
However, if there is already a visual separation between the condition and the body, putting the { on a new line isn't necessary:<br />
<br />
if (forHead->pn_kid1 && NewSrcNote2(cx, cg, SRC_DECL,<br />
(forHead->pn_kid1->isOp(JSOP_DEFVAR))<br />
? SRC_DECL_VAR<br />
: SRC_DECL_LET) < 0) {<br />
return false;<br />
}<br />
* <code>for</code> loop heads go on one line where possible; when not possible, initializer part, update, and termination parts each go on separate lines<br />
for (int i = 0;<br />
i < 5;<br />
i++) { /* bad, could all fit on one line */<br />
doStuff();<br />
}<br />
for (int i = 0; i < 5; i++) { /* OK */<br />
doStuff();<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS; ind++) { /* bad */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS;<br />
ind++) { /* OK */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
* In comments, use one space, not two, between sentences and after a colon.<br />
<br />
= Control Flow =<br />
<br />
* Minimize indentation using return, break, and continue where appropriate. Prefer return (break, continue) statements to cast out abnormal cases, instead of nesting "if/else" statements and indenting the common cases.<br />
void<br />
MyFunction(int n)<br />
{<br />
if (n) { /* bad */<br />
...<br />
}<br />
}<br />
void<br />
MyFunction(int n)<br />
{<br />
if (!n) {<br />
return; /* OK */<br />
}<br />
...<br />
}<br />
<br />
* If an "if" statement controls a "then" clause ending in a return statement, do not use "else" after return.<br />
if (condition) { /* bad */<br />
DoThis();<br />
return;<br />
} else {<br />
DoThat();<br />
}<br />
<br />
if (condition) { /* OK */<br />
DoThis();<br />
return;<br />
}<br />
DoThat();<br />
<br />
* Avoid similar arbitrary patterns and non-sequiturs:<br />
if (condition) { /* bad */<br />
DoThis();<br />
DoThat();<br />
} else {<br />
CleanUp();<br />
return;<br />
}<br />
DoTheOther();<br />
if (!condition) { /* OK */<br />
CleanUp();<br />
return;<br />
}<br />
DoThis();<br />
DoThat();<br />
DoTheOther();<br />
<br />
* Avoid using && or || to mix deciding-whether-to-do-something with error-checking.<br />
<br />
if (obj->hasProblems() && !obj->rectify()) { /* bad */<br />
return false;<br />
}<br />
<br />
if (obj->hasProblems()) { /* OK */<br />
if (!obj->rectify()) {<br />
return false;<br />
}<br />
}<br />
<br />
= Comments =<br />
<br />
* In C files, always use C style comments. C++ comments are ok otherwise.<br />
* Terminate a comment with a period (so try to make comments be complete sentences).<br />
/* This is a good comment. */<br />
// This is also a good comment.<br />
* For C-style multiline comments, align with any indentation, and start every line with an asterisk. Asterisks stack in the same column. Precede the multiline comment with one empty line unless the prior line ends in a left brace. The first line of the comment contains only leading space followed by <code>/*</code>. Multiline comments should also be bracketed.<br />
<pre><br />
if (condition) {<br />
/*<br />
* This is a lengthy C-style<br />
* multiline comment.<br />
*/<br />
// This is a length<br />
// C++-style comment<br />
DoYourStuff();<br />
}<br />
</pre><br />
<br />
= Entry Points and Callbacks =<br />
<br />
* DLL entry points have their return type expanded within a JS_PUBLIC_API() macro call, to get the right Windows secret type qualifiers in the right places for all build variants.<br />
* Callback functions that might be called from a DLL are similarly macroized with JS_STATIC_DLL_CALLBACK (if the function otherwise would be static to hide its name) or JS_DLL_CALLBACK (this macro takes no type argument; it should be used after the return type and before the function name).<br />
<br />
= Data Types and Alignments =<br />
<br />
* As with all Mozilla code, SpiderMonkey needs to compile and execute correctly on many platforms, including 64-bits systems.<br />
* JS and NSPR have common roots in the dawn of time (Netscape 2), and the <code>JS_THREADSAFE</code> mode of building SpiderMonkey depends on NSPR, so reading the [http://www.mozilla.org/projects/nspr/reference/html/ NSPR documentation] is well worth your while.<br />
* Not all 64-bit systems use the same integer type model: some are "LP64" (long and pointer are 64 bits, int is 32 bits), while others are "LLP64" (only long long and pointer are 64 bits; long and int are 32 bits).<br />
* Use size_t for unsigned number of bytes variables, ptrdiff_t for signed pointer subtraction results. In particular, do not use uintN, which is just shorthand for unsigned int, and so may not be big enough.<br />
<br />
= Header files =<br />
<br />
== #ifndef wrappers ==<br />
<br />
Use this exact form for #ifndef wrappers in header files:<br />
<br />
#ifndef <guard><br />
#define <guard><br />
...<br />
#endif // <guard><br />
<br />
GCC and clang recognize this idiom and avoid re-reading headers that use it. Don't put any code before the #ifndef or after the #endif, and don't put anything else in the #ifndef, otherwise the optimization will be thwarted and the file will be multiply-included. (Check with the -H option if you want to be sure.)<br />
<br />
Include guards should be named by determining the fully-qualified include path,<br />
then substituting _ for '/' and '.' and '-' in it. For example, js/src/vm/Stack-inl.h's guard is vm_Stack_inl_h_, and js/public/Vector.h's guard is js_Vector_h (because its include path is js/Vector.h).<br />
<br />
== #include paths ==<br />
<br />
All #include statements should use a fully-qualified (within SpiderMonkey) path, even if it's not necessary. For example, this:<br />
<br />
#include "vm/Stack.h"<br />
<br />
not:<br />
<br />
#include "Stack.h"<br />
<br />
This keeps things consistent and helps with the ordering.<br />
<br />
For headers in js/public/, the prefix is "js/", e.g.:<br />
<br />
#include "js/Vector.h"<br />
<br />
For headers in mfbt/, the prefix is "mozilla/", e.g.:<br />
<br />
#include "mozilla/Assertions.h"<br />
<br />
== #include ordering ==<br />
<br />
The following order is used for module X: <br />
* If X-inl.h exists, it goes first. (And X-inl.h's first #include should be X.h.) Otherwise, X.h goes first. This rule ensures that X.h and X-inl.h both #include all the headers that they need themselves.<br />
* mozilla/*.h<br />
* <*.h><br />
* js*.h<br />
* */*.h (this includes the public JSAPI headers in js/public/*.h which should be included using the form js/*.h)<br />
* js*inlines.h<br />
* */*-inl.h.<br />
<br />
Keep (case-insensitive) lexicographic order with each section.<br />
<br />
The presence of conditionally-compiled #include statements complicates thing. If you have a single #include statement within a #if/#ifdef/#ifndef block, placing the block in the appropriate section is straightforward. If you have multiple #include statements within a block, use your judgment as to where the best place for it is.<br />
<br />
Example for X.cpp:<br />
<br />
#include "X.h" // put "X-inl.h" instead, if it exists<br />
<br />
#include "mozilla/HashFunctions.h"<br />
<br />
#include <string.h><br />
<br />
#include "jsbar.h"<br />
#ifdef BAZ<br />
# include "jsbaz.h"<br />
#endif<br />
#include "jscaz.h"<br />
<br />
#include "ds/Baz.h"<br />
#include "js/Bar.h"<br />
#include "vm/Bat.h"<br />
<br />
#include "jssqueeinlines.h"<br />
#include "jswoot-inl.h"<br />
<br />
#include "frontend/Thingamabob-inl.h"<br />
#include "vm/VirtualReality-inl.h"<br />
<br />
= C++ =<br />
<br />
== Namespaces ==<br />
<br />
* Public functions and types should be in the JS:: namespace, in preference to the old JS/JS_ name prefixes.<br />
* Library-private and friend functions should be in the js:: namespace, in preference to the old js_ name prefix.<br />
* Compile-time-evaluated functions (i.e., template meta-functions) should be in 'js::tl::', the "template library" namespace, to avoid collision with their runtime counterparts.<br />
* In SpiderMonkey .cpp files, it is okay to have 'using namespace js;', but it is not okay to do the same with any other namespace, like JS:: or mozilla::. These can introduce ambiguities that come and go depending on which .cpp files the build system decides to unify.<br />
* If you do have names in JS:: that should be readily available throughout SpiderMonkey, you may add a 'using' declaration to js/src/NamespaceImports.h.<br />
* Avoid unnamed namespaces unless they are necessary to give a class's members internal linkage. Although the C++ standard officially deprecates 'static' on functions, 'static' has the following advantages over unnamed namespaces:<br />
** It is difficult to name functions in unnamed namespaces in gdb.<br />
** Static says "this is a translation-unit-local helper function" on the function, without having to look around for an enclosing "namespace {".<br />
<br />
== Enums ==<br />
<br />
Older code uses SHOUT_REALLY_LOUD for enum values, newer code uses InterCaps. Enums should be preferred to boolean arguments for ease of understanding at the invocation site.<br />
<br />
== Classes ==<br />
<br />
* For reasonable-sized classes, put all the fields together, at the top, immediately after any necessary typedefs. For unreasonably large classes, do whatever seems best (but let's try to avoid making more of these).<br />
* Align the braces of a class/struct/enum definition like this:<br />
class JSObject<br />
{<br />
...<br />
};<br />
* Member variable names, private or public, should be decorated with a trailing '_'.<br />
class Fail<br />
{<br />
size_t capacity; // common<br />
T* begin_; // better, gravitate toward this<br />
};<br />
Sometimes a canonical argument name may conflict with a member name. In this case, one can disambiguate with "this->", although such explicit qualification should only be added when necessary:<br />
class C<br />
{<br />
public:<br />
size_t count;<br />
bool fresh;<br />
void change(size_t count) {<br />
this->count = count;<br />
this->fresh = false; // verbose and unnecessary<br />
}<br />
};<br />
* Prefer inline functions to macros.<br />
* We build with C++ exceptions disabled, so most of the <code>std</code> namespace is off-limits, including STL containers. The exception is <code>&lt;algorithm&gt;</code>, which is mostly OK to use. You can use MFBT. We have some STL-like containers that are used basically everywhere (see js::Vector, js::HashMap, etc.)<br />
<br />
=== Initializer lists ===<br />
<br />
Initializer lists can break in one of two ways. The first may be preferable when constructors take few arguments:<br />
<br />
class Ninja : public WeaponWeilder, public Camouflagible,<br />
public Assassinatable, public ShapeShiftable<br />
{<br />
Ninja() : WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
The other permitted style mitigates longer-identifiers-squishing-text-against-the-right-side-of-the-screen-syndrome by using a half-indented colon:<br />
<br />
class Ninja<br />
: public WeaponWeilder, public Camouflagible, public Assassinatable,<br />
public ShapeShiftable<br />
{<br />
Ninja()<br />
: WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
=== Inline methods ===<br />
<br />
If the method in question fits on one line and is branch free, do a one liner:<br />
<br />
class Eater<br />
{<br />
void eat(Eaten &other) { other.setConsumed(); }<br />
};<br />
<br />
If it's too long, put the type, declarator including formals (unless they overflow), and left brace all on the first line:<br />
<br />
class Eater<br />
{<br />
Food* obtainFoodFromEatery(Eatery& eatery) {<br />
if (!eatery.hasFood()) {<br />
return nullptr;<br />
}<br />
return eatery.purchaseFood();<br />
}<br />
};<br />
<br />
For out-of-line inlines (when the definitions are too unwieldy to place in the class definition) use the inline keyword as an indicator that there's an out-of-line inline definition:<br />
<br />
class SpaceGoo<br />
{<br />
inline BlobbyWrapper* enblob(Entity& other);<br />
};<br />
<br />
inline BlobbyWrapper*<br />
SpaceGoo::enblob(Entity &other)<br />
{<br />
/* ... */<br />
}<br />
<br />
== References ==<br />
<br />
* [https://developer.mozilla.org/en/Mozilla_Coding_Style_Guide Mozilla's coding style guide].<br />
* [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ coding style guide].<br />
<br />
= Exceptions to this coding style =<br />
<br />
SpiderMonkey contains some code imported from other projects, e.g. ctypes/libffi/, that is minimally modified. Such code does not have to follow SpiderMonkey style.</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:Coding_Style&diff=1200942JavaScript:SpiderMonkey:Coding Style2018-09-12T06:27:37Z<p>Jandem: fix some pre-existing issues</p>
<hr />
<div>= Code Organization =<br />
<br />
See [[JavaScript:SpiderMonkey:Directories]].<br />
<br />
= Functions =<br />
<br />
* Public function names begin with JS_ followed by capitalized "intercaps", e.g. JS_NewObject.<br />
* Extern but library-private function names use a js_ prefix and mixed case, e.g. js_SearchScope.<br />
* Most static function names have unprefixed, mixed-case names: GetChar.<br />
* But static native methods of JS objects have lowercase, underscore-separated or intercaps names, e.g., str_indexOf.<br />
* Function return types are on a separate line preceding the function name.<br />
* Function braces go on the line following the function name.<br />
void DoThis() /* bad */<br />
{<br />
...<br />
}<br />
void<br />
DoThis() /* OK */<br />
{<br />
...<br />
}<br />
<br />
= Other Symbols =<br />
<br />
* Library-private and static data use underscores, not intercaps (but library-private data do use a js_ prefix).<br />
* Scalar type names are lowercase and js-prefixed: jsdouble.<br />
* Aggregate type names are JS-prefixed and mixed-case: JSObject.<br />
* Macros are generally ALL_CAPS and underscored, to call out potential side effects, multiple uses of a formal argument, etc. Line continuation characters should all line up, in column 79 if that exceeds the width of all the macro text. Macro parameters should be of the form name_ (instead of something like __name).<br />
<br />
= Indentation =<br />
<br />
* Use spaces, not tabs. There should be no tabs in source files.<br />
* Four spaces of indentation per statement nesting level.<br />
* "<code>case L:</code>" labels in <code>switch</code> statements count as half of a nesting level, so indent two spaces, with the labeled statements indenting two more for a standard four spaces indentation from <code>switch</code> to a case-controlled statement.<br />
switch (discriminant) {<br />
case L1:<br />
DoSomething();<br />
. . .<br />
}<br />
* Function arguments that overflow the first line of the call expression should be aligned to underhang the first argument (to start in overflow lines in the column after the opening parenthesis).<br />
JS_SetContext(rt, /* bad */<br />
cx);<br />
JS_SetContext(rt, /* OK */<br />
cx);<br />
<br />
= Whitespace in declarations =<br />
<br />
These rules are inconsistently applied. Be consistent with the code you're editing rather than adhere too closely to these guidelines!<br />
<br />
* In a declaration of a pointer, the <code>*</code> goes with the type:<br />
char *s; /* bad */<br />
char* s; /* OK */<br />
* In C++ method declarations with default arguments, use spaces and comments like so:<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue = 0);<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue /* = 0 */)<br />
{<br />
/* ... */<br />
}<br />
<br />
= Other whitespace =<br />
<br />
* Code should fit within 99 columns; comments should fit within 80 columns; both figures include indentation. Break down lines that are too long by splitting after a binary operator.<br />
* Exception: in a <code>switch</code> statement where each case is a trivially-short statement, it's ok to put the <code>case</code>, the statement, and the <code>break;</code> all on one line.<br />
* Comment <code>/* FALL THROUGH */</code> in place of missing <code>break</code> when intentionally falling through from one case-controlled statement sequence into another, or into the <code>default</code> statements.<br />
* Do not use spaces between a function name and its arguments list, or between an array name and the square bracket. Also, do no use spaces after a bracket. Use a space after a comma to separate arguments.<br />
JS_SetContext ( rt, cx ); /* bad */<br />
JS_SetContext(rt, cx); /* OK */<br />
* Use a space between a C keyword and parentheses.<br />
if(condition) { /* bad */<br />
if (condition) { /* OK */<br />
* Always use braces for conditionals, even if the condition and consequent occupy single lines.<br />
<br />
if (!isAwake) {<br />
return false;<br />
}<br />
if (canSwingFromWeb) {<br />
p->swingFromWeb();<br />
} else {<br />
MOZ_ASSERT(p->isSpiderPig());<br />
p->doWhateverSpiderPigDoes();<br />
}<br />
if (hungryForBananas && // and a comment makes the line long enough for a linebreak<br />
wantsAttentionInTheWorstWay)<br />
{<br />
p->eatBananasAndPreen();<br />
}<br />
* Conditions with multi-line tests should put the brace on the new line to provide a visual separation between the condition and the body.<br />
<br />
types::TypeSet* types = frame.extra(lhs).types;<br />
if (JSOp(*PC) == JSOP_SETPROP && id == types::MakeTypeId(cx, id) &&<br />
types && !types->unknownObject() &&<br />
types->getObjectCount() == 1 &&<br />
types->getTypeObject(0) != NULL &&<br />
!types->getTypeObject(0)->unknownProperties())<br />
{<br />
JS_ASSERT(usePropCache);<br />
types::TypeObject* object = types->getTypeObject(0);<br />
types::TypeSet* propertyTypes = object->getProperty(cx, id, false);<br />
...<br />
} else {<br />
...<br />
}<br />
However, if there is already a visual separation between the condition and the body, putting the { on a new line isn't necessary:<br />
<br />
if (forHead->pn_kid1 && NewSrcNote2(cx, cg, SRC_DECL,<br />
(forHead->pn_kid1->isOp(JSOP_DEFVAR))<br />
? SRC_DECL_VAR<br />
: SRC_DECL_LET) < 0) {<br />
return false;<br />
}<br />
* <code>for</code> loop heads go on one line where possible; when not possible, initializer part, update, and termination parts each go on separate lines<br />
for (int i = 0;<br />
i < 5;<br />
i++) { /* bad, could all fit on one line */<br />
doStuff();<br />
}<br />
for (int i = 0; i < 5; i++) { /* OK */<br />
doStuff();<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS; ind++) { /* bad */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS;<br />
ind++) { /* OK */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
* In comments, use one space, not two, between sentences and after a colon.<br />
<br />
= Control Flow =<br />
<br />
* Minimize indentation using return, break, and continue where appropriate. Prefer return (break, continue) statements to cast out abnormal cases, instead of nesting "if/else" statements and indenting the common cases.<br />
void<br />
MyFunction(int n)<br />
{<br />
if (n) { /* bad */<br />
...<br />
}<br />
}<br />
void<br />
MyFunction(int n)<br />
{<br />
if (!n) {<br />
return; /* OK */<br />
}<br />
...<br />
}<br />
<br />
* If an "if" statement controls a "then" clause ending in a return statement, do not use "else" after return.<br />
if (condition) { /* bad */<br />
DoThis();<br />
return;<br />
} else {<br />
DoThat();<br />
}<br />
<br />
if (condition) { /* OK */<br />
DoThis();<br />
return;<br />
}<br />
DoThat();<br />
<br />
* Avoid similar arbitrary patterns and non-sequiturs:<br />
if (condition) { /* bad */<br />
DoThis();<br />
DoThat();<br />
} else {<br />
CleanUp();<br />
return;<br />
}<br />
DoTheOther();<br />
if (!condition) { /* OK */<br />
CleanUp();<br />
return;<br />
}<br />
DoThis();<br />
DoThat();<br />
DoTheOther();<br />
<br />
* Avoid using && or || to mix deciding-whether-to-do-something with error-checking.<br />
<br />
if (obj->hasProblems() && !obj->rectify()) { /* bad */<br />
return false;<br />
}<br />
<br />
if (obj->hasProblems()) { /* OK */<br />
if (!obj->rectify()) {<br />
return false;<br />
}<br />
}<br />
<br />
= Comments =<br />
<br />
* In C files, always use C style comments. C++ comments are ok otherwise.<br />
* Terminate a comment with a period (so try to make comments be complete sentences).<br />
/* This is a good comment. */<br />
// This is also a good comment.<br />
* For C-style multiline comments, align with any indentation, and start every line with an asterisk. Asterisks stack in the same column. Precede the multiline comment with one empty line unless the prior line ends in a left brace. The first line of the comment contains only leading space followed by <code>/*</code>. Multiline comments should also be bracketed.<br />
<pre><br />
if (condition) {<br />
/*<br />
* This is a lengthy C-style<br />
* multiline comment.<br />
*/<br />
// This is a length<br />
// C++-style comment<br />
DoYourStuff();<br />
}<br />
</pre><br />
<br />
= Entry Points and Callbacks =<br />
<br />
* DLL entry points have their return type expanded within a JS_PUBLIC_API() macro call, to get the right Windows secret type qualifiers in the right places for all build variants.<br />
* Callback functions that might be called from a DLL are similarly macroized with JS_STATIC_DLL_CALLBACK (if the function otherwise would be static to hide its name) or JS_DLL_CALLBACK (this macro takes no type argument; it should be used after the return type and before the function name).<br />
<br />
= Data Types and Alignments =<br />
<br />
* As with all Mozilla code, SpiderMonkey needs to compile and execute correctly on many platforms, including 64-bits systems.<br />
* JS and NSPR have common roots in the dawn of time (Netscape 2), and the <code>JS_THREADSAFE</code> mode of building SpiderMonkey depends on NSPR, so reading the [http://www.mozilla.org/projects/nspr/reference/html/ NSPR documentation] is well worth your while.<br />
* Not all 64-bit systems use the same integer type model: some are "LP64" (long and pointer are 64 bits, int is 32 bits), while others are "LLP64" (only long long and pointer are 64 bits; long and int are 32 bits).<br />
* Use size_t for unsigned number of bytes variables, ptrdiff_t for signed pointer subtraction results. In particular, do not use uintN, which is just shorthand for unsigned int, and so may not be big enough.<br />
<br />
= Header files =<br />
<br />
== #ifndef wrappers ==<br />
<br />
Use this exact form for #ifndef wrappers in header files:<br />
<br />
#ifndef <guard><br />
#define <guard><br />
...<br />
#endif // <guard><br />
<br />
GCC and clang recognize this idiom and avoid re-reading headers that use it. Don't put any code before the #ifndef or after the #endif, and don't put anything else in the #ifndef, otherwise the optimization will be thwarted and the file will be multiply-included. (Check with the -H option if you want to be sure.)<br />
<br />
Include guards should be named by determining the fully-qualified include path,<br />
then substituting _ for '/' and '.' and '-' in it. For example, js/src/vm/Stack-inl.h's guard is vm_Stack_inl_h_, and js/public/Vector.h's guard is js_Vector_h (because its include path is js/Vector.h).<br />
<br />
== #include paths ==<br />
<br />
All #include statements should use a fully-qualified (within SpiderMonkey) path, even if it's not necessary. For example, this:<br />
<br />
#include "vm/Stack.h"<br />
<br />
not:<br />
<br />
#include "Stack.h"<br />
<br />
This keeps things consistent and helps with the ordering.<br />
<br />
For headers in js/public/, the prefix is "js/", e.g.:<br />
<br />
#include "js/Vector.h"<br />
<br />
For headers in mfbt/, the prefix is "mozilla/", e.g.:<br />
<br />
#include "mozilla/Assertions.h"<br />
<br />
== #include ordering ==<br />
<br />
The following order is used for module X: <br />
* If X-inl.h exists, it goes first. (And X-inl.h's first #include should be X.h.) Otherwise, X.h goes first. This rule ensures that X.h and X-inl.h both #include all the headers that they need themselves.<br />
* mozilla/*.h<br />
* <*.h><br />
* js*.h<br />
* */*.h (this includes the public JSAPI headers in js/public/*.h which should be included using the form js/*.h)<br />
* js*inlines.h<br />
* */*-inl.h.<br />
<br />
Keep (case-insensitive) lexicographic order with each section.<br />
<br />
The presence of conditionally-compiled #include statements complicates thing. If you have a single #include statement within a #if/#ifdef/#ifndef block, placing the block in the appropriate section is straightforward. If you have multiple #include statements within a block, use your judgment as to where the best place for it is.<br />
<br />
Example for X.cpp:<br />
<br />
#include "X.h" // put "X-inl.h" instead, if it exists<br />
<br />
#include "mozilla/HashFunctions.h"<br />
<br />
#include <string.h><br />
<br />
#include "jsbar.h"<br />
#ifdef BAZ<br />
# include "jsbaz.h"<br />
#endif<br />
#include "jscaz.h"<br />
<br />
#include "ds/Baz.h"<br />
#include "js/Bar.h"<br />
#include "vm/Bat.h"<br />
<br />
#include "jssqueeinlines.h"<br />
#include "jswoot-inl.h"<br />
<br />
#include "frontend/Thingamabob-inl.h"<br />
#include "vm/VirtualReality-inl.h"<br />
<br />
= C++ =<br />
<br />
== Namespaces ==<br />
<br />
* Public functions and types should be in the JS:: namespace, in preference to the old JS/JS_ name prefixes.<br />
* Library-private and friend functions should be in the js:: namespace, in preference to the old js_ name prefix.<br />
* Compile-time-evaluated functions (i.e., template meta-functions) should be in 'js::tl::', the "template library" namespace, to avoid collision with their runtime counterparts.<br />
* In SpiderMonkey .cpp files, it is okay to have 'using namespace js;', but it is not okay to do the same with any other namespace, like JS:: or mozilla::. These can introduce ambiguities that come and go depending on which .cpp files the build system decides to unify.<br />
* If you do have names in JS:: that should be readily available throughout SpiderMonkey, you may add a 'using' declaration to js/src/NamespaceImports.h.<br />
* Avoid unnamed namespaces unless they are necessary to give a class's members internal linkage. Although the C++ standard officially deprecates 'static' on functions, 'static' has the following advantages over unnamed namespaces:<br />
** It is difficult to name functions in unnamed namespaces in gdb.<br />
** Static says "this is a translation-unit-local helper function" on the function, without having to look around for an enclosing "namespace {".<br />
<br />
== Enums ==<br />
<br />
Older code uses SHOUT_REALLY_LOUD for enum values, newer code uses InterCaps. Enums should be preferred to boolean arguments for ease of understanding at the invocation site.<br />
<br />
== Classes ==<br />
<br />
* For reasonable-sized classes, put all the fields together, at the top, immediately after any necessary typedefs. For unreasonably large classes, do whatever seems best (but let's try to avoid making more of these).<br />
* Align the braces of a class/struct/enum definition like this:<br />
class JSObject<br />
{<br />
...<br />
};<br />
* Member variable names, private or public, should be decorated with a trailing '_'.<br />
class Fail<br />
{<br />
size_t capacity; // common<br />
T* begin_; // better, gravitate toward this<br />
};<br />
Sometimes a canonical argument name may conflict with a member name. In this case, one can disambiguate with "this->", although such explicit qualification should only be added when necessary:<br />
class C<br />
{<br />
public:<br />
size_t count;<br />
bool fresh;<br />
void change(size_t count) {<br />
this->count = count;<br />
this->fresh = false; // verbose and unnecessary<br />
}<br />
};<br />
* Prefer inline functions to macros.<br />
* We build with C++ exceptions disabled, so most of the <code>std</code> namespace is off-limits, including STL containers. The exception is <code>&lt;algorithm&gt;</code>, which is mostly OK to use. You can use MFBT. We have some STL-like containers that are used basically everywhere (see js::Vector, js::HashMap, etc.)<br />
<br />
=== Initializer lists ===<br />
<br />
Initializer lists can break in one of two ways. The first may be preferable when constructors take few arguments:<br />
<br />
class Ninja : public WeaponWeilder, public Camouflagible,<br />
public Assassinatable, public ShapeShiftable<br />
{<br />
Ninja() : WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
The other permitted style mitigates longer-identifiers-squishing-text-against-the-right-side-of-the-screen-syndrome by using a half-indented colon:<br />
<br />
class Ninja<br />
: public WeaponWeilder, public Camouflagible, public Assassinatable,<br />
public ShapeShiftable<br />
{<br />
Ninja()<br />
: WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
=== Inline methods ===<br />
<br />
If the method in question fits on one line and is branch free, do a one liner:<br />
<br />
class Eater<br />
{<br />
void eat(Eaten &other) { other.setConsumed(); }<br />
};<br />
<br />
If it's too long, put the type, declarator including formals (unless they overflow), and left brace all on the first line:<br />
<br />
class Eater<br />
{<br />
Food* obtainFoodFromEatery(Eatery& eatery) {<br />
if (!eatery.hasFood()) {<br />
return nullptr;<br />
}<br />
return eatery.purchaseFood();<br />
}<br />
};<br />
<br />
For out-of-line inlines (when the definitions are too unwieldy to place in the class definition) use the inline keyword as an indicator that there's an out-of-line inline definition:<br />
<br />
class SpaceGoo<br />
{<br />
inline BlobbyWrapper* enblob(Entity& other);<br />
};<br />
<br />
inline BlobbyWrapper*<br />
SpaceGoo::enblob(Entity &other)<br />
{<br />
/* ... */<br />
}<br />
<br />
== References ==<br />
<br />
* [https://developer.mozilla.org/en/Mozilla_Coding_Style_Guide Mozilla's coding style guide].<br />
* [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ coding style guide].<br />
<br />
= Exceptions to this coding style =<br />
<br />
SpiderMonkey contains some code imported from other projects, e.g. ctypes/libffi/, that is minimally modified. Such code does not have to follow SpiderMonkey style.</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:Coding_Style&diff=1200941JavaScript:SpiderMonkey:Coding Style2018-09-12T06:26:16Z<p>Jandem: minor edits</p>
<hr />
<div>= Code Organization =<br />
<br />
See [[JavaScript:SpiderMonkey:Directories]].<br />
<br />
= Functions =<br />
<br />
* Public function names begin with JS_ followed by capitalized "intercaps", e.g. JS_NewObject.<br />
* Extern but library-private function names use a js_ prefix and mixed case, e.g. js_SearchScope.<br />
* Most static function names have unprefixed, mixed-case names: GetChar.<br />
* But static native methods of JS objects have lowercase, underscore-separated or intercaps names, e.g., str_indexOf.<br />
* Function return types are on a separate line preceding the function name.<br />
* Function braces go on the line following the function name.<br />
void DoThis() /* bad */<br />
{<br />
...<br />
}<br />
void<br />
DoThis() /* OK */<br />
{<br />
...<br />
}<br />
<br />
= Other Symbols =<br />
<br />
* Library-private and static data use underscores, not intercaps (but library-private data do use a js_ prefix).<br />
* Scalar type names are lowercase and js-prefixed: jsdouble.<br />
* Aggregate type names are JS-prefixed and mixed-case: JSObject.<br />
* Macros are generally ALL_CAPS and underscored, to call out potential side effects, multiple uses of a formal argument, etc. Line continuation characters should all line up, in column 79 if that exceeds the width of all the macro text. Macro parameters should be of the form name_ (instead of something like __name).<br />
<br />
= Indentation =<br />
<br />
* Use spaces, not tabs. There should be no tabs in source files.<br />
* Four spaces of indentation per statement nesting level.<br />
* "<code>case L:</code>" labels in <code>switch</code> statements count as half of a nesting level, so indent two spaces, with the labeled statements indenting two more for a standard four spaces indentation from <code>switch</code> to a case-controlled statement.<br />
switch (discriminant) {<br />
case L1:<br />
DoSomething();<br />
. . .<br />
}<br />
* Function arguments that overflow the first line of the call expression should be aligned to underhang the first argument (to start in overflow lines in the column after the opening parenthesis).<br />
JS_SetContext(rt, /* bad */<br />
cx);<br />
JS_SetContext(rt, /* OK */<br />
cx);<br />
<br />
= Whitespace in declarations =<br />
<br />
These rules are inconsistently applied. Be consistent with the code you're editing rather than adhere too closely to these guidelines!<br />
<br />
* In a declaration of a pointer, the <code>*</code> goes with the type:<br />
char *s; /* bad */<br />
char* s; /* OK */<br />
* In C++ method declarations with default arguments, use spaces and comments like so:<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue = 0);<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue /* = 0 */)<br />
{<br />
/* ... */<br />
}<br />
<br />
= Other whitespace =<br />
<br />
* Code should fit within 99 columns; comments should fit within 80 columns; both figures include indentation. Break down lines that are too long by splitting after a binary operator.<br />
* Exception: in a <code>switch</code> statement where each case is a trivially-short statement, it's ok to put the <code>case</code>, the statement, and the <code>break;</code> all on one line.<br />
* Comment <code>/* FALL THROUGH */</code> in place of missing <code>break</code> when intentionally falling through from one case-controlled statement sequence into another, or into the <code>default</code> statements.<br />
* Do not use spaces between a function name and its arguments list, or between an array name and the square bracket. Also, do no use spaces after a bracket. Use a space after a comma to separate arguments.<br />
JS_SetContext ( rt, cx ); /* bad */<br />
JS_SetContext(rt, cx); /* OK */<br />
* Use a space between a C keyword and parentheses.<br />
if(condition) { /* bad */<br />
if (condition) { /* OK */<br />
* Always use braces for conditionals, even if the condition and consequent occupy single lines.<br />
<br />
if (!isAwake) {<br />
return false;<br />
}<br />
if (canSwingFromWeb) {<br />
p->swingFromWeb();<br />
} else {<br />
MOZ_ASSERT(p->isSpiderPig());<br />
p->doWhateverSpiderPigDoes();<br />
}<br />
if (hungryForBananas && // and a comment makes the line long enough for a linebreak<br />
wantsAttentionInTheWorstWay)<br />
{<br />
p->eatBananasAndPreen();<br />
}<br />
* Conditions with multi-line tests should put the brace on the new line to provide a visual separation between the condition and the body.<br />
<br />
types::TypeSet* types = frame.extra(lhs).types;<br />
if (JSOp(*PC) == JSOP_SETPROP && id == types::MakeTypeId(cx, id) &&<br />
types && !types->unknownObject() &&<br />
types->getObjectCount() == 1 &&<br />
types->getTypeObject(0) != NULL &&<br />
!types->getTypeObject(0)->unknownProperties())<br />
{<br />
JS_ASSERT(usePropCache);<br />
types::TypeObject* object = types->getTypeObject(0);<br />
types::TypeSet* propertyTypes = object->getProperty(cx, id, false);<br />
...<br />
} else {<br />
...<br />
}<br />
However, if there is already a visual separation between the condition and the body, putting the { on a new line isn't necessary:<br />
<br />
if (forHead->pn_kid1 && NewSrcNote2(cx, cg, SRC_DECL,<br />
(forHead->pn_kid1->isOp(JSOP_DEFVAR))<br />
? SRC_DECL_VAR<br />
: SRC_DECL_LET) < 0) {<br />
return false;<br />
}<br />
* <code>for</code> loop heads go on one line where possible; when not possible, initializer part, update, and termination parts each go on separate lines<br />
for (int i = 0;<br />
i < 5;<br />
i++) { /* bad, could all fit on one line */<br />
doStuff();<br />
}<br />
for (int i = 0; i < 5; i++) { /* OK */<br />
doStuff();<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS; ind++) { /* bad */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS;<br />
ind++) { /* OK */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
* In comments, use one space, not two, between sentences and after a colon.<br />
<br />
= Control Flow =<br />
<br />
* Minimize indentation using return, break, and continue where appropriate. Prefer return (break, continue) statements to cast out abnormal cases, instead of nesting "if/else" statements and indenting the common cases.<br />
void<br />
MyFunction(int n)<br />
{<br />
if (n) { /* bad */<br />
...<br />
}<br />
}<br />
void<br />
MyFunction(int n)<br />
{<br />
if (!n) {<br />
return; /* OK */<br />
}<br />
...<br />
}<br />
<br />
* If an "if" statement controls a "then" clause ending in a return statement, do not use "else" after return.<br />
if (condition) { /* bad */<br />
DoThis();<br />
return;<br />
} else {<br />
DoThat();<br />
}<br />
<br />
if (condition) { /* OK */<br />
DoThis();<br />
return;<br />
}<br />
DoThat();<br />
<br />
* Avoid similar arbitrary patterns and non-sequiturs:<br />
if (condition) { /* bad */<br />
DoThis();<br />
DoThat();<br />
} else {<br />
CleanUp();<br />
return;<br />
}<br />
DoTheOther();<br />
if (!condition) { /* OK */<br />
CleanUp();<br />
return;<br />
}<br />
DoThis();<br />
DoThat();<br />
DoTheOther();<br />
<br />
* Avoid using && or || to mix deciding-whether-to-do-something with error-checking.<br />
<br />
if (obj->hasProblems() && !obj->rectify()) { /* bad */<br />
return false;<br />
}<br />
<br />
if (obj->hasProblems()) { /* OK */<br />
if (!obj->rectify()) {<br />
return false;<br />
}<br />
}<br />
<br />
= Comments =<br />
<br />
* In C files, always use C style comments. C++ comments are ok otherwise.<br />
* Terminate a comment with a period (so try to make comments be complete sentences).<br />
/* This is a good comment. */<br />
// This is also a good comment.<br />
* For C-style multiline comments, align with any indentation, and start every line with an asterisk. Asterisks stack in the same column. Precede the multiline comment with one empty line unless the prior line ends in a left brace. The first line of the comment contains only leading space followed by <code>/*</code>. Multiline comments should also be bracketed.<br />
<pre><br />
if (condition) {<br />
/*<br />
* This is a lengthy C-style<br />
* multiline comment.<br />
*/<br />
// This is a length<br />
// C++-style comment<br />
DoYourStuff();<br />
}<br />
</pre><br />
<br />
= Entry Points and Callbacks =<br />
<br />
* DLL entry points have their return type expanded within a JS_PUBLIC_API() macro call, to get the right Windows secret type qualifiers in the right places for all build variants.<br />
* Callback functions that might be called from a DLL are similarly macroized with JS_STATIC_DLL_CALLBACK (if the function otherwise would be static to hide its name) or JS_DLL_CALLBACK (this macro takes no type argument; it should be used after the return type and before the function name).<br />
<br />
= Data Types and Alignments =<br />
<br />
* As with all Mozilla code, SpiderMonkey needs to compile and execute correctly on many platforms, including 64-bits systems.<br />
* JS and NSPR have common roots in the dawn of time (Netscape 2), and the <code>JS_THREADSAFE</code> mode of building SpiderMonkey depends on NSPR, so reading the [http://www.mozilla.org/projects/nspr/reference/html/ NSPR documentation] is well worth your while.<br />
* Not all 64-bit systems use the same integer type model: some are "LP64" (long and pointer are 64 bits, int is 32 bits), while others are "LLP64" (only long long and pointer are 64 bits; long and int are 32 bits).<br />
* Use size_t for unsigned number of bytes variables, ptrdiff_t for signed pointer subtraction results. In particular, do not use uintN, which is just shorthand for unsigned int, and so may not be big enough.<br />
<br />
= Header files =<br />
<br />
== #ifndef wrappers ==<br />
<br />
Use this exact form for #ifndef wrappers in header files:<br />
<br />
#ifndef <guard><br />
#define <guard><br />
...<br />
#endif // <guard><br />
<br />
GCC and clang recognize this idiom and avoid re-reading headers that use it. Don't put any code before the #ifndef or after the #endif, and don't put anything else in the #ifndef, otherwise the optimization will be thwarted and the file will be multiply-included. (Check with the -H option if you want to be sure.)<br />
<br />
Include guards should be named by determining the fully-qualified include path,<br />
then substituting _ for '/' and '.' and '-' in it. For example, js/src/vm/Stack-inl.h's guard is vm_Stack_inl_h_, and js/public/Vector.h's guard is js_Vector_h (because its include path is js/Vector.h).<br />
<br />
== #include paths ==<br />
<br />
All #include statements should use a fully-qualified (within SpiderMonkey) path, even if it's not necessary. For example, this:<br />
<br />
#include "vm/Stack.h"<br />
<br />
not:<br />
<br />
#include "Stack.h"<br />
<br />
This keeps things consistent and helps with the ordering.<br />
<br />
For headers in js/public/, the prefix is "js/", e.g.:<br />
<br />
#include "js/Vector.h"<br />
<br />
For headers in mfbt/, the prefix is "mozilla/", e.g.:<br />
<br />
#include "mozilla/Assertions.h"<br />
<br />
== #include ordering ==<br />
<br />
The following order is used for module X: <br />
* If X-inl.h exists, it goes first. (And X-inl.h's first #include should be X.h.) Otherwise, X.h goes first. This rule ensures that X.h and X-inl.h both #include all the headers that they need themselves.<br />
* mozilla/*.h<br />
* <*.h><br />
* js*.h<br />
* */*.h (this includes the public JSAPI headers in js/public/*.h which should be included using the form js/*.h)<br />
* js*inlines.h<br />
* */*-inl.h.<br />
<br />
Keep (case-insensitive) lexicographic order with each section.<br />
<br />
The presence of conditionally-compiled #include statements complicates thing. If you have a single #include statement within a #if/#ifdef/#ifndef block, placing the block in the appropriate section is straightforward. If you have multiple #include statements within a block, use your judgment as to where the best place for it is.<br />
<br />
Example for X.cpp:<br />
<br />
#include "X.h" // put "X-inl.h" instead, if it exists<br />
<br />
#include "mozilla/HashFunctions.h"<br />
<br />
#include <string.h><br />
<br />
#include "jsbar.h"<br />
#ifdef BAZ<br />
# include "jsbaz.h"<br />
#endif<br />
#include "jscaz.h"<br />
<br />
#include "ds/Baz.h"<br />
#include "js/Bar.h"<br />
#include "vm/Bat.h"<br />
<br />
#include "jssqueeinlines.h"<br />
#include "jswoot-inl.h"<br />
<br />
#include "frontend/Thingamabob-inl.h"<br />
#include "vm/VirtualReality-inl.h"<br />
<br />
= C++ =<br />
<br />
== Namespaces ==<br />
<br />
* Public functions and types should be in the JS:: namespace, in preference to the old JS/JS_ name prefixes.<br />
* Library-private and friend functions should be in the js:: namespace, in preference to the old js_ name prefix.<br />
* Compile-time-evaluated functions (i.e., template meta-functions) should be in 'js::tl::', the "template library" namespace, to avoid collision with their runtime counterparts.<br />
* In SpiderMonkey .cpp files, it is okay to have 'using namespace js;', but it is not okay to do the same with any other namespace, like JS:: or mozilla::. These can introduce ambiguities that come and go depending on which .cpp files the build system decides to unify.<br />
* If you do have names in JS:: that should be readily available throughout SpiderMonkey, you may add a 'using' declaration to js/src/NamespaceImports.h.<br />
* Avoid unnamed namespaces unless they are necessary to give a class's members internal linkage. Although the C++ standard officially deprecates 'static' on functions, 'static' has the following advantages over unnamed namespaces:<br />
** It is difficult to name functions in unnamed namespaces in gdb.<br />
** Static says "this is a translation-unit-local helper function" on the function, without having to look around for an enclosing "namespace {".<br />
<br />
== Enums ==<br />
<br />
Older code uses SHOUT_REALLY_LOUD for enum values, newer code uses InterCaps. Enums should be preferred to boolean arguments for ease of understanding at the invocation site.<br />
<br />
== Classes ==<br />
<br />
* For reasonable-sized classes, put all the fields together, at the top, immediately after any necessary typedefs. For unreasonably large classes, do whatever seems best (but let's try to avoid making more of these).<br />
* Align the braces of a class/struct/enum definition like this:<br />
class JSObject<br />
{<br />
...<br />
};<br />
* Member variable names, private or public, should be decorated with a trailing '_'.<br />
class Fail<br />
{<br />
size_t capacity; // common<br />
T* begin_; // better, gravitate toward this<br />
};<br />
Sometimes a canonical argument name may conflict with a member name. In this case, one can disambiguate with "this->", although such explicit qualification should only be added when necessary:<br />
class C<br />
{<br />
public:<br />
size_t count;<br />
bool fresh;<br />
void change(size_t count) {<br />
this->count = count;<br />
this->fresh = false; // verbose and unnecessary<br />
}<br />
};<br />
* Prefer inline functions to macros.<br />
* We build with C++ exceptions disabled, so most of the <code>std</code> namespace is off-limits, including STL containers. The exception is <code>&lt;algorithm&gt;</code>, which is mostly OK to use. You can use MFBT. We have some STL-like containers that are used basically everywhere (see js::Vector, js::HashMap, etc.)<br />
<br />
=== Initializer lists ===<br />
<br />
Initializer lists can break in one of two ways. The first may be preferable when constructors take few arguments:<br />
<br />
class Ninja : public WeaponWeilder, public Camouflagible,<br />
public Assassinatable, public ShapeShiftable<br />
{<br />
Ninja() : WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
The other permitted style mitigates longer-identifiers-squishing-text-against-the-right-side-of-the-screen-syndrome by using a half-indented colon:<br />
<br />
class Ninja<br />
: public WeaponWeilder, public Camouflagible, public Assassinatable,<br />
public ShapeShiftable<br />
{<br />
Ninja()<br />
: WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
=== Inline methods ===<br />
<br />
If the method in question fits on one line and is branch free, do a one liner:<br />
<br />
class Eater<br />
{<br />
void eat(Eaten &other) { other.setConsumed(); }<br />
};<br />
<br />
If it's too long, put the type, declarator including formals (unless they overflow), and left brace all on the first line:<br />
<br />
class Eater<br />
{<br />
Food* obtainFoodFromEatery(Eatery &eatery) {<br />
if (!eatery.hasFood()) {<br />
return nullptr;<br />
}<br />
return eatery.purchaseFood();<br />
}<br />
};<br />
<br />
For out-of-line inlines (when the definitions are too unwieldy to place in the class definition) use the inline keyword as an indicator that there's an out-of-line inline definition:<br />
<br />
class SpaceGoo<br />
{<br />
inline BlobbyWrapper* enblob(Entity &other);<br />
};<br />
<br />
inline BlobbyWrapper*<br />
SpaceGoo::enblob(Entity &other)<br />
{<br />
/* ... */<br />
}<br />
<br />
== References ==<br />
<br />
* [https://developer.mozilla.org/en/Mozilla_Coding_Style_Guide Mozilla's coding style guide].<br />
* [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ coding style guide].<br />
<br />
= Exceptions to this coding style =<br />
<br />
SpiderMonkey contains some code imported from other projects, e.g. ctypes/libffi/, that is minimally modified. Such code does not have to follow SpiderMonkey style.</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:Coding_Style&diff=1200940JavaScript:SpiderMonkey:Coding Style2018-09-12T06:24:22Z<p>Jandem: more braces fixes</p>
<hr />
<div>= Code Organization =<br />
<br />
See [[JavaScript:SpiderMonkey:Directories]].<br />
<br />
= Functions =<br />
<br />
* Public function names begin with JS_ followed by capitalized "intercaps", e.g. JS_NewObject.<br />
* Extern but library-private function names use a js_ prefix and mixed case, e.g. js_SearchScope.<br />
* Most static function names have unprefixed, mixed-case names: GetChar.<br />
* But static native methods of JS objects have lowercase, underscore-separated or intercaps names, e.g., str_indexOf.<br />
* Function return types are on a separate line preceding the function name.<br />
* Function braces go on the line following the function name.<br />
void DoThis() /* bad */<br />
{<br />
...<br />
}<br />
void<br />
DoThis() /* OK */<br />
{<br />
...<br />
}<br />
<br />
= Other Symbols =<br />
<br />
* Library-private and static data use underscores, not intercaps (but library-private data do use a js_ prefix).<br />
* Scalar type names are lowercase and js-prefixed: jsdouble.<br />
* Aggregate type names are JS-prefixed and mixed-case: JSObject.<br />
* Macros are generally ALL_CAPS and underscored, to call out potential side effects, multiple uses of a formal argument, etc. Line continuation characters should all line up, in column 79 if that exceeds the width of all the macro text. Macro parameters should be of the form name_ (instead of something like __name).<br />
<br />
= Indentation =<br />
<br />
* Use spaces, not tabs. There should be no tabs in source files.<br />
* Four spaces of indentation per statement nesting level.<br />
* "<code>case L:</code>" labels in <code>switch</code> statements count as half of a nesting level, so indent two spaces, with the labeled statements indenting two more for a standard four spaces indentation from <code>switch</code> to a case-controlled statement.<br />
switch (discriminant) {<br />
case L1:<br />
DoSomething();<br />
. . .<br />
}<br />
* Function arguments that overflow the first line of the call expression should be aligned to underhang the first argument (to start in overflow lines in the column after the opening parenthesis).<br />
JS_SetContext(rt, /* bad */<br />
cx);<br />
JS_SetContext(rt, /* OK */<br />
cx);<br />
<br />
= Whitespace in declarations =<br />
<br />
These rules are inconsistently applied. Be consistent with the code you're editing rather than adhere too closely to these guidelines!<br />
<br />
* In a declaration of a pointer, the <code>*</code> goes with the type:<br />
char *s; /* bad */<br />
char* s; /* OK */<br />
* In C++ method declarations with default arguments, use spaces and comments like so:<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue = 0);<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue /* = 0 */)<br />
{<br />
/* ... */<br />
}<br />
<br />
= Other whitespace =<br />
<br />
* Code should fit within 99 columns; comments should fit within 80 columns; both figures include indentation. Break down lines that are too long by splitting after a binary operator.<br />
* Exception: in a <code>switch</code> statement where each case is a trivially-short statement, it's ok to put the <code>case</code>, the statement, and the <code>break;</code> all on one line.<br />
* Comment <code>/* FALL THROUGH */</code> in place of missing <code>break</code> when intentionally falling through from one case-controlled statement sequence into another, or into the <code>default</code> statements.<br />
* Do not use spaces between a function name and its arguments list, or between an array name and the square bracket. Also, do no use spaces after a bracket. Use a space after a comma to separate arguments.<br />
JS_SetContext ( rt, cx ); /* bad */<br />
JS_SetContext(rt, cx); /* OK */<br />
* Use a space between a C keyword and parentheses.<br />
if(condition) { /* bad */<br />
if (condition) { /* OK */<br />
* Always use braces for conditionals, even if the condition and consequent occupy single lines.<br />
<br />
if (!foo) {<br />
return false;<br />
}<br />
if (canSwingFromWeb) {<br />
p->swingFromWeb();<br />
} else {<br />
MOZ_ASSERT(p->isSpiderPig());<br />
p->doWhateverSpiderPigDoes();<br />
}<br />
if (apingOtherMonkey) {<br />
MOZ_ASSERT(monkey->wantsAttention(),<br />
"why else would he be aping another monkey?");<br />
}<br />
if (hungryForBananas && // and a comment makes the line long enough for a linebreak<br />
wantsAttentionInTheWorstWay)<br />
{<br />
p->eatBananasAndPreen();<br />
}<br />
* Conditions with multi-line tests should put the brace on the new line to provide a visual separation between the condition and the body.<br />
<br />
types::TypeSet* types = frame.extra(lhs).types;<br />
if (JSOp(*PC) == JSOP_SETPROP && id == types::MakeTypeId(cx, id) &&<br />
types && !types->unknownObject() &&<br />
types->getObjectCount() == 1 &&<br />
types->getTypeObject(0) != NULL &&<br />
!types->getTypeObject(0)->unknownProperties())<br />
{<br />
JS_ASSERT(usePropCache);<br />
types::TypeObject* object = types->getTypeObject(0);<br />
types::TypeSet* propertyTypes = object->getProperty(cx, id, false);<br />
...<br />
} else {<br />
...<br />
}<br />
However, if there is already a visual separation between the condition and the body, putting the { on a new line isn't necessary:<br />
<br />
if (forHead->pn_kid1 && NewSrcNote2(cx, cg, SRC_DECL,<br />
(forHead->pn_kid1->isOp(JSOP_DEFVAR))<br />
? SRC_DECL_VAR<br />
: SRC_DECL_LET) < 0) {<br />
return false;<br />
}<br />
* <code>for</code> loop heads go on one line where possible; when not possible, initializer part, update, and termination parts each go on separate lines<br />
for (int i = 0;<br />
i < 5;<br />
i++) { /* bad, could all fit on one line */<br />
doStuff();<br />
}<br />
for (int i = 0; i < 5; i++) { /* OK */<br />
doStuff();<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS; ind++) { /* bad */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS;<br />
ind++) { /* OK */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
* In comments, use one space, not two, between sentences and after a colon.<br />
<br />
= Control Flow =<br />
<br />
* Minimize indentation using return, break, and continue where appropriate. Prefer return (break, continue) statements to cast out abnormal cases, instead of nesting "if/else" statements and indenting the common cases.<br />
void<br />
MyFunction(int n)<br />
{<br />
if (n) { /* bad */<br />
...<br />
}<br />
}<br />
void<br />
MyFunction(int n)<br />
{<br />
if (!n) {<br />
return; /* OK */<br />
}<br />
...<br />
}<br />
<br />
* If an "if" statement controls a "then" clause ending in a return statement, do not use "else" after return.<br />
if (condition) { /* bad */<br />
DoThis();<br />
return;<br />
} else {<br />
DoThat();<br />
}<br />
<br />
if (condition) { /* OK */<br />
DoThis();<br />
return;<br />
}<br />
DoThat();<br />
<br />
* Avoid similar arbitrary patterns and non-sequiturs:<br />
if (condition) { /* bad */<br />
DoThis();<br />
DoThat();<br />
} else {<br />
CleanUp();<br />
return;<br />
}<br />
DoTheOther();<br />
if (!condition) { /* OK */<br />
CleanUp();<br />
return;<br />
}<br />
DoThis();<br />
DoThat();<br />
DoTheOther();<br />
<br />
* Avoid using && or || to mix deciding-whether-to-do-something with error-checking.<br />
<br />
if (obj->hasProblems() && !obj->rectify()) { /* bad */<br />
return false;<br />
}<br />
<br />
if (obj->hasProblems()) { /* OK */<br />
if (!obj->rectify()) {<br />
return false;<br />
}<br />
}<br />
<br />
= Comments =<br />
<br />
* In C files, always use C style comments. C++ comments are ok otherwise.<br />
* Terminate a comment with a period (so try to make comments be complete sentences).<br />
/* This is a good comment. */<br />
// This is also a good comment.<br />
* For C-style multiline comments, align with any indentation, and start every line with an asterisk. Asterisks stack in the same column. Precede the multiline comment with one empty line unless the prior line ends in a left brace. The first line of the comment contains only leading space followed by <code>/*</code>. Multiline comments should also be bracketed.<br />
<pre><br />
if (condition) {<br />
/*<br />
* This is a lengthy C-style<br />
* multiline comment.<br />
*/<br />
// This is a length<br />
// C++-style comment<br />
DoYourStuff();<br />
}<br />
</pre><br />
<br />
= Entry Points and Callbacks =<br />
<br />
* DLL entry points have their return type expanded within a JS_PUBLIC_API() macro call, to get the right Windows secret type qualifiers in the right places for all build variants.<br />
* Callback functions that might be called from a DLL are similarly macroized with JS_STATIC_DLL_CALLBACK (if the function otherwise would be static to hide its name) or JS_DLL_CALLBACK (this macro takes no type argument; it should be used after the return type and before the function name).<br />
<br />
= Data Types and Alignments =<br />
<br />
* As with all Mozilla code, SpiderMonkey needs to compile and execute correctly on many platforms, including 64-bits systems.<br />
* JS and NSPR have common roots in the dawn of time (Netscape 2), and the <code>JS_THREADSAFE</code> mode of building SpiderMonkey depends on NSPR, so reading the [http://www.mozilla.org/projects/nspr/reference/html/ NSPR documentation] is well worth your while.<br />
* Not all 64-bit systems use the same integer type model: some are "LP64" (long and pointer are 64 bits, int is 32 bits), while others are "LLP64" (only long long and pointer are 64 bits; long and int are 32 bits).<br />
* Use size_t for unsigned number of bytes variables, ptrdiff_t for signed pointer subtraction results. In particular, do not use uintN, which is just shorthand for unsigned int, and so may not be big enough.<br />
<br />
= Header files =<br />
<br />
== #ifndef wrappers ==<br />
<br />
Use this exact form for #ifndef wrappers in header files:<br />
<br />
#ifndef <guard><br />
#define <guard><br />
...<br />
#endif // <guard><br />
<br />
GCC and clang recognize this idiom and avoid re-reading headers that use it. Don't put any code before the #ifndef or after the #endif, and don't put anything else in the #ifndef, otherwise the optimization will be thwarted and the file will be multiply-included. (Check with the -H option if you want to be sure.)<br />
<br />
Include guards should be named by determining the fully-qualified include path,<br />
then substituting _ for '/' and '.' and '-' in it. For example, js/src/vm/Stack-inl.h's guard is vm_Stack_inl_h_, and js/public/Vector.h's guard is js_Vector_h (because its include path is js/Vector.h).<br />
<br />
== #include paths ==<br />
<br />
All #include statements should use a fully-qualified (within SpiderMonkey) path, even if it's not necessary. For example, this:<br />
<br />
#include "vm/Stack.h"<br />
<br />
not:<br />
<br />
#include "Stack.h"<br />
<br />
This keeps things consistent and helps with the ordering.<br />
<br />
For headers in js/public/, the prefix is "js/", e.g.:<br />
<br />
#include "js/Vector.h"<br />
<br />
For headers in mfbt/, the prefix is "mozilla/", e.g.:<br />
<br />
#include "mozilla/Assertions.h"<br />
<br />
== #include ordering ==<br />
<br />
The following order is used for module X: <br />
* If X-inl.h exists, it goes first. (And X-inl.h's first #include should be X.h.) Otherwise, X.h goes first. This rule ensures that X.h and X-inl.h both #include all the headers that they need themselves.<br />
* mozilla/*.h<br />
* <*.h><br />
* js*.h<br />
* */*.h (this includes the public JSAPI headers in js/public/*.h which should be included using the form js/*.h)<br />
* js*inlines.h<br />
* */*-inl.h.<br />
<br />
Keep (case-insensitive) lexicographic order with each section.<br />
<br />
The presence of conditionally-compiled #include statements complicates thing. If you have a single #include statement within a #if/#ifdef/#ifndef block, placing the block in the appropriate section is straightforward. If you have multiple #include statements within a block, use your judgment as to where the best place for it is.<br />
<br />
Example for X.cpp:<br />
<br />
#include "X.h" // put "X-inl.h" instead, if it exists<br />
<br />
#include "mozilla/HashFunctions.h"<br />
<br />
#include <string.h><br />
<br />
#include "jsbar.h"<br />
#ifdef BAZ<br />
# include "jsbaz.h"<br />
#endif<br />
#include "jscaz.h"<br />
<br />
#include "ds/Baz.h"<br />
#include "js/Bar.h"<br />
#include "vm/Bat.h"<br />
<br />
#include "jssqueeinlines.h"<br />
#include "jswoot-inl.h"<br />
<br />
#include "frontend/Thingamabob-inl.h"<br />
#include "vm/VirtualReality-inl.h"<br />
<br />
= C++ =<br />
<br />
== Namespaces ==<br />
<br />
* Public functions and types should be in the JS:: namespace, in preference to the old JS/JS_ name prefixes.<br />
* Library-private and friend functions should be in the js:: namespace, in preference to the old js_ name prefix.<br />
* Compile-time-evaluated functions (i.e., template meta-functions) should be in 'js::tl::', the "template library" namespace, to avoid collision with their runtime counterparts.<br />
* In SpiderMonkey .cpp files, it is okay to have 'using namespace js;', but it is not okay to do the same with any other namespace, like JS:: or mozilla::. These can introduce ambiguities that come and go depending on which .cpp files the build system decides to unify.<br />
* If you do have names in JS:: that should be readily available throughout SpiderMonkey, you may add a 'using' declaration to js/src/NamespaceImports.h.<br />
* Avoid unnamed namespaces unless they are necessary to give a class's members internal linkage. Although the C++ standard officially deprecates 'static' on functions, 'static' has the following advantages over unnamed namespaces:<br />
** It is difficult to name functions in unnamed namespaces in gdb.<br />
** Static says "this is a translation-unit-local helper function" on the function, without having to look around for an enclosing "namespace {".<br />
<br />
== Enums ==<br />
<br />
Older code uses SHOUT_REALLY_LOUD for enum values, newer code uses InterCaps. Enums should be preferred to boolean arguments for ease of understanding at the invocation site.<br />
<br />
== Classes ==<br />
<br />
* For reasonable-sized classes, put all the fields together, at the top, immediately after any necessary typedefs. For unreasonably large classes, do whatever seems best (but let's try to avoid making more of these).<br />
* Align the braces of a class/struct/enum definition like this:<br />
class JSObject<br />
{<br />
...<br />
};<br />
* Member variable names, private or public, should be decorated with a trailing '_'.<br />
class Fail<br />
{<br />
size_t capacity; // common<br />
T* begin_; // better, gravitate toward this<br />
};<br />
Sometimes a canonical argument name may conflict with a member name. In this case, one can disambiguate with "this->", although such explicit qualification should only be added when necessary:<br />
class C<br />
{<br />
public:<br />
size_t count;<br />
bool fresh;<br />
void change(size_t count) {<br />
this->count = count;<br />
this->fresh = false; // verbose and unnecessary<br />
}<br />
};<br />
* Prefer inline functions to macros.<br />
* We build with C++ exceptions disabled, so most of the <code>std</code> namespace is off-limits, including STL containers. The exception is <code>&lt;algorithm&gt;</code>, which is mostly OK to use. You can use MFBT. We have some STL-like containers that are used basically everywhere (see js::Vector, js::HashMap, etc.)<br />
<br />
=== Initializer lists ===<br />
<br />
Initializer lists can break in one of two ways. The first may be preferable when constructors take few arguments:<br />
<br />
class Ninja : public WeaponWeilder, public Camouflagible,<br />
public Assassinatable, public ShapeShiftable<br />
{<br />
Ninja() : WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
The other permitted style mitigates longer-identifiers-squishing-text-against-the-right-side-of-the-screen-syndrome by using a half-indented colon:<br />
<br />
class Ninja<br />
: public WeaponWeilder, public Camouflagible, public Assassinatable,<br />
public ShapeShiftable<br />
{<br />
Ninja()<br />
: WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
=== Inline methods ===<br />
<br />
If the method in question fits on one line and is branch free, do a one liner:<br />
<br />
class Eater<br />
{<br />
void eat(Eaten &other) { other.setConsumed(); }<br />
};<br />
<br />
If it's too long, put the type, declarator including formals (unless they overflow), and left brace all on the first line:<br />
<br />
class Eater<br />
{<br />
Food* obtainFoodFromEatery(Eatery &eatery) {<br />
if (!eatery.hasFood()) {<br />
return nullptr;<br />
}<br />
return eatery.purchaseFood();<br />
}<br />
};<br />
<br />
For out-of-line inlines (when the definitions are too unwieldy to place in the class definition) use the inline keyword as an indicator that there's an out-of-line inline definition:<br />
<br />
class SpaceGoo<br />
{<br />
inline BlobbyWrapper* enblob(Entity &other);<br />
};<br />
<br />
inline BlobbyWrapper*<br />
SpaceGoo::enblob(Entity &other)<br />
{<br />
/* ... */<br />
}<br />
<br />
== References ==<br />
<br />
* [https://developer.mozilla.org/en/Mozilla_Coding_Style_Guide Mozilla's coding style guide].<br />
* [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ coding style guide].<br />
<br />
= Exceptions to this coding style =<br />
<br />
SpiderMonkey contains some code imported from other projects, e.g. ctypes/libffi/, that is minimally modified. Such code does not have to follow SpiderMonkey style.</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:Coding_Style&diff=1200939JavaScript:SpiderMonkey:Coding Style2018-09-12T06:23:48Z<p>Jandem: more brace style fixes</p>
<hr />
<div>= Code Organization =<br />
<br />
See [[JavaScript:SpiderMonkey:Directories]].<br />
<br />
= Functions =<br />
<br />
* Public function names begin with JS_ followed by capitalized "intercaps", e.g. JS_NewObject.<br />
* Extern but library-private function names use a js_ prefix and mixed case, e.g. js_SearchScope.<br />
* Most static function names have unprefixed, mixed-case names: GetChar.<br />
* But static native methods of JS objects have lowercase, underscore-separated or intercaps names, e.g., str_indexOf.<br />
* Function return types are on a separate line preceding the function name.<br />
* Function braces go on the line following the function name.<br />
void DoThis() /* bad */<br />
{<br />
...<br />
}<br />
void<br />
DoThis() /* OK */<br />
{<br />
...<br />
}<br />
<br />
= Other Symbols =<br />
<br />
* Library-private and static data use underscores, not intercaps (but library-private data do use a js_ prefix).<br />
* Scalar type names are lowercase and js-prefixed: jsdouble.<br />
* Aggregate type names are JS-prefixed and mixed-case: JSObject.<br />
* Macros are generally ALL_CAPS and underscored, to call out potential side effects, multiple uses of a formal argument, etc. Line continuation characters should all line up, in column 79 if that exceeds the width of all the macro text. Macro parameters should be of the form name_ (instead of something like __name).<br />
<br />
= Indentation =<br />
<br />
* Use spaces, not tabs. There should be no tabs in source files.<br />
* Four spaces of indentation per statement nesting level.<br />
* "<code>case L:</code>" labels in <code>switch</code> statements count as half of a nesting level, so indent two spaces, with the labeled statements indenting two more for a standard four spaces indentation from <code>switch</code> to a case-controlled statement.<br />
switch (discriminant) {<br />
case L1:<br />
DoSomething();<br />
. . .<br />
}<br />
* Function arguments that overflow the first line of the call expression should be aligned to underhang the first argument (to start in overflow lines in the column after the opening parenthesis).<br />
JS_SetContext(rt, /* bad */<br />
cx);<br />
JS_SetContext(rt, /* OK */<br />
cx);<br />
<br />
= Whitespace in declarations =<br />
<br />
These rules are inconsistently applied. Be consistent with the code you're editing rather than adhere too closely to these guidelines!<br />
<br />
* In a declaration of a pointer, the <code>*</code> goes with the type:<br />
char *s; /* bad */<br />
char* s; /* OK */<br />
* In C++ method declarations with default arguments, use spaces and comments like so:<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue = 0);<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue /* = 0 */)<br />
{<br />
/* ... */<br />
}<br />
<br />
= Other whitespace =<br />
<br />
* Code should fit within 99 columns; comments should fit within 80 columns; both figures include indentation. Break down lines that are too long by splitting after a binary operator.<br />
* Exception: in a <code>switch</code> statement where each case is a trivially-short statement, it's ok to put the <code>case</code>, the statement, and the <code>break;</code> all on one line.<br />
* Comment <code>/* FALL THROUGH */</code> in place of missing <code>break</code> when intentionally falling through from one case-controlled statement sequence into another, or into the <code>default</code> statements.<br />
* Do not use spaces between a function name and its arguments list, or between an array name and the square bracket. Also, do no use spaces after a bracket. Use a space after a comma to separate arguments.<br />
JS_SetContext ( rt, cx ); /* bad */<br />
JS_SetContext(rt, cx); /* OK */<br />
* Use a space between a C keyword and parentheses.<br />
if(condition) /* bad */<br />
if (condition) /* OK */<br />
* Always use braces for conditionals, even if the condition and consequent occupy single lines.<br />
<br />
if (!foo) {<br />
return false;<br />
}<br />
if (canSwingFromWeb) {<br />
p->swingFromWeb();<br />
} else {<br />
MOZ_ASSERT(p->isSpiderPig());<br />
p->doWhateverSpiderPigDoes();<br />
}<br />
if (apingOtherMonkey) {<br />
MOZ_ASSERT(monkey->wantsAttention(),<br />
"why else would he be aping another monkey?");<br />
}<br />
if (hungryForBananas && // and a comment makes the line long enough for a linebreak<br />
wantsAttentionInTheWorstWay)<br />
{<br />
p->eatBananasAndPreen();<br />
}<br />
* Conditions with multi-line tests should put the brace on the new line to provide a visual separation between the condition and the body.<br />
<br />
types::TypeSet* types = frame.extra(lhs).types;<br />
if (JSOp(*PC) == JSOP_SETPROP && id == types::MakeTypeId(cx, id) &&<br />
types && !types->unknownObject() &&<br />
types->getObjectCount() == 1 &&<br />
types->getTypeObject(0) != NULL &&<br />
!types->getTypeObject(0)->unknownProperties())<br />
{<br />
JS_ASSERT(usePropCache);<br />
types::TypeObject* object = types->getTypeObject(0);<br />
types::TypeSet* propertyTypes = object->getProperty(cx, id, false);<br />
...<br />
} else {<br />
...<br />
}<br />
However, if there is already a visual separation between the condition and the body, putting the { on a new line isn't necessary:<br />
<br />
if (forHead->pn_kid1 && NewSrcNote2(cx, cg, SRC_DECL,<br />
(forHead->pn_kid1->isOp(JSOP_DEFVAR))<br />
? SRC_DECL_VAR<br />
: SRC_DECL_LET) < 0) {<br />
return false;<br />
}<br />
* <code>for</code> loop heads go on one line where possible; when not possible, initializer part, update, and termination parts each go on separate lines<br />
for (int i = 0;<br />
i < 5;<br />
i++) { /* bad, could all fit on one line */<br />
doStuff();<br />
}<br />
for (int i = 0; i < 5; i++) { /* OK */<br />
doStuff();<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS; ind++) { /* bad */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS;<br />
ind++) { /* OK */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
* In comments, use one space, not two, between sentences and after a colon.<br />
<br />
= Control Flow =<br />
<br />
* Minimize indentation using return, break, and continue where appropriate. Prefer return (break, continue) statements to cast out abnormal cases, instead of nesting "if/else" statements and indenting the common cases.<br />
void<br />
MyFunction(int n)<br />
{<br />
if (n) { /* bad */<br />
...<br />
}<br />
}<br />
void<br />
MyFunction(int n)<br />
{<br />
if (!n) {<br />
return; /* OK */<br />
}<br />
...<br />
}<br />
<br />
* If an "if" statement controls a "then" clause ending in a return statement, do not use "else" after return.<br />
if (condition) { /* bad */<br />
DoThis();<br />
return;<br />
} else {<br />
DoThat();<br />
}<br />
<br />
if (condition) { /* OK */<br />
DoThis();<br />
return;<br />
}<br />
DoThat();<br />
<br />
* Avoid similar arbitrary patterns and non-sequiturs:<br />
if (condition) { /* bad */<br />
DoThis();<br />
DoThat();<br />
} else {<br />
CleanUp();<br />
return;<br />
}<br />
DoTheOther();<br />
if (!condition) { /* OK */<br />
CleanUp();<br />
return;<br />
}<br />
DoThis();<br />
DoThat();<br />
DoTheOther();<br />
<br />
* Avoid using && or || to mix deciding-whether-to-do-something with error-checking.<br />
<br />
if (obj->hasProblems() && !obj->rectify()) { /* bad */<br />
return false;<br />
}<br />
<br />
if (obj->hasProblems()) { /* OK */<br />
if (!obj->rectify()) {<br />
return false;<br />
}<br />
}<br />
<br />
= Comments =<br />
<br />
* In C files, always use C style comments. C++ comments are ok otherwise.<br />
* Terminate a comment with a period (so try to make comments be complete sentences).<br />
/* This is a good comment. */<br />
// This is also a good comment.<br />
* For C-style multiline comments, align with any indentation, and start every line with an asterisk. Asterisks stack in the same column. Precede the multiline comment with one empty line unless the prior line ends in a left brace. The first line of the comment contains only leading space followed by <code>/*</code>. Multiline comments should also be bracketed.<br />
<pre><br />
if (condition) {<br />
/*<br />
* This is a lengthy C-style<br />
* multiline comment.<br />
*/<br />
// This is a length<br />
// C++-style comment<br />
DoYourStuff();<br />
}<br />
</pre><br />
<br />
= Entry Points and Callbacks =<br />
<br />
* DLL entry points have their return type expanded within a JS_PUBLIC_API() macro call, to get the right Windows secret type qualifiers in the right places for all build variants.<br />
* Callback functions that might be called from a DLL are similarly macroized with JS_STATIC_DLL_CALLBACK (if the function otherwise would be static to hide its name) or JS_DLL_CALLBACK (this macro takes no type argument; it should be used after the return type and before the function name).<br />
<br />
= Data Types and Alignments =<br />
<br />
* As with all Mozilla code, SpiderMonkey needs to compile and execute correctly on many platforms, including 64-bits systems.<br />
* JS and NSPR have common roots in the dawn of time (Netscape 2), and the <code>JS_THREADSAFE</code> mode of building SpiderMonkey depends on NSPR, so reading the [http://www.mozilla.org/projects/nspr/reference/html/ NSPR documentation] is well worth your while.<br />
* Not all 64-bit systems use the same integer type model: some are "LP64" (long and pointer are 64 bits, int is 32 bits), while others are "LLP64" (only long long and pointer are 64 bits; long and int are 32 bits).<br />
* Use size_t for unsigned number of bytes variables, ptrdiff_t for signed pointer subtraction results. In particular, do not use uintN, which is just shorthand for unsigned int, and so may not be big enough.<br />
<br />
= Header files =<br />
<br />
== #ifndef wrappers ==<br />
<br />
Use this exact form for #ifndef wrappers in header files:<br />
<br />
#ifndef <guard><br />
#define <guard><br />
...<br />
#endif // <guard><br />
<br />
GCC and clang recognize this idiom and avoid re-reading headers that use it. Don't put any code before the #ifndef or after the #endif, and don't put anything else in the #ifndef, otherwise the optimization will be thwarted and the file will be multiply-included. (Check with the -H option if you want to be sure.)<br />
<br />
Include guards should be named by determining the fully-qualified include path,<br />
then substituting _ for '/' and '.' and '-' in it. For example, js/src/vm/Stack-inl.h's guard is vm_Stack_inl_h_, and js/public/Vector.h's guard is js_Vector_h (because its include path is js/Vector.h).<br />
<br />
== #include paths ==<br />
<br />
All #include statements should use a fully-qualified (within SpiderMonkey) path, even if it's not necessary. For example, this:<br />
<br />
#include "vm/Stack.h"<br />
<br />
not:<br />
<br />
#include "Stack.h"<br />
<br />
This keeps things consistent and helps with the ordering.<br />
<br />
For headers in js/public/, the prefix is "js/", e.g.:<br />
<br />
#include "js/Vector.h"<br />
<br />
For headers in mfbt/, the prefix is "mozilla/", e.g.:<br />
<br />
#include "mozilla/Assertions.h"<br />
<br />
== #include ordering ==<br />
<br />
The following order is used for module X: <br />
* If X-inl.h exists, it goes first. (And X-inl.h's first #include should be X.h.) Otherwise, X.h goes first. This rule ensures that X.h and X-inl.h both #include all the headers that they need themselves.<br />
* mozilla/*.h<br />
* <*.h><br />
* js*.h<br />
* */*.h (this includes the public JSAPI headers in js/public/*.h which should be included using the form js/*.h)<br />
* js*inlines.h<br />
* */*-inl.h.<br />
<br />
Keep (case-insensitive) lexicographic order with each section.<br />
<br />
The presence of conditionally-compiled #include statements complicates thing. If you have a single #include statement within a #if/#ifdef/#ifndef block, placing the block in the appropriate section is straightforward. If you have multiple #include statements within a block, use your judgment as to where the best place for it is.<br />
<br />
Example for X.cpp:<br />
<br />
#include "X.h" // put "X-inl.h" instead, if it exists<br />
<br />
#include "mozilla/HashFunctions.h"<br />
<br />
#include <string.h><br />
<br />
#include "jsbar.h"<br />
#ifdef BAZ<br />
# include "jsbaz.h"<br />
#endif<br />
#include "jscaz.h"<br />
<br />
#include "ds/Baz.h"<br />
#include "js/Bar.h"<br />
#include "vm/Bat.h"<br />
<br />
#include "jssqueeinlines.h"<br />
#include "jswoot-inl.h"<br />
<br />
#include "frontend/Thingamabob-inl.h"<br />
#include "vm/VirtualReality-inl.h"<br />
<br />
= C++ =<br />
<br />
== Namespaces ==<br />
<br />
* Public functions and types should be in the JS:: namespace, in preference to the old JS/JS_ name prefixes.<br />
* Library-private and friend functions should be in the js:: namespace, in preference to the old js_ name prefix.<br />
* Compile-time-evaluated functions (i.e., template meta-functions) should be in 'js::tl::', the "template library" namespace, to avoid collision with their runtime counterparts.<br />
* In SpiderMonkey .cpp files, it is okay to have 'using namespace js;', but it is not okay to do the same with any other namespace, like JS:: or mozilla::. These can introduce ambiguities that come and go depending on which .cpp files the build system decides to unify.<br />
* If you do have names in JS:: that should be readily available throughout SpiderMonkey, you may add a 'using' declaration to js/src/NamespaceImports.h.<br />
* Avoid unnamed namespaces unless they are necessary to give a class's members internal linkage. Although the C++ standard officially deprecates 'static' on functions, 'static' has the following advantages over unnamed namespaces:<br />
** It is difficult to name functions in unnamed namespaces in gdb.<br />
** Static says "this is a translation-unit-local helper function" on the function, without having to look around for an enclosing "namespace {".<br />
<br />
== Enums ==<br />
<br />
Older code uses SHOUT_REALLY_LOUD for enum values, newer code uses InterCaps. Enums should be preferred to boolean arguments for ease of understanding at the invocation site.<br />
<br />
== Classes ==<br />
<br />
* For reasonable-sized classes, put all the fields together, at the top, immediately after any necessary typedefs. For unreasonably large classes, do whatever seems best (but let's try to avoid making more of these).<br />
* Align the braces of a class/struct/enum definition like this:<br />
class JSObject<br />
{<br />
...<br />
};<br />
* Member variable names, private or public, should be decorated with a trailing '_'.<br />
class Fail<br />
{<br />
size_t capacity; // common<br />
T* begin_; // better, gravitate toward this<br />
};<br />
Sometimes a canonical argument name may conflict with a member name. In this case, one can disambiguate with "this->", although such explicit qualification should only be added when necessary:<br />
class C<br />
{<br />
public:<br />
size_t count;<br />
bool fresh;<br />
void change(size_t count) {<br />
this->count = count;<br />
this->fresh = false; // verbose and unnecessary<br />
}<br />
};<br />
* Prefer inline functions to macros.<br />
* We build with C++ exceptions disabled, so most of the <code>std</code> namespace is off-limits, including STL containers. The exception is <code>&lt;algorithm&gt;</code>, which is mostly OK to use. You can use MFBT. We have some STL-like containers that are used basically everywhere (see js::Vector, js::HashMap, etc.)<br />
<br />
=== Initializer lists ===<br />
<br />
Initializer lists can break in one of two ways. The first may be preferable when constructors take few arguments:<br />
<br />
class Ninja : public WeaponWeilder, public Camouflagible,<br />
public Assassinatable, public ShapeShiftable<br />
{<br />
Ninja() : WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
The other permitted style mitigates longer-identifiers-squishing-text-against-the-right-side-of-the-screen-syndrome by using a half-indented colon:<br />
<br />
class Ninja<br />
: public WeaponWeilder, public Camouflagible, public Assassinatable,<br />
public ShapeShiftable<br />
{<br />
Ninja()<br />
: WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
=== Inline methods ===<br />
<br />
If the method in question fits on one line and is branch free, do a one liner:<br />
<br />
class Eater<br />
{<br />
void eat(Eaten &other) { other.setConsumed(); }<br />
};<br />
<br />
If it's too long, put the type, declarator including formals (unless they overflow), and left brace all on the first line:<br />
<br />
class Eater<br />
{<br />
Food* obtainFoodFromEatery(Eatery &eatery) {<br />
if (!eatery.hasFood()) {<br />
return nullptr;<br />
}<br />
return eatery.purchaseFood();<br />
}<br />
};<br />
<br />
For out-of-line inlines (when the definitions are too unwieldy to place in the class definition) use the inline keyword as an indicator that there's an out-of-line inline definition:<br />
<br />
class SpaceGoo<br />
{<br />
inline BlobbyWrapper* enblob(Entity &other);<br />
};<br />
<br />
inline BlobbyWrapper*<br />
SpaceGoo::enblob(Entity &other)<br />
{<br />
/* ... */<br />
}<br />
<br />
== References ==<br />
<br />
* [https://developer.mozilla.org/en/Mozilla_Coding_Style_Guide Mozilla's coding style guide].<br />
* [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ coding style guide].<br />
<br />
= Exceptions to this coding style =<br />
<br />
SpiderMonkey contains some code imported from other projects, e.g. ctypes/libffi/, that is minimally modified. Such code does not have to follow SpiderMonkey style.</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:Coding_Style&diff=1200938JavaScript:SpiderMonkey:Coding Style2018-09-12T06:21:35Z<p>Jandem: Update braces style per bug 1488698</p>
<hr />
<div>= Code Organization =<br />
<br />
See [[JavaScript:SpiderMonkey:Directories]].<br />
<br />
= Functions =<br />
<br />
* Public function names begin with JS_ followed by capitalized "intercaps", e.g. JS_NewObject.<br />
* Extern but library-private function names use a js_ prefix and mixed case, e.g. js_SearchScope.<br />
* Most static function names have unprefixed, mixed-case names: GetChar.<br />
* But static native methods of JS objects have lowercase, underscore-separated or intercaps names, e.g., str_indexOf.<br />
* Function return types are on a separate line preceding the function name.<br />
* Function braces go on the line following the function name.<br />
void DoThis() /* bad */<br />
{<br />
...<br />
}<br />
void<br />
DoThis() /* OK */<br />
{<br />
...<br />
}<br />
<br />
= Other Symbols =<br />
<br />
* Library-private and static data use underscores, not intercaps (but library-private data do use a js_ prefix).<br />
* Scalar type names are lowercase and js-prefixed: jsdouble.<br />
* Aggregate type names are JS-prefixed and mixed-case: JSObject.<br />
* Macros are generally ALL_CAPS and underscored, to call out potential side effects, multiple uses of a formal argument, etc. Line continuation characters should all line up, in column 79 if that exceeds the width of all the macro text. Macro parameters should be of the form name_ (instead of something like __name).<br />
<br />
= Indentation =<br />
<br />
* Use spaces, not tabs. There should be no tabs in source files.<br />
* Four spaces of indentation per statement nesting level.<br />
* "<code>case L:</code>" labels in <code>switch</code> statements count as half of a nesting level, so indent two spaces, with the labeled statements indenting two more for a standard four spaces indentation from <code>switch</code> to a case-controlled statement.<br />
switch (discriminant) {<br />
case L1:<br />
DoSomething();<br />
. . .<br />
}<br />
* Function arguments that overflow the first line of the call expression should be aligned to underhang the first argument (to start in overflow lines in the column after the opening parenthesis).<br />
JS_SetContext(rt, /* bad */<br />
cx);<br />
JS_SetContext(rt, /* OK */<br />
cx);<br />
<br />
= Whitespace in declarations =<br />
<br />
These rules are inconsistently applied. Be consistent with the code you're editing rather than adhere too closely to these guidelines!<br />
<br />
* In a declaration of a pointer, the <code>*</code> goes with the type:<br />
char *s; /* bad */<br />
char* s; /* OK */<br />
* In C++ method declarations with default arguments, use spaces and comments like so:<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue = 0);<br />
static void<br />
Frob(JSContext* cx, uint32_t defaultValue /* = 0 */)<br />
{<br />
/* ... */<br />
}<br />
<br />
= Other whitespace =<br />
<br />
* Code should fit within 99 columns; comments should fit within 80 columns; both figures include indentation. Break down lines that are too long by splitting after a binary operator.<br />
* Exception: in a <code>switch</code> statement where each case is a trivially-short statement, it's ok to put the <code>case</code>, the statement, and the <code>break;</code> all on one line.<br />
* Comment <code>/* FALL THROUGH */</code> in place of missing <code>break</code> when intentionally falling through from one case-controlled statement sequence into another, or into the <code>default</code> statements.<br />
* Do not use spaces between a function name and its arguments list, or between an array name and the square bracket. Also, do no use spaces after a bracket. Use a space after a comma to separate arguments.<br />
JS_SetContext ( rt, cx ); /* bad */<br />
JS_SetContext(rt, cx); /* OK */<br />
* Use a space between a C keyword and parentheses.<br />
if(condition) /* bad */<br />
if (condition) /* OK */<br />
* Always use braces for conditionals, even if the condition and consequent occupy single lines.<br />
<br />
if (!foo) {<br />
return false;<br />
}<br />
<br />
if (canSwingFromWeb) {<br />
p->swingFromWeb();<br />
} else {<br />
MOZ_ASSERT(p->isSpiderPig());<br />
p->doWhateverSpiderPigDoes();<br />
}<br />
if (apingOtherMonkey) {<br />
MOZ_ASSERT(monkey->wantsAttention(),<br />
"why else would he be aping another monkey?");<br />
}<br />
if (hungryForBananas && // and a comment makes the line long enough for a linebreak<br />
wantsAttentionInTheWorstWay)<br />
{<br />
p->eatBananasAndPreen();<br />
}<br />
* Conditions with multi-line tests should put the brace on the new line to provide a visual separation between the condition and the body.<br />
<br />
types::TypeSet* types = frame.extra(lhs).types;<br />
if (JSOp(*PC) == JSOP_SETPROP && id == types::MakeTypeId(cx, id) &&<br />
types && !types->unknownObject() &&<br />
types->getObjectCount() == 1 &&<br />
types->getTypeObject(0) != NULL &&<br />
!types->getTypeObject(0)->unknownProperties())<br />
{<br />
JS_ASSERT(usePropCache);<br />
types::TypeObject* object = types->getTypeObject(0);<br />
types::TypeSet* propertyTypes = object->getProperty(cx, id, false);<br />
...<br />
} else {<br />
...<br />
}<br />
However, if there is already a visual separation between the condition and the body, putting the { on a new line isn't necessary:<br />
<br />
if (forHead->pn_kid1 && NewSrcNote2(cx, cg, SRC_DECL,<br />
(forHead->pn_kid1->isOp(JSOP_DEFVAR))<br />
? SRC_DECL_VAR<br />
: SRC_DECL_LET) < 0) {<br />
return false;<br />
}<br />
* <code>for</code> loop heads go on one line where possible; when not possible, initializer part, update, and termination parts each go on separate lines<br />
for (int i = 0;<br />
i < 5;<br />
i++) { /* bad, could all fit on one line */<br />
doStuff();<br />
}<br />
for (int i = 0; i < 5; i++) { /* OK */<br />
doStuff();<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS; ind++) { /* bad */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
for (size_t ind = JSObject::JSSLOT_DATE_COMPONENTS_START;<br />
ind < JSObject::DATE_FIXED_RESERVED_SLOTS;<br />
ind++) { /* OK */<br />
obj->setSlot(ind, DoubleValue(utcTime));<br />
}<br />
* In comments, use one space, not two, between sentences and after a colon.<br />
<br />
= Control Flow =<br />
<br />
* Minimize indentation using return, break, and continue where appropriate. Prefer return (break, continue) statements to cast out abnormal cases, instead of nesting "if/else" statements and indenting the common cases.<br />
void<br />
MyFunction(int n)<br />
{<br />
if (n) { /* bad */<br />
...<br />
}<br />
}<br />
void<br />
MyFunction(int n)<br />
{<br />
if (!n) {<br />
return; /* OK */<br />
}<br />
...<br />
}<br />
<br />
* If an "if" statement controls a "then" clause ending in a return statement, do not use "else" after return.<br />
if (condition) { /* bad */<br />
DoThis();<br />
return;<br />
} else {<br />
DoThat();<br />
}<br />
<br />
if (condition) { /* OK */<br />
DoThis();<br />
return;<br />
}<br />
DoThat();<br />
<br />
* Avoid similar arbitrary patterns and non-sequiturs:<br />
if (condition) { /* bad */<br />
DoThis();<br />
DoThat();<br />
} else {<br />
CleanUp();<br />
return;<br />
}<br />
DoTheOther();<br />
if (!condition) { /* OK */<br />
CleanUp();<br />
return;<br />
}<br />
DoThis();<br />
DoThat();<br />
DoTheOther();<br />
<br />
* Avoid using && or || to mix deciding-whether-to-do-something with error-checking.<br />
<br />
if (obj->hasProblems() && !obj->rectify()) { /* bad */<br />
return false;<br />
}<br />
<br />
if (obj->hasProblems()) { /* OK */<br />
if (!obj->rectify()) {<br />
return false;<br />
}<br />
}<br />
<br />
= Comments =<br />
<br />
* In C files, always use C style comments. C++ comments are ok otherwise.<br />
* Terminate a comment with a period (so try to make comments be complete sentences).<br />
/* This is a good comment. */<br />
// This is also a good comment.<br />
* For C-style multiline comments, align with any indentation, and start every line with an asterisk. Asterisks stack in the same column. Precede the multiline comment with one empty line unless the prior line ends in a left brace. The first line of the comment contains only leading space followed by <code>/*</code>. Multiline comments should also be bracketed.<br />
<pre><br />
if (condition) {<br />
/*<br />
* This is a lengthy C-style<br />
* multiline comment.<br />
*/<br />
// This is a length<br />
// C++-style comment<br />
DoYourStuff();<br />
}<br />
</pre><br />
<br />
= Entry Points and Callbacks =<br />
<br />
* DLL entry points have their return type expanded within a JS_PUBLIC_API() macro call, to get the right Windows secret type qualifiers in the right places for all build variants.<br />
* Callback functions that might be called from a DLL are similarly macroized with JS_STATIC_DLL_CALLBACK (if the function otherwise would be static to hide its name) or JS_DLL_CALLBACK (this macro takes no type argument; it should be used after the return type and before the function name).<br />
<br />
= Data Types and Alignments =<br />
<br />
* As with all Mozilla code, SpiderMonkey needs to compile and execute correctly on many platforms, including 64-bits systems.<br />
* JS and NSPR have common roots in the dawn of time (Netscape 2), and the <code>JS_THREADSAFE</code> mode of building SpiderMonkey depends on NSPR, so reading the [http://www.mozilla.org/projects/nspr/reference/html/ NSPR documentation] is well worth your while.<br />
* Not all 64-bit systems use the same integer type model: some are "LP64" (long and pointer are 64 bits, int is 32 bits), while others are "LLP64" (only long long and pointer are 64 bits; long and int are 32 bits).<br />
* Use size_t for unsigned number of bytes variables, ptrdiff_t for signed pointer subtraction results. In particular, do not use uintN, which is just shorthand for unsigned int, and so may not be big enough.<br />
<br />
= Header files =<br />
<br />
== #ifndef wrappers ==<br />
<br />
Use this exact form for #ifndef wrappers in header files:<br />
<br />
#ifndef <guard><br />
#define <guard><br />
...<br />
#endif // <guard><br />
<br />
GCC and clang recognize this idiom and avoid re-reading headers that use it. Don't put any code before the #ifndef or after the #endif, and don't put anything else in the #ifndef, otherwise the optimization will be thwarted and the file will be multiply-included. (Check with the -H option if you want to be sure.)<br />
<br />
Include guards should be named by determining the fully-qualified include path,<br />
then substituting _ for '/' and '.' and '-' in it. For example, js/src/vm/Stack-inl.h's guard is vm_Stack_inl_h_, and js/public/Vector.h's guard is js_Vector_h (because its include path is js/Vector.h).<br />
<br />
== #include paths ==<br />
<br />
All #include statements should use a fully-qualified (within SpiderMonkey) path, even if it's not necessary. For example, this:<br />
<br />
#include "vm/Stack.h"<br />
<br />
not:<br />
<br />
#include "Stack.h"<br />
<br />
This keeps things consistent and helps with the ordering.<br />
<br />
For headers in js/public/, the prefix is "js/", e.g.:<br />
<br />
#include "js/Vector.h"<br />
<br />
For headers in mfbt/, the prefix is "mozilla/", e.g.:<br />
<br />
#include "mozilla/Assertions.h"<br />
<br />
== #include ordering ==<br />
<br />
The following order is used for module X: <br />
* If X-inl.h exists, it goes first. (And X-inl.h's first #include should be X.h.) Otherwise, X.h goes first. This rule ensures that X.h and X-inl.h both #include all the headers that they need themselves.<br />
* mozilla/*.h<br />
* <*.h><br />
* js*.h<br />
* */*.h (this includes the public JSAPI headers in js/public/*.h which should be included using the form js/*.h)<br />
* js*inlines.h<br />
* */*-inl.h.<br />
<br />
Keep (case-insensitive) lexicographic order with each section.<br />
<br />
The presence of conditionally-compiled #include statements complicates thing. If you have a single #include statement within a #if/#ifdef/#ifndef block, placing the block in the appropriate section is straightforward. If you have multiple #include statements within a block, use your judgment as to where the best place for it is.<br />
<br />
Example for X.cpp:<br />
<br />
#include "X.h" // put "X-inl.h" instead, if it exists<br />
<br />
#include "mozilla/HashFunctions.h"<br />
<br />
#include <string.h><br />
<br />
#include "jsbar.h"<br />
#ifdef BAZ<br />
# include "jsbaz.h"<br />
#endif<br />
#include "jscaz.h"<br />
<br />
#include "ds/Baz.h"<br />
#include "js/Bar.h"<br />
#include "vm/Bat.h"<br />
<br />
#include "jssqueeinlines.h"<br />
#include "jswoot-inl.h"<br />
<br />
#include "frontend/Thingamabob-inl.h"<br />
#include "vm/VirtualReality-inl.h"<br />
<br />
= C++ =<br />
<br />
== Namespaces ==<br />
<br />
* Public functions and types should be in the JS:: namespace, in preference to the old JS/JS_ name prefixes.<br />
* Library-private and friend functions should be in the js:: namespace, in preference to the old js_ name prefix.<br />
* Compile-time-evaluated functions (i.e., template meta-functions) should be in 'js::tl::', the "template library" namespace, to avoid collision with their runtime counterparts.<br />
* In SpiderMonkey .cpp files, it is okay to have 'using namespace js;', but it is not okay to do the same with any other namespace, like JS:: or mozilla::. These can introduce ambiguities that come and go depending on which .cpp files the build system decides to unify.<br />
* If you do have names in JS:: that should be readily available throughout SpiderMonkey, you may add a 'using' declaration to js/src/NamespaceImports.h.<br />
* Avoid unnamed namespaces unless they are necessary to give a class's members internal linkage. Although the C++ standard officially deprecates 'static' on functions, 'static' has the following advantages over unnamed namespaces:<br />
** It is difficult to name functions in unnamed namespaces in gdb.<br />
** Static says "this is a translation-unit-local helper function" on the function, without having to look around for an enclosing "namespace {".<br />
<br />
== Enums ==<br />
<br />
Older code uses SHOUT_REALLY_LOUD for enum values, newer code uses InterCaps. Enums should be preferred to boolean arguments for ease of understanding at the invocation site.<br />
<br />
== Classes ==<br />
<br />
* For reasonable-sized classes, put all the fields together, at the top, immediately after any necessary typedefs. For unreasonably large classes, do whatever seems best (but let's try to avoid making more of these).<br />
* Align the braces of a class/struct/enum definition like this:<br />
class JSObject<br />
{<br />
...<br />
};<br />
* Member variable names, private or public, should be decorated with a trailing '_'.<br />
class Fail<br />
{<br />
size_t capacity; // common<br />
T* begin_; // better, gravitate toward this<br />
};<br />
Sometimes a canonical argument name may conflict with a member name. In this case, one can disambiguate with "this->", although such explicit qualification should only be added when necessary:<br />
class C<br />
{<br />
public:<br />
size_t count;<br />
bool fresh;<br />
void change(size_t count) {<br />
this->count = count;<br />
this->fresh = false; // verbose and unnecessary<br />
}<br />
};<br />
* Prefer inline functions to macros.<br />
* We build with C++ exceptions disabled, so most of the <code>std</code> namespace is off-limits, including STL containers. The exception is <code>&lt;algorithm&gt;</code>, which is mostly OK to use. You can use MFBT. We have some STL-like containers that are used basically everywhere (see js::Vector, js::HashMap, etc.)<br />
<br />
=== Initializer lists ===<br />
<br />
Initializer lists can break in one of two ways. The first may be preferable when constructors take few arguments:<br />
<br />
class Ninja : public WeaponWeilder, public Camouflagible,<br />
public Assassinatable, public ShapeShiftable<br />
{<br />
Ninja() : WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
The other permitted style mitigates longer-identifiers-squishing-text-against-the-right-side-of-the-screen-syndrome by using a half-indented colon:<br />
<br />
class Ninja<br />
: public WeaponWeilder, public Camouflagible, public Assassinatable,<br />
public ShapeShiftable<br />
{<br />
Ninja()<br />
: WeaponWeilder(Weapons::SHURIKEN),<br />
Camouflagible(Garments::SHINOBI_SHOZOKU),<br />
Assassinatable(AssassinationDifficulty::HIGHLY_DIFFICULT),<br />
ShapeShiftable(MPCost(512)) {}<br />
}<br />
<br />
=== Inline methods ===<br />
<br />
If the method in question fits on one line and is branch free, do a one liner:<br />
<br />
class Eater<br />
{<br />
void eat(Eaten &other) { other.setConsumed(); }<br />
};<br />
<br />
If it's too long, put the type, declarator including formals (unless they overflow), and left brace all on the first line:<br />
<br />
class Eater<br />
{<br />
Food* obtainFoodFromEatery(Eatery &eatery) {<br />
if (!eatery.hasFood())<br />
return NULL;<br />
return eatery.purchaseFood();<br />
}<br />
};<br />
<br />
For out-of-line inlines (when the definitions are too unwieldy to place in the class definition) use the inline keyword as an indicator that there's an out-of-line inline definition:<br />
<br />
class SpaceGoo<br />
{<br />
inline BlobbyWrapper* enblob(Entity &other);<br />
};<br />
<br />
inline BlobbyWrapper*<br />
SpaceGoo::enblob(Entity &other)<br />
{<br />
/* ... */<br />
}<br />
<br />
== References ==<br />
<br />
* [https://developer.mozilla.org/en/Mozilla_Coding_Style_Guide Mozilla's coding style guide].<br />
* [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ coding style guide].<br />
<br />
= Exceptions to this coding style =<br />
<br />
SpiderMonkey contains some code imported from other projects, e.g. ctypes/libffi/, that is minimally modified. Such code does not have to follow SpiderMonkey style.</div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1096051Modules/Core2015-09-18T10:17:28Z<p>Jandem: Adding bbouvier to JIT peers list</p>
<hr />
<div><noinclude><br />
'''Do not edit this page''' unless either:<br />
<br />
# you are a module owner who is:<br />
#* altering the list of peers in your module<br />
#* adding or removing a sub-module<br />
#* changing the owner of one of your sub-modules; or<br />
# you have agreed a change of owner or module addition/deletion with the Module Ownership Module group, probably via [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:fabrice@mozilla.com Fabrice Desré]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nthomas@mozilla.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:coop@mozilla.com Chris Cooper]<br />
|group=release-engineering<br />
|source_dirs=browser/config/mozconfigs/, mobile/android/config/mozconfigs/, xulrunner/config/mozconfigs/, b2g/config/, tools/update-packaging/<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc] (:gps)<br />
|peers=[mailto:mh@glandium.org Mike Hommey] (:glandium), [mailto:mshal@mozilla.com Mike Shal] (:mshal), [mailto:ted@mielczarek.org Ted Mielczarek] (:ted), [mailto:benjamin@smedbergs.us Benjamin Smedberg] (:bsmedberg) <br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Subresource Integrity (SRI) and CORS.<br />
|owner=[mailto:mozilla@sidstamm.com Sid Stamm]<br />
|peers=[mailto:francois@mozilla.com François Marier], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:mchew@mozilla.com Monica Chew]<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Device Storage<br />
|description=Support for the device storage API<br />
|owner=[https://mozillians.org/u/dhylands/ Dave Hylands], [mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:dougt@dougt.org Doug Turner]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/devicestorage/, dom/interfaces/devicestorage/<br />
|url=https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage<br />
|components=Core::DOM: Device Interfaces<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri (still active, but slower to respond than previously)], [mailto:me@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::Event Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen], [gkeeley@mozilla.com Garvan Keeley]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other), [mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:george@mozilla.com George Wright](Canvas2D, Skia), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:snorp@mozilla.com James Willcox](Android), [mailto:clord@mozilla.com Christopher Lord], [mailto:mstange@themasta.com Markus Stange](OS X)<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:kgupta@mozilla.com Kartikaya Gupta]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:clord@mozilla.com Christopher Lord]<br />
|group=dev-platform<br />
|source=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:gwright@mozilla.com George Wright], [mailto:jwatt@mozilla.com Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[https://mozillians.org/u/dhylands/ Dave Hylands]<br />
|peers=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:seth@mozilla.com Seth Fowler]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar], [mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:wmccloskey@mozilla.com Bill McCloskey]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:jld@mozilla.com Jed Davis]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jwalden@mit.edu Jeff Walden], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], [mailto:efaust@mozilla.com Eric Faust], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:luke@mozilla.com Luke Wagner], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:smontagu@smontagu.org Simon Montagu], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:ajones@mozilla.com Anthony Jones], [mailto:kinetik@flim.org Matthew Gregan], [mailto:eflores@mozilla.com Edwin Flores], [mailto:jyavenard@mozilla.com Jean-Yves Avenard], [mailto:gsquelart@mozilla.com Gerald Squelart], [mailto:rgiles@mozilla.com Ralph Giles], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:n.nethercote@gmail.com Nicholas Nethercote]<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd], [mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozApps API & UI<br />
|description=Implementation of the navigator.mozApps API<br />
|owner=[mailto:fabrice@mozilla.com Fabrice Desré], [mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:myk@mozilla.org Myk Melez], [mailto:mar.castelluccio@studenti.unina.it Marco Castelluccio], [mailto:ferjmoreno@gmail.com Fernando Jiménez]<br />
|group=dev-webapi<br />
|source_dirs=dom/apps/, dom/interfaces/apps, product specific files implementing UI hooks.<br />
|url=<br />
|components=Core::DOM: Apps<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:froydnj@mozilla.com Nathan Froyd] (mozglue/linker), [mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:pmcmanus@mozilla.com Patrick McManus]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:hurley@mozilla.com Nick Hurley], [mailto:sworkman@mozilla.com Steve Workman]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:jschoenick@mozilla.com John Schoenick]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=vacant<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owner=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:nsm.nikhil@gmail.com Nikhil Marathe], [mailto:kcambridge@mozilla.com Kit Cambridge], [mailto:martin.thomson@gmail.com Martin Thomson]<br />
|group=<br />
|source_dirs=dom/push, dom/simplepush<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:emaldona@redhat.com Elio Maldonado], [mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com David Keeler]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:bent.mozillla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:cam@mcc.id.au Cameron McCormack]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:ato@mozilla.com Andreas Tolfsen] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:dburns@mozilla.com David Burns] (marionette) [mailto:dminor@mozilla.com Dan Minor]<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:jmaher@mozilla.com Joel Maher]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=JS Marionette<br />
|description=NodeJS test harness, marionette client, and other utilities for running marionette tests (submodule of Test Infrastructure)<br />
|owner=[mailto:jlal@mozilla.com James Lal] <lightsofapollo>, [mailto:gaye@mozilla.com Gareth Aye] <gaye><br />
|peers=[mailto:aus@mozilla.com Ghislain "Aus" Lacroix] <auswerk><br />
|source_dirs=gaia/tests/jsmarionette<br />
|components=Testing::JSMarionette<br />
|group=dev-gaia<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:padenot@mozilla.com Paul Adenot], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:ehugg@cisco.com Ethan Hugg], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|group=dev-media<br />
|source_dirs=N/A (see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:jwillcox@mozilla.com James Willcox]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - OS X<br />
|description= Gecko's OS X compatibility layer.<br />
|owner=[mailto:smichaud@pobox.com Steven Michaud]<br />
|peers=[mailto:joshmoz@gmail.com Josh Aas], [mailto:mstange@themasta.com Markus Stange], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-xbl<br />
|source_dirs=dom/xbl/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]<br />
|peers=[https://mozillians.org/en-US/u/dougt/ Doug Turner], [https://mozillians.org/en-US/u/bsmedberg/ Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:me@kylehuey.com Kyle Huey]<br />
|peers=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=dom/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bowen@mozilla.com Bob Owen]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:aklotz@mozilla.com Aaron Klotz], [https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:smichaud@mozilla.com Steven Michaud]<br />
|peers=[mailto:areinald@mozilla.com Andre Reinald ]<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux & B2G<br />
|description=Sandboxing for the Linux & B2G platforms<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gDestuynder@mozilla.com Guillaume Destuynder]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:nalexander@mozilla.com Nicholas Alexander].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ehugg@cisco.com Ethan Hugg], [mailto:pkerr@mozilla.com Paul Kerr] <br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=/media/peerconnection, /dom/media/peerconnection ''(note: file reorg underway)''<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=727060Modules/Core2013-10-11T14:06:30Z<p>Jandem: Add new "JavaScript Engine: JIT" bugzilla component for the JIT module</p>
<hr />
<div><noinclude><br />
'''Do not edit this page''' unless either:<br />
<br />
# you are a module owner who is:<br />
#* altering the list of peers in your module<br />
#* adding or removing a sub-module<br />
#* changing the owner of one of your sub-modules; or<br />
# you have agreed a change of owner or module addition/deletion with the Module Ownership Module group, probably via [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nrthomas@gmail.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:cmp@mozilla.org Chase Phillips], [mailto:mozpreed@sigkill.com John Paul Reed], [mailto:robert@roberthelmer.com Robert Helmer]<br />
|group=dev-builds<br />
|source_dirs=tools/botrunner.py, tools/build-environment/, tools/build/, tools/buildbot-configs/, tools/buildbot/, tools/buildbotcustom/, tools/l10n/, tools/MozBuild/, tools/patcher-configs/, tools/patcher/, tools/release/, tools/tinderbox-configs/, tools/tinderbox/, tools/update-packaging/, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=<br />
|components=mozilla.org::Release Engineering, mozilla.org::Release Engineering: Custom Builds<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:me@kylehuey.com Kyle Huey], [mailto:mh@glandium.org Mike Hommey],[mailto:ted@mielczarek.org Ted Mielczarek], [mailto:mshal@mozilla.com Mike Shal], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:mchew@mozilla.com Monica Chew]<br />
|peers=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[mailto:continuation@gmail.com Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Device Storage<br />
|description=Support for the device storage API<br />
|owner=[mailto:dhylands@mozilla.com Dave Hylands], [mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:dougt@dougt.org Doug Turner]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/devicestorage/, dom/interfaces/devicestorage/<br />
|url=https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage<br />
|components=Core::DOM: Device Interfaces<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir.lamouri@mozilla.com Mounir Lamouri], [mailto:khuey@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-dom<br />
|source_dirs=content/*, dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML, Core::DOM: Events<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:bent@mozilla.com Ben Turner], [mailto:khuey@mozilla.com Kyle Huey], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/src/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=content/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten], [mailto:bjacob@mozilla.com Benoit Jacob], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert], [mailto:george@mozilla.com George Wright], [mailto:mwoodrow@mozilla.com Matt Woodrow], [mailto:jdaggett@mozilla.com John Daggett], [mailto:jfkthame@googlemail.com Jonathan Kew], [mailto:nsilva@mozilla.com Nicolas Silva], [mailto:ncameron@mozilla.com Nick Cameron]<br />
|group=dev-platform<br />
|source_dirs=gfx/, content/canvas/src/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:joe@drew.ca Joe Drew]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar], [mailto:seth@mozilla.com Seth Fowler]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=Java APIs for DOM<br />
|description=APIs for Java access to the Document Object Model<br />
|owner=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|peers=<br />
|group=dev-tech-dom,dev-tech-java<br />
|source_dirs=java/dom/<br />
|url=http://www.mozilla.org/projects/blackwood/dom/<br />
|components=Core::Java APIs for DOM<br />
}}<br />
<br />
{{Module<br />
|name=Java APIs to WebShell<br />
|description=<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java,dev-embedding<br />
|source_dirs=java/webclient/<br />
|url=http://www.mozilla.org/projects/blackwood/webclient/<br />
|components=Core::Java APIs to WebShell<br />
}}<br />
<br />
{{Module<br />
|name=Java Stubs<br />
|description=OJI<br />
|owner=[mailto:alfred.peng@sun.com Alfred Peng]<br />
|peers=[mailto:Xiaobin.Lu@eng.Sun.com Xiaobin Lu]<br />
|group=dev-tech-java<br />
|source_dirs=modules/oji/, nav-java/, sun-java/<br />
|url=http://www.mozilla.org/oji/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java to XPCOM Bridge<br />
|description=<br />
|owner=[mailto:pedemont@us.ibm.com Javier Pedemont]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpcom,dev-tech-java<br />
|source_dirs=extensions/java<br />
|url=http://www.mozilla.org/projects/blackwood/connect/<br />
|components=Core::Java to XPCOM Bridge<br />
}}<br />
<br />
{{Module<br />
|name=Java Utility Classes<br />
|description=assert, debug, utilities, etc.<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java<br />
|source_dirs=java/util/<br />
|url=http://www.mozilla.org/projects/blackwood/java-util/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java-Implemented Plugins<br />
|description=Infrastructure for writing MIME content-handlers<br />
in Java.<br />
|owner=[mailto:idk@eng.sun.com Igor Kushnirskiy]<br />
|peers=<br />
|group=dev-tech-java<br />
|source_dirs=java/plugins/<br />
|url=http://www.mozilla.org/projects/blackwood/java-plugins/<br />
|components=Core::Java-Implemented Plugins<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:luke@mozilla.com Luke Wagner], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:mrosenberg@mozilla.com Marty Rosenberg], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bmlk@gmx.de Bernd Mielke], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:pmcmanus@mozilla.com Patrick McManus]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:brian@briansmith.org Brian Smith], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:hurley@mozilla.com Nick Hurley], [mailto:sworkman@mozilla.com Steve Workman]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:jschoenick@mozilla.com John Schoenick]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Java-Implemented Plugins, Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owner=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:nsm.nikhil@gmail.com Nikhil Marathe], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=https://wiki.mozilla.org/WebAPI/SimplePush<br />
|components=<br />
}}<br />
<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:emaldona@redhat.com Elio Maldonado], [mailto:bsmith@mozilla.com Brian Smith], [mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:bsmith@mozilla.com Brian Smith]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:bent.mozillla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert]<br />
|group=dev-tech-svg<br />
|source_dirs=content/svg/, layout/svg/<br />
|url=http://www.mozilla.org/projects/svg/<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:mdas@mozilla.com Malini Das] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:jhammel@mozilla.com Jeffrey Hammel] (mozmill)<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:ctalbert@mozilla.com Clint Talbert]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:jhammel@mozilla.com Jeffrey Hammel], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=JS Marionette Harness and Tools<br />
|description=Test harness and associated tools for running marionette tests on NodeJS (submodule of Test Infrastructure)<br />
|owner=[mailto:jlal@mozilla.com James Lal] <lightsofapollo>, [mailto:gaye@mozilla.com Gareth Aye] <gaye><br />
|peers=[mailto:aus@mozilla.com Ghislain "Aus" Lacroix] <auswerk>, [mailto:mike@bocoup.com Mike Pennisi] <jugglinmike>, [mailto:evanxd@mozilla.com Evan Tseng] <evanxd><br />
|source_dirs=These are all mozilla-b2g github repos: [https://github.com/mozilla-b2g/marionette-js-runner Marionette JS Runner], [https://github.com/mozilla-b2g/mocha-json-proxy Mocha JSON Proxy], [https://github.com/mozilla-b2g/mocha-tbpl-reporter Mocha TBPL Reporter], [https://github.com/mozilla-b2g/marionette-js-client Marionette JS Client], [https://github.com/mozilla-b2g/sockit-to-me Sockit To Me], [https://github.com/mozilla-b2g/marionette-apps Marionette Apps], [https://github.com/mozilla-b2g/marionette-js-logger Marionette JS Logger], [https://github.com/mozilla-b2g/marionette-b2gdesktop-host Marionette B2G Desktop Host], [https://github.com/mozilla-b2g/marionette-firefox-host Marionette Firefox Host], [https://github.com/mozilla-b2g/marionette-profile-builder Marionette Profile Builder], [https://github.com/mozilla-b2g/mozilla-profile-builder Mozilla Profile Builder]<br />
|components=Testing::JSMarionette<br />
|group=dev-gaia<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:padenot@mozilla.com Paul Adenot]<br />
|group=dev-platform<br />
|source_dirs=content/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access (on desktop at least)<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:tterriberry@mozilla.com Tim Terriberry], [mailto:anant@mozilla.com Anant Narayanan]<br />
|group=dev-media<br />
|source_dirs=media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC (Audio/Video), Core::WebRTC (Networking), Core::WebRTC (Signaling)<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/%, widget/public/, widget/%, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:vladimir@mozilla.com Vladimir Vukicevic], [mailto:dougt@dougt.org Doug Turner], [mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Mac OS X<br />
|description= Gecko's Mac OS X compatibility layer.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:smichaud@pobox.com Steven Michaud], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xbl/%, content/xbl/public/, content/xbl/src/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=content/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:dougt@meer.net Doug Turner], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, tools/wizards/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files. Also produces .java interface files, as part of an experimental java<->xpcom connection layer.<br />
|owner=[mailto:BradleyJunk@cinci.rr.com BradleyJunk@cinci.rr.com]<br />
|peers=[mailto:jband@netscape.com(disabled) jband@netscape.com(disabled)], [mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=content/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=content/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - moz.build Data Migration<br />
|description=Temporary submodule that covers just the data conversion aspects of the transition from Makefile.in to moz.build files. This does not cover establishing new symbols in the moz.build execution sandbox. This module will cease to exist once the moz.build migration is complete.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:jarmstrong@mozilla.com Joey Armstrong].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:nalexander@mozilla.com Nicholas Alexander].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Video/Audio<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
Core::jemalloc<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=692769Modules/Core2013-08-09T20:14:24Z<p>Jandem: </p>
<hr />
<div><noinclude><br />
'''Do not edit this page''' unless either:<br />
<br />
# you are a module owner who is:<br />
#* altering the list of peers in your module<br />
#* adding or removing a sub-module<br />
#* changing the owner of one of your sub-modules; or<br />
# you have agreed a change of owner or module addition/deletion with the Module Ownership Module group, probably via [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nrthomas@gmail.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:cmp@mozilla.org Chase Phillips], [mailto:mozpreed@sigkill.com John Paul Reed], [mailto:robert@roberthelmer.com Robert Helmer]<br />
|group=dev-builds<br />
|source_dirs=tools/botrunner.py, tools/build-environment/, tools/build/, tools/buildbot-configs/, tools/buildbot/, tools/buildbotcustom/, tools/l10n/, tools/MozBuild/, tools/patcher-configs/, tools/patcher/, tools/release/, tools/tinderbox-configs/, tools/tinderbox/, tools/update-packaging/, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=<br />
|components=mozilla.org::Release Engineering, mozilla.org::Release Engineering: Custom Builds<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:me@kylehuey.com Kyle Huey], [mailto:mh@glandium.org Mike Hommey],[mailto:ted@mielczarek.org Ted Mielczarek], [mailto:mshal@mozilla.com Mike Shal], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:dwitte@gmail.com Dan Witte]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:josh@joshmatthews.com Josh Matthews], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[mailto:continuation@gmail.com Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Device Storage<br />
|description=Support for the device storage API<br />
|owner=[mailto:dhylands@mozilla.com Dave Hylands], [mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:dougt@dougt.org Doug Turner]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/devicestorage/, dom/interfaces/devicestorage/<br />
|url=https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage<br />
|components=Core::DOM: Device Interfaces<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir.lamouri@mozilla.com Mounir Lamouri], [mailto:khuey@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-dom<br />
|source_dirs=content/*, dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML, Core::DOM: Events<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:bent@mozilla.com Ben Turner], [mailto:khuey@mozilla.com Kyle Huey], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/src/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=content/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten], [mailto:bjacob@mozilla.com Benoit Jacob], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert], [mailto:george@mozilla.com George Wright], [mailto:mwoodrow@mozilla.com Matt Woodrow], [mailto:jdaggett@mozilla.com John Daggett], [mailto:jfkthame@googlemail.com Jonathan Kew], [mailto:nsilva@mozilla.com Nicolas Silva], [mailto:ncameron@mozilla.com Nick Cameron]<br />
|group=dev-platform<br />
|source_dirs=gfx/, content/canvas/src/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:joe@drew.ca Joe Drew]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=Java APIs for DOM<br />
|description=APIs for Java access to the Document Object Model<br />
|owner=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|peers=<br />
|group=dev-tech-dom,dev-tech-java<br />
|source_dirs=java/dom/<br />
|url=http://www.mozilla.org/projects/blackwood/dom/<br />
|components=Core::Java APIs for DOM<br />
}}<br />
<br />
{{Module<br />
|name=Java APIs to WebShell<br />
|description=<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java,dev-embedding<br />
|source_dirs=java/webclient/<br />
|url=http://www.mozilla.org/projects/blackwood/webclient/<br />
|components=Core::Java APIs to WebShell<br />
}}<br />
<br />
{{Module<br />
|name=Java Stubs<br />
|description=OJI<br />
|owner=[mailto:alfred.peng@sun.com Alfred Peng]<br />
|peers=[mailto:Xiaobin.Lu@eng.Sun.com Xiaobin Lu]<br />
|group=dev-tech-java<br />
|source_dirs=modules/oji/, nav-java/, sun-java/<br />
|url=http://www.mozilla.org/oji/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java to XPCOM Bridge<br />
|description=<br />
|owner=[mailto:pedemont@us.ibm.com Javier Pedemont]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpcom,dev-tech-java<br />
|source_dirs=extensions/java<br />
|url=http://www.mozilla.org/projects/blackwood/connect/<br />
|components=Core::Java to XPCOM Bridge<br />
}}<br />
<br />
{{Module<br />
|name=Java Utility Classes<br />
|description=assert, debug, utilities, etc.<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java<br />
|source_dirs=java/util/<br />
|url=http://www.mozilla.org/projects/blackwood/java-util/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java-Implemented Plugins<br />
|description=Infrastructure for writing MIME content-handlers<br />
in Java.<br />
|owner=[mailto:idk@eng.sun.com Igor Kushnirskiy]<br />
|peers=<br />
|group=dev-tech-java<br />
|source_dirs=java/plugins/<br />
|url=http://www.mozilla.org/projects/blackwood/java-plugins/<br />
|components=Core::Java-Implemented Plugins<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:luke@mozilla.com Luke Wagner]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jorendorff@mozilla.com Jason Orendorff], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:mrosenberg@mozilla.com Marty Rosenberg], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bmlk@gmx.de Bernd Mielke], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:pmcmanus@mozilla.com Patrick McManus]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:bsmith@mozilla.com Brian Smith], [mailto:mnovotny@mozilla.com Michal Novotny]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:jschoenick@mozilla.com John Schoenick]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Java-Implemented Plugins, Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owner=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:nsm.nikhil@gmail.com Nikhil Marathe], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=https://wiki.mozilla.org/WebAPI/SimplePush<br />
|components=<br />
}}<br />
<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:emaldona@redhat.com Elio Maldonado], [mailto:bsmith@mozilla.com Brian Smith], [mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:bsmith@mozilla.com Brian Smith]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:bent.mozillla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert]<br />
|group=dev-tech-svg<br />
|source_dirs=content/svg/, layout/svg/<br />
|url=http://www.mozilla.org/projects/svg/<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:mdas@mozilla.com Malini Das] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:jhammel@mozilla.com Jeffrey Hammel] (mozmill)<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:ctalbert@mozilla.com Clint Talbert]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:jhammel@mozilla.com Jeffrey Hammel], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:padenot@mozilla.com Paul Adenot]<br />
|group=dev-platform<br />
|source_dirs=content/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access (on desktop at least)<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:tterriberry@mozilla.com Tim Terriberry], [mailto:anant@mozilla.com Anant Narayanan]<br />
|group=dev-media<br />
|source_dirs=media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC (Audio/Video), Core::WebRTC (Networking), Core::WebRTC (Signaling)<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/%, widget/public/, widget/%, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:vladimir@mozilla.com Vladimir Vukicevic], [mailto:dougt@dougt.org Doug Turner], [mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Mac OS X<br />
|description= Gecko's Mac OS X compatibility layer.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:smichaud@pobox.com Steven Michaud], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xbl/%, content/xbl/public/, content/xbl/src/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=content/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:dougt@meer.net Doug Turner], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, tools/wizards/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files. Also produces .java interface files, as part of an experimental java<->xpcom connection layer.<br />
|owner=[mailto:BradleyJunk@cinci.rr.com BradleyJunk@cinci.rr.com]<br />
|peers=[mailto:jband@netscape.com(disabled) jband@netscape.com(disabled)], [mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=content/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=content/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - moz.build Data Migration<br />
|description=Temporary submodule that covers just the data conversion aspects of the transition from Makefile.in to moz.build files. This does not cover establishing new symbols in the moz.build execution sandbox. This module will cease to exist once the moz.build migration is complete.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:jarmstrong@mozilla.com Joey Armstrong].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:nalexander@mozilla.com Nicholas Alexander].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Video/Audio<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
Core::jemalloc<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=692761Modules/Core2013-08-09T20:05:26Z<p>Jandem: </p>
<hr />
<div><noinclude><br />
'''Do not edit this page''' unless either:<br />
<br />
# you are a module owner who is:<br />
#* altering the list of peers in your module<br />
#* adding or removing a sub-module<br />
#* changing the owner of one of your sub-modules; or<br />
# you have agreed a change of owner or module addition/deletion with the Module Ownership Module group, probably via [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nrthomas@gmail.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:cmp@mozilla.org Chase Phillips], [mailto:mozpreed@sigkill.com John Paul Reed], [mailto:robert@roberthelmer.com Robert Helmer]<br />
|group=dev-builds<br />
|source_dirs=tools/botrunner.py, tools/build-environment/, tools/build/, tools/buildbot-configs/, tools/buildbot/, tools/buildbotcustom/, tools/l10n/, tools/MozBuild/, tools/patcher-configs/, tools/patcher/, tools/release/, tools/tinderbox-configs/, tools/tinderbox/, tools/update-packaging/, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=<br />
|components=mozilla.org::Release Engineering, mozilla.org::Release Engineering: Custom Builds<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:me@kylehuey.com Kyle Huey], [mailto:mh@glandium.org Mike Hommey],[mailto:ted@mielczarek.org Ted Mielczarek], [mailto:mshal@mozilla.com Mike Shal], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:dwitte@gmail.com Dan Witte]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:josh@joshmatthews.com Josh Matthews], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[mailto:continuation@gmail.com Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Device Storage<br />
|description=Support for the device storage API<br />
|owner=[mailto:dhylands@mozilla.com Dave Hylands], [mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:dougt@dougt.org Doug Turner]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/devicestorage/, dom/interfaces/devicestorage/<br />
|url=https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage<br />
|components=Core::DOM: Device Interfaces<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir.lamouri@mozilla.com Mounir Lamouri], [mailto:khuey@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-dom<br />
|source_dirs=content/*, dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML, Core::DOM: Events<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:bent@mozilla.com Ben Turner], [mailto:khuey@mozilla.com Kyle Huey], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/src/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=content/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten], [mailto:bjacob@mozilla.com Benoit Jacob], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert], [mailto:george@mozilla.com George Wright], [mailto:mwoodrow@mozilla.com Matt Woodrow], [mailto:jdaggett@mozilla.com John Daggett], [mailto:jfkthame@googlemail.com Jonathan Kew], [mailto:nsilva@mozilla.com Nicolas Silva], [mailto:ncameron@mozilla.com Nick Cameron]<br />
|group=dev-platform<br />
|source_dirs=gfx/, content/canvas/src/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:joe@drew.ca Joe Drew]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=Java APIs for DOM<br />
|description=APIs for Java access to the Document Object Model<br />
|owner=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|peers=<br />
|group=dev-tech-dom,dev-tech-java<br />
|source_dirs=java/dom/<br />
|url=http://www.mozilla.org/projects/blackwood/dom/<br />
|components=Core::Java APIs for DOM<br />
}}<br />
<br />
{{Module<br />
|name=Java APIs to WebShell<br />
|description=<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java,dev-embedding<br />
|source_dirs=java/webclient/<br />
|url=http://www.mozilla.org/projects/blackwood/webclient/<br />
|components=Core::Java APIs to WebShell<br />
}}<br />
<br />
{{Module<br />
|name=Java Stubs<br />
|description=OJI<br />
|owner=[mailto:alfred.peng@sun.com Alfred Peng]<br />
|peers=[mailto:Xiaobin.Lu@eng.Sun.com Xiaobin Lu]<br />
|group=dev-tech-java<br />
|source_dirs=modules/oji/, nav-java/, sun-java/<br />
|url=http://www.mozilla.org/oji/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java to XPCOM Bridge<br />
|description=<br />
|owner=[mailto:pedemont@us.ibm.com Javier Pedemont]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpcom,dev-tech-java<br />
|source_dirs=extensions/java<br />
|url=http://www.mozilla.org/projects/blackwood/connect/<br />
|components=Core::Java to XPCOM Bridge<br />
}}<br />
<br />
{{Module<br />
|name=Java Utility Classes<br />
|description=assert, debug, utilities, etc.<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java<br />
|source_dirs=java/util/<br />
|url=http://www.mozilla.org/projects/blackwood/java-util/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java-Implemented Plugins<br />
|description=Infrastructure for writing MIME content-handlers<br />
in Java.<br />
|owner=[mailto:idk@eng.sun.com Igor Kushnirskiy]<br />
|peers=<br />
|group=dev-tech-java<br />
|source_dirs=java/plugins/<br />
|url=http://www.mozilla.org/projects/blackwood/java-plugins/<br />
|components=Core::Java-Implemented Plugins<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:luke@mozilla.com Luke Wagner]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jorendorff@mozilla.com Jason Orendorff], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:mrosenberg@mozilla.com Marty Rosenberg], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bmlk@gmx.de Bernd Mielke], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:pmcmanus@mozilla.com Patrick McManus]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:bsmith@mozilla.com Brian Smith], [mailto:mnovotny@mozilla.com Michal Novotny]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:jschoenick@mozilla.com John Schoenick]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Java-Implemented Plugins, Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owner=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:nsm.nikhil@gmail.com Nikhil Marathe], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=https://wiki.mozilla.org/WebAPI/SimplePush<br />
|components=<br />
}}<br />
<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:emaldona@redhat.com Elio Maldonado], [mailto:bsmith@mozilla.com Brian Smith], [mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:bsmith@mozilla.com Brian Smith]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:bent.mozillla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert]<br />
|group=dev-tech-svg<br />
|source_dirs=content/svg/, layout/svg/<br />
|url=http://www.mozilla.org/projects/svg/<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:mdas@mozilla.com Malini Das] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:jhammel@mozilla.com Jeffrey Hammel] (mozmill)<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:ctalbert@mozilla.com Clint Talbert]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:jhammel@mozilla.com Jeffrey Hammel], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:padenot@mozilla.com Paul Adenot]<br />
|group=dev-platform<br />
|source_dirs=content/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access (on desktop at least)<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:tterriberry@mozilla.com Tim Terriberry], [mailto:anant@mozilla.com Anant Narayanan]<br />
|group=dev-media<br />
|source_dirs=media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC (Audio/Video), Core::WebRTC (Networking), Core::WebRTC (Signaling)<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/%, widget/public/, widget/%, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:vladimir@mozilla.com Vladimir Vukicevic], [mailto:dougt@dougt.org Doug Turner], [mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Mac OS X<br />
|description= Gecko's Mac OS X compatibility layer.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:smichaud@pobox.com Steven Michaud], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xbl/%, content/xbl/public/, content/xbl/src/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=content/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:dougt@meer.net Doug Turner], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, tools/wizards/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files. Also produces .java interface files, as part of an experimental java<->xpcom connection layer.<br />
|owner=[mailto:BradleyJunk@cinci.rr.com BradleyJunk@cinci.rr.com]<br />
|peers=[mailto:jband@netscape.com(disabled) jband@netscape.com(disabled)], [mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=content/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=content/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - moz.build Data Migration<br />
|description=Temporary submodule that covers just the data conversion aspects of the transition from Makefile.in to moz.build files. This does not cover establishing new symbols in the moz.build execution sandbox. This module will cease to exist once the moz.build migration is complete.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:jarmstrong@mozilla.com Joey Armstrong].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:nalexander@mozilla.com Nicholas Alexander].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Video/Audio<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
Core::jemalloc<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=692760Modules/Core2013-08-09T20:03:56Z<p>Jandem: </p>
<hr />
<div><noinclude><br />
'''Do not edit this page''' unless either:<br />
<br />
# you are a module owner who is:<br />
#* altering the list of peers in your module<br />
#* adding or removing a sub-module<br />
#* changing the owner of one of your sub-modules; or<br />
# you have agreed a change of owner or module addition/deletion with the Module Ownership Module group, probably via [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nrthomas@gmail.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:cmp@mozilla.org Chase Phillips], [mailto:mozpreed@sigkill.com John Paul Reed], [mailto:robert@roberthelmer.com Robert Helmer]<br />
|group=dev-builds<br />
|source_dirs=tools/botrunner.py, tools/build-environment/, tools/build/, tools/buildbot-configs/, tools/buildbot/, tools/buildbotcustom/, tools/l10n/, tools/MozBuild/, tools/patcher-configs/, tools/patcher/, tools/release/, tools/tinderbox-configs/, tools/tinderbox/, tools/update-packaging/, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=<br />
|components=mozilla.org::Release Engineering, mozilla.org::Release Engineering: Custom Builds<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:me@kylehuey.com Kyle Huey], [mailto:mh@glandium.org Mike Hommey],[mailto:ted@mielczarek.org Ted Mielczarek], [mailto:mshal@mozilla.com Mike Shal], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:dwitte@gmail.com Dan Witte]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:josh@joshmatthews.com Josh Matthews], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[mailto:continuation@gmail.com Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Device Storage<br />
|description=Support for the device storage API<br />
|owner=[mailto:dhylands@mozilla.com Dave Hylands], [mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:dougt@dougt.org Doug Turner]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/devicestorage/, dom/interfaces/devicestorage/<br />
|url=https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage<br />
|components=Core::DOM: Device Interfaces<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir.lamouri@mozilla.com Mounir Lamouri], [mailto:khuey@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-dom<br />
|source_dirs=content/*, dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML, Core::DOM: Events<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:bent@mozilla.com Ben Turner], [mailto:khuey@mozilla.com Kyle Huey], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/src/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=content/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten], [mailto:bjacob@mozilla.com Benoit Jacob], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert], [mailto:george@mozilla.com George Wright], [mailto:mwoodrow@mozilla.com Matt Woodrow], [mailto:jdaggett@mozilla.com John Daggett], [mailto:jfkthame@googlemail.com Jonathan Kew], [mailto:nsilva@mozilla.com Nicolas Silva], [mailto:ncameron@mozilla.com Nick Cameron]<br />
|group=dev-platform<br />
|source_dirs=gfx/, content/canvas/src/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:joe@drew.ca Joe Drew]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=Java APIs for DOM<br />
|description=APIs for Java access to the Document Object Model<br />
|owner=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|peers=<br />
|group=dev-tech-dom,dev-tech-java<br />
|source_dirs=java/dom/<br />
|url=http://www.mozilla.org/projects/blackwood/dom/<br />
|components=Core::Java APIs for DOM<br />
}}<br />
<br />
{{Module<br />
|name=Java APIs to WebShell<br />
|description=<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java,dev-embedding<br />
|source_dirs=java/webclient/<br />
|url=http://www.mozilla.org/projects/blackwood/webclient/<br />
|components=Core::Java APIs to WebShell<br />
}}<br />
<br />
{{Module<br />
|name=Java Stubs<br />
|description=OJI<br />
|owner=[mailto:alfred.peng@sun.com Alfred Peng]<br />
|peers=[mailto:Xiaobin.Lu@eng.Sun.com Xiaobin Lu]<br />
|group=dev-tech-java<br />
|source_dirs=modules/oji/, nav-java/, sun-java/<br />
|url=http://www.mozilla.org/oji/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java to XPCOM Bridge<br />
|description=<br />
|owner=[mailto:pedemont@us.ibm.com Javier Pedemont]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpcom,dev-tech-java<br />
|source_dirs=extensions/java<br />
|url=http://www.mozilla.org/projects/blackwood/connect/<br />
|components=Core::Java to XPCOM Bridge<br />
}}<br />
<br />
{{Module<br />
|name=Java Utility Classes<br />
|description=assert, debug, utilities, etc.<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java<br />
|source_dirs=java/util/<br />
|url=http://www.mozilla.org/projects/blackwood/java-util/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java-Implemented Plugins<br />
|description=Infrastructure for writing MIME content-handlers<br />
in Java.<br />
|owner=[mailto:idk@eng.sun.com Igor Kushnirskiy]<br />
|peers=<br />
|group=dev-tech-java<br />
|source_dirs=java/plugins/<br />
|url=http://www.mozilla.org/projects/blackwood/java-plugins/<br />
|components=Core::Java-Implemented Plugins<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:luke@mozilla.com Luke Wagner]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jorendorff@mozilla.com Jason Orendorff], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:mrosenberg@mozilla.com Marty Rosenberg], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bmlk@gmx.de Bernd Mielke], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:pmcmanus@mozilla.com Patrick McManus]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:bsmith@mozilla.com Brian Smith], [mailto:mnovotny@mozilla.com Michal Novotny]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:jschoenick@mozilla.com John Schoenick]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Java-Implemented Plugins, Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owner=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:nsm.nikhil@gmail.com Nikhil Marathe], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=https://wiki.mozilla.org/WebAPI/SimplePush<br />
|components=<br />
}}<br />
<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:emaldona@redhat.com Elio Maldonado], [mailto:bsmith@mozilla.com Brian Smith], [mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:bsmith@mozilla.com Brian Smith]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:bent.mozillla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert]<br />
|group=dev-tech-svg<br />
|source_dirs=content/svg/, layout/svg/<br />
|url=http://www.mozilla.org/projects/svg/<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:mdas@mozilla.com Malini Das] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:jhammel@mozilla.com Jeffrey Hammel] (mozmill)<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:ctalbert@mozilla.com Clint Talbert]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:jhammel@mozilla.com Jeffrey Hammel], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:padenot@mozilla.com Paul Adenot]<br />
|group=dev-platform<br />
|source_dirs=content/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access (on desktop at least)<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:tterriberry@mozilla.com Tim Terriberry], [mailto:anant@mozilla.com Anant Narayanan]<br />
|group=dev-media<br />
|source_dirs=media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC (Audio/Video), Core::WebRTC (Networking), Core::WebRTC (Signaling)<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/%, widget/public/, widget/%, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:vladimir@mozilla.com Vladimir Vukicevic], [mailto:dougt@dougt.org Doug Turner], [mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Mac OS X<br />
|description= Gecko's Mac OS X compatibility layer.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:smichaud@pobox.com Steven Michaud], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xbl/%, content/xbl/public/, content/xbl/src/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=content/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:dougt@meer.net Doug Turner], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, tools/wizards/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files. Also produces .java interface files, as part of an experimental java<->xpcom connection layer.<br />
|owner=[mailto:BradleyJunk@cinci.rr.com BradleyJunk@cinci.rr.com]<br />
|peers=[mailto:jband@netscape.com(disabled) jband@netscape.com(disabled)], [mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=content/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=content/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - moz.build Data Migration<br />
|description=Temporary submodule that covers just the data conversion aspects of the transition from Makefile.in to moz.build files. This does not cover establishing new symbols in the moz.build execution sandbox. This module will cease to exist once the moz.build migration is complete.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:jarmstrong@mozilla.com Joey Armstrong].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:nalexander@mozilla.com Nicholas Alexander].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Video/Audio<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
Core::jemalloc<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=692759Modules/Core2013-08-09T20:02:38Z<p>Jandem: </p>
<hr />
<div><noinclude><br />
'''Do not edit this page''' unless either:<br />
<br />
# you are a module owner who is:<br />
#* altering the list of peers in your module<br />
#* adding or removing a sub-module<br />
#* changing the owner of one of your sub-modules; or<br />
# you have agreed a change of owner or module addition/deletion with the Module Ownership Module group, probably via [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nrthomas@gmail.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:cmp@mozilla.org Chase Phillips], [mailto:mozpreed@sigkill.com John Paul Reed], [mailto:robert@roberthelmer.com Robert Helmer]<br />
|group=dev-builds<br />
|source_dirs=tools/botrunner.py, tools/build-environment/, tools/build/, tools/buildbot-configs/, tools/buildbot/, tools/buildbotcustom/, tools/l10n/, tools/MozBuild/, tools/patcher-configs/, tools/patcher/, tools/release/, tools/tinderbox-configs/, tools/tinderbox/, tools/update-packaging/, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=<br />
|components=mozilla.org::Release Engineering, mozilla.org::Release Engineering: Custom Builds<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:me@kylehuey.com Kyle Huey], [mailto:mh@glandium.org Mike Hommey],[mailto:ted@mielczarek.org Ted Mielczarek], [mailto:mshal@mozilla.com Mike Shal], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=[mailto:lmandel@mozilla.com Lawrence Mandel]<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:dwitte@gmail.com Dan Witte]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:josh@joshmatthews.com Josh Matthews], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[mailto:continuation@gmail.com Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay, David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Device Storage<br />
|description=Support for the device storage API<br />
|owner=[mailto:dhylands@mozilla.com Dave Hylands], [mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:dougt@dougt.org Doug Turner]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/devicestorage/, dom/interfaces/devicestorage/<br />
|url=https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage<br />
|components=Core::DOM: Device Interfaces<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir.lamouri@mozilla.com Mounir Lamouri], [mailto:khuey@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-dom<br />
|source_dirs=content/*, dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML, Core::DOM: Events<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:bent@mozilla.com Ben Turner], [mailto:khuey@mozilla.com Kyle Huey], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews], [mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/src/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=content/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:bas.schouten@live.nl Bas Schouten], [mailto:bjacob@mozilla.com Benoit Jacob], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert], [mailto:george@mozilla.com George Wright], [mailto:mwoodrow@mozilla.com Matt Woodrow], [mailto:jdaggett@mozilla.com John Daggett], [mailto:jfkthame@googlemail.com Jonathan Kew], [mailto:nsilva@mozilla.com Nicolas Silva], [mailto:ncameron@mozilla.com Nick Cameron]<br />
|group=dev-platform<br />
|source_dirs=gfx/, content/canvas/src/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:joe@drew.ca Joe Drew]<br />
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=Java APIs for DOM<br />
|description=APIs for Java access to the Document Object Model<br />
|owner=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|peers=<br />
|group=dev-tech-dom,dev-tech-java<br />
|source_dirs=java/dom/<br />
|url=http://www.mozilla.org/projects/blackwood/dom/<br />
|components=Core::Java APIs for DOM<br />
}}<br />
<br />
{{Module<br />
|name=Java APIs to WebShell<br />
|description=<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java,dev-embedding<br />
|source_dirs=java/webclient/<br />
|url=http://www.mozilla.org/projects/blackwood/webclient/<br />
|components=Core::Java APIs to WebShell<br />
}}<br />
<br />
{{Module<br />
|name=Java Stubs<br />
|description=OJI<br />
|owner=[mailto:alfred.peng@sun.com Alfred Peng]<br />
|peers=[mailto:Xiaobin.Lu@eng.Sun.com Xiaobin Lu]<br />
|group=dev-tech-java<br />
|source_dirs=modules/oji/, nav-java/, sun-java/<br />
|url=http://www.mozilla.org/oji/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java to XPCOM Bridge<br />
|description=<br />
|owner=[mailto:pedemont@us.ibm.com Javier Pedemont]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpcom,dev-tech-java<br />
|source_dirs=extensions/java<br />
|url=http://www.mozilla.org/projects/blackwood/connect/<br />
|components=Core::Java to XPCOM Bridge<br />
}}<br />
<br />
{{Module<br />
|name=Java Utility Classes<br />
|description=assert, debug, utilities, etc.<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java<br />
|source_dirs=java/util/<br />
|url=http://www.mozilla.org/projects/blackwood/java-util/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java-Implemented Plugins<br />
|description=Infrastructure for writing MIME content-handlers<br />
in Java.<br />
|owner=[mailto:idk@eng.sun.com Igor Kushnirskiy]<br />
|peers=<br />
|group=dev-tech-java<br />
|source_dirs=java/plugins/<br />
|url=http://www.mozilla.org/projects/blackwood/java-plugins/<br />
|components=Core::Java-Implemented Plugins<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:luke@mozilla.com Luke Wagner]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jorendorff@mozilla.com Jason Orendorff], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:jdemooij@mozilla.com Jan de Mooij], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:evilpies@gmail.com Tom Schuster], [mailto:bhackett1024@gmail.com Brian Hackett]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:mrosenberg@mozilla.com Marty Rosenberg], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bmlk@gmx.de Bernd Mielke], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:pmcmanus@mozilla.com Patrick McManus]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:bsmith@mozilla.com Brian Smith], [mailto:mnovotny@mozilla.com Michal Novotny]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:jschoenick@mozilla.com John Schoenick]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Java-Implemented Plugins, Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owner=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:nsm.nikhil@gmail.com Nikhil Marathe], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=https://wiki.mozilla.org/WebAPI/SimplePush<br />
|components=<br />
}}<br />
<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:emaldona@redhat.com Elio Maldonado], [mailto:bsmith@mozilla.com Brian Smith], [mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:bsmith@mozilla.com Brian Smith]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:bent.mozillla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert]<br />
|group=dev-tech-svg<br />
|source_dirs=content/svg/, layout/svg/<br />
|url=http://www.mozilla.org/projects/svg/<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:mdas@mozilla.com Malini Das] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:jhammel@mozilla.com Jeffrey Hammel] (mozmill)<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:ctalbert@mozilla.com Clint Talbert]<br />
|peers=[mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:jhammel@mozilla.com Jeffrey Hammel], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:padenot@mozilla.com Paul Adenot]<br />
|group=dev-platform<br />
|source_dirs=content/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access (on desktop at least)<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:tterriberry@mozilla.com Tim Terriberry], [mailto:anant@mozilla.com Anant Narayanan]<br />
|group=dev-media<br />
|source_dirs=media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC (Audio/Video), Core::WebRTC (Networking), Core::WebRTC (Signaling)<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/%, widget/public/, widget/%, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:vladimir@mozilla.com Vladimir Vukicevic], [mailto:dougt@dougt.org Doug Turner], [mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Mac OS X<br />
|description= Gecko's Mac OS X compatibility layer.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:smichaud@pobox.com Steven Michaud], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:spohl@mozilla.com Stephen Pohl]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xbl/%, content/xbl/public/, content/xbl/src/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-xml<br />
|source_dirs=content/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:dougt@meer.net Doug Turner], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, tools/wizards/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files. Also produces .java interface files, as part of an experimental java<->xpcom connection layer.<br />
|owner=[mailto:BradleyJunk@cinci.rr.com BradleyJunk@cinci.rr.com]<br />
|peers=[mailto:jband@netscape.com(disabled) jband@netscape.com(disabled)], [mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=content/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=content/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - moz.build Data Migration<br />
|description=Temporary submodule that covers just the data conversion aspects of the transition from Makefile.in to moz.build files. This does not cover establishing new symbols in the moz.build execution sandbox. This module will cease to exist once the moz.build migration is complete.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:jarmstrong@mozilla.com Joey Armstrong].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:gps@mozilla.com Gregory Szorc]<br />
|peers=Same as Build Config plus [mailto:nalexander@mozilla.com Nicholas Alexander].<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Video/Audio<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
Core::jemalloc<br />
</pre><br />
</noinclude></div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683444Platform/2013-07-232013-07-23T11:12:44Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs: http://alasal.be/ionmonkey/<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*** {{bug|894669}}: Analysis for variables unnecessarily entrained by inner functions (to find memory leaks)<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
*** Land {{bug|866888}}: Ion-compile try-catch<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid needlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683440Platform/2013-07-232013-07-23T10:56:59Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs: http://alasal.be/ionmonkey/<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*** {{bug|894669}}: Analysis for variables unnecessarily entrained by inner functions (to find memory leaks)<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
*** Land {{bug|866888}}: Ion-compile try-catch<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid needlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683439Platform/2013-07-232013-07-23T10:54:19Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs: http://alasal.be/ionmonkey/<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*** {{bug|894669}}: Analysis for variables unnecessarily entrained by inner functions, helps catch memory leaks<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
*** Land {{bug|866888}}: Ion-compile try-catch<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid needlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683437Platform/2013-07-232013-07-23T10:44:57Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs: http://alasal.be/ionmonkey/<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
*** Land {{bug|866888}}: Ion-compile try-catch<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid needlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683436Platform/2013-07-232013-07-23T10:43:23Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs: http://alasal.be/ionmonkey/<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid needlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683435Platform/2013-07-232013-07-23T10:42:38Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs: http://alasal.be/ionmonkey/<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid nnedlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683434Platform/2013-07-232013-07-23T10:42:09Z<p>Jandem: /* JS (jandem) */</p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
*Last Week<br />
** Compiler (JIT)<br />
*** {{bug|880538}}: Fix asm.js parse-time memory spike<br />
*** {{bug|888237}}, {{bug|895883}}: Make more use of hardware divide instruction on ARM, where available<br />
*** Revived TraceLogger and created Octane graphs (http://alasal.be/ionmonkey/)<br />
*** Many range analysis fixes<br />
** Garbage Collection<br />
*** Published blog post on exact rooting: https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/<br />
*** {{bug|883498}}: GGC tier 1 builds<br />
*** {{bug|888338}}: GGC browser post barrier work<br />
** Front End and Other<br />
*** {{bug|890238}}: Memory reporter for ICU, first pass<br />
*This Week<br />
** Compiler (JIT)<br />
*** {{bug|891541}}: Ship VTune support for Odin (asm.js) in Nightly<br />
** Garbage Collection<br />
*** {{bug|894971}}: Hashing out a potential alternate approach to avoid nnedlessly entraining garbage in closures<br />
*** Fix remaining rooting hazards<br />
** Front End and Other<br />
*** Standalone alpha release of mozjs24<br />
*** Finish up ICU memory situation, figure out if any other issues need to be solved before enabling Intl stuff in all desktop builds<br />
*Blockers<br />
** None<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=Platform/2013-07-23&diff=683420Platform/2013-07-232013-07-23T10:02:25Z<p>Jandem: </p>
<hr />
<div><!-- Maybe don't screw with these links unless you've read this blog post:<br />
http://blog.johnath.com/2011/01/20/automatic-date-links-in-mediawiki/<br />
Just copy them to new pages and it should Just Work!<br />
--><br />
<br />
<small>[[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} -1 week}}|&laquo; previous week]] | [[Platform|index]] | [[Platform/{{#time: Y-m-d | {{SUBPAGENAME}} +1 week}}|next week &raquo;]]</small><br />
<br />
<div class="h-event vevent"><br />
'''<span class="p-summary summary">Engineering Meeting</span> Details'''<br />
* <span class="dt-start dtstart">Tuesday <span class="value">{{#time: Y-m-d | {{SUBPAGENAME}} }}</span> - <span class="value">11:00</span> am <abbr class="value" title="-0700">Pacific</abbr></span><br />
{{conf|98411}}<br />
* <span class="location">[https://v.mozilla.com/flex.html?roomdirect.html&key=T2v8Pi8WuTRc Engineering Vidyo Room] / MTV Warp Core / TOR Finch / SFO Warfield / PDX Widmer</span><br />
* join irc.mozilla.org [irc://irc.mozilla.org/planning #planning] for back channel<br />
</div><br />
<br />
==Actions==<br />
<br />
==Hot Bugs==<br />
<small>(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)</small><br />
; Orange Factor<br />
; Stability<br />
; Other<br />
<br />
==The Need To Know==<br />
<small>(Release and system issues that may impact engineering this week.)</small><br />
===Notices/Schedule (akeybl/lsblakk/bajaj)===<br />
{| class="wikitable"<br />
|-<br />
| <center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-7-0=notequals;value0-7-0=%2B;field0-3-0=cf_status_firefox{{AURORA_VERSION}};type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;field0-1-0=cf_status_firefox{{AURORA_VERSION}};field0-0-0=cf_tracking_firefox{{AURORA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{AURORA_VERSION}};value0-3-0=unaffected;field0-7-0=cf_tracking_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;value0-6-0=verified%20disabled;value0-1-0=wontfix;type0-3-0=notequals;field0-2-0=cf_status_firefox{{AURORA_VERSION}};field0-5-0=cf_status_firefox{{AURORA_VERSION}};field0-4-0=cf_status_firefox{{AURORA_VERSION}};type0-6-0=notequals;type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;list_id=5004437 ?? bugs]</big> <small>(?? bugs last week)</small></center><br />
| <b><center><big>[https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=notequals;type0-5-0=notequals;value0-5-0=disabled;value0-4-0=verified;list_id=4754086;field0-1-0=cf_status_firefox{{BETA_VERSION}};field0-0-0=cf_tracking_firefox{{BETA_VERSION}};value0-3-0=unaffected;value0-6-0=verified%20disabled;value0-1-0=wontfix;field0-5-0=cf_status_firefox{{BETA_VERSION}};type0-0-0=equals;value0-0-0=%2B;type0-2-0=notequals;field0-3-0=cf_status_firefox{{BETA_VERSION}};type0-4-0=notequals;columnlist=bug_severity%2Cpriority%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate;field0-6-0=cf_status_firefox{{BETA_VERSION}};query_format=advanced;value0-2-0=fixed;type0-3-0=notequals;field0-2-0=cf_status_firefox{{BETA_VERSION}};field0-4-0=cf_status_firefox{{BETA_VERSION}};type0-6-0=notequals ?? bugs]</big> <small>(?? bugs last week)</small></center></b><br />
|-<br />
<!-- BIG NUMBER == This week's bug count, SMALL NUMBER IN BRACKETS == Last week's bug count --><br />
! scope="row" | <small>Unresolved Aurora {{AURORA_VERSION}} Trackers (non-security, not tracked for Beta)</small><br />
! scope="row" | <b><small>Unresolved Beta {{BETA_VERSION}} Trackers (non-security)</small></b><br />
|}<br />
<br />
===Build Changes (gps)===<br />
<small>(Build changes of which engineers should be aware.)</small><br />
<br />
===Upcoming Outages/Upgrades===<br />
<small>(System outages/upgrades and tree closures that impact engineering.)</small><br />
<br />
==Key Issues==<br />
<small>(Non team specific issues that impact engineering.)</small><br />
* birch as b2g-inbound has been great success. Official "b2g-inbound" branch is coming, soon "birch" will revert to being normal twig again. Details in {{bug|875989}} or ask hwine.<br />
* "integration/fx-team" will get sheriff coverage, landing to mozilla-central. We will monitor this experiment for next few weeks.<br />
** If you are on fx-team, please land on "fx-team" instead of "mozilla-inbound" unless directed otherwise by sheriffs.<br />
* Try-repo-reset last week to address performance problems. If you see delays while pushing to try, please let sheriffs or RelEng know (or file a bug!)<br />
* Talos-on-mozharness change coming tomorrow (Wednesday 24th). Details here: https://groups.google.com/forum/#!topic/mozilla.dev.tree-management/HRWB05plBnI<br />
** Note: need to refresh to recent changeset before pushing to try.<br />
* OSX Builder+tester reduced capacity from 06:00-10:00 PDT on Tues (30jul), Wed (31jul) and Thurs (01aug) for power-construction work in SCL3 colo. Details in {{bug|850852}}.<br />
** We do not expect this to cause a treeclosure, but please be careful when landing patches in this window. Sheriffs will meter-checkins or close trees if things go bad.<br />
<br />
==Team Stand-ups==<br />
<small>(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)</small><br />
===Accessibility (dbolter)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Marco Zehe made a sneak peek [http://www.youtube.com/watch?v=gNWcCCddSm8 video of FF OS talking]. More to come!<br />
<br />
===Add-on SDK (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===App Tools (dtownsend)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===B2G Services (dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Developer Tools (dcamp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
* Break on DOM events backend landed<br />
* A large chunk of the remote inspector landed<br />
* Browser debugger stepping fixed<br />
* Remote scratchpad near landing<br />
* Content process debugging ready to land, will be preffed off until a Unix Domain Socket connection patch is ready.<br />
* Looking into a solution for Developer Profiles: [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000574.html Thread]<br />
<br />
===DOM (jst/dougt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Desktop (gavin/dolske)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox Metro (bbondy/jmathies/mbrubeck)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* File downloads appbar work landed<br />
* Various front end bugfixes and polish<br />
* Async Pan Zoom Controller in review, landing pref'ed off this week<br />
<br />
===Firefox Mobile (mfinkle/blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
* Holy SkiaGL, Batman! {{bug|895409}}<br />
* As mentioned in yesterday's MoFo Meeting, Guest Mode landed! Here's the tracking page https://wiki.mozilla.org/Mobile/Projects/Guest_mode#Tracking<br />
* Contacts API should be landing very soon: http://imgur.com/VxRiZRj<br />
* About:Home Hackathon is happening: https://wiki.mozilla.org/Mobile/Projects/About:home_redesign#Bug_List<br />
<br />
===Firefox OS Browser (blassey)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Communications (scravag)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Devices/Porting/Bluetooth (mchen)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
{{readonly}}<br />
* Bluetooth<br />
** AVRCP 1.3 - Reviewing.<br />
** A2DP/AVRCP 1.0 - Enabling on master branch.<br />
* Devices/Porting<br />
** Bluedroid - Working on pairing function.<br />
** Evaluate ram usage of SC/TC IME for China Unicom.<br />
** Create build system for Tablet project.<br />
** Improve Gaia make system for adding B2G flags.<br />
* Blocking Bugs<br />
** 889730, 892371, 887650, 894805, 778453<br />
<br />
===Firefox OS Media Apps (hema)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Media Recording (cjku)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*WebRTC<br />
**{{Bug|896391}}: memory copy from graphic buffer, which is generate in camera module, has bad performance, since CPU cache disable.<br />
**{{Bug|853356}}: Display camera/ microphone permission acquisition prompt.<br />
*Graphic<br />
**{{bug|894262}}: Merge GonkIOSurfaceImage to GrallocPlanarYCbCrImage<br />
**{{bug|894847}}: WebGL is horrible slow when hardware composer unavailable<br />
*Media recorder<br />
**MP4 muxer library investigation.<br />
*IME OOP<br />
**{{bug|847763}}: Prevent virtual keyboard iframe from getting focus<br />
<br />
===Firefox OS Performance (mlee)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Productivity (doliver)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}} <br />
<br />
Last week:<br />
* Good progress on marionette integration test improvements. <br />
** meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=891696<br />
** documentation: https://developer.mozilla.org/en-US/docs/Marionette/Marionette_JavaScript_Tools<br />
*** Please provide feedback to gaye@mozilla.com<br />
* Completed port of Thunderbird IMAP & SMTP fake servers. https://bugzilla.mozilla.org/show_bug.cgi?id=813411<br />
<br />
This week:<br />
* Close out v1.1 blockers<br />
* Expect to land the majority of the marionette enhancements for 891696 that will at least allow teams to start writing integration tests<br />
* Meeting with team of contractors from [http://http://bocoup.com Bocoup] -- they'll be working on the Clock application for 1.2, implementing new features and working on establishing best practices for Gaia development.<br />
<br />
Blockers:<br />
* Need to get conclusion to the WebAPI/Notifications topic. Discussion is happening but we need to reach resolution (for 1.2 at least) soon<br />
** https://groups.google.com/d/msg/mozilla.dev.webapi/vxfl3yNW4x0/JcuXeQQiSTkJ<br />
<br />
===Firefox OS Radio/GPS (kenhkchang)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
*Last week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** To get the UX for Gaia part.<br />
**WAP Push(SI and SL), to clarify the requirements.<br />
**OMA CP, to clarify the requirements.<br />
**NFC, to understand the NFC specifications.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*This week<br />
**Fix Leo+ issues.<br />
**CDMA,<br />
*** Implemeting call waiting/switching, RSSi, OTASP, nsIDOMMozMobileCellInfo, network select mode, and ECB for gecko part.<br />
*** Based on UX to implement Gaia part.<br />
**WAP Push(SI and SL), based on UX to implement Gaia part.<br />
**OMA CP, to clarify the requirements and plan to only support APN setting for CP function now.<br />
**NFC, to analyze how to design NFC architecture for all NFC user stories and share them to team members.<br />
**WPA-EAP, to move Crypto to WebIDL<br />
*Blockers<br />
**Need UX for CDMA and WAP push.<br />
<br />
===Firefox OS Systems - Front End (lucas)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Firefox OS Systems - Platform (timdream)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===GFX (milan)===<br />
{{readonly}}<br />
* D2D1.1 landed<br />
* TextureHost/TextureClient changes landed, disabled with gralloc on B2G<br />
* All unit tests are now ported to GTest<br />
* A few people are visiting Skia folks in North Carolina in August<br />
<br />
===Identity (jedp)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
===JS (jandem)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
===Layout (jet/dbaron)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===Media (mreavy)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
* getUserMedia() - Fix for 44100 mics (on windows) landed and uplifted to Beta -- {{bug|886886}} <br />
** Fixes ever-increasing audio delay when talking from Windows with certain (common) headsets and Lenovo W520/530 built-in mics<br />
* Shout-out to :mwu for jumping in an helping with {{bug|825112}} (audio getUserMedia input on Gonk) - Thanks!<br />
* Fixes for dictionary and large transfers (from Windows) for DataChannels. Chrome will be supporting DataChannels very soon.<br />
* Landed {{bug|866675}} (new audio output backend for windows)<br />
* WebRTC on Android nearing beta - if you're on one of the bugs for that, please help get them resolved ASAP<br />
* Recording API initial landing (audio only)<br />
Top work items:<br />
* Audio latency/quality: [[Media/WebRTC Audio Issues | WebRTC Audio Issues]]<br />
* Video framerate and resolution adaptation<br />
* Performance, especially on mobile<br />
* Working towards heavier internal dogfooding<br />
<br />
===Necko (jduell)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
* some new network APIs will be getting exposed (work still in progress)<br />
** {{Bug|797561}} Expose a server tcp socket API to web applications<br />
** {{Bug|869869}} e10s for UDP socket<br />
<br />
* We are turning off user prompts when websites use appcache! ({{bug|892488}})<br />
** could mean DOS attacks, but gives us parity w/other browsers, and may result in appcache being used more.<br />
<br />
* We're close to a fix on {{bug|887753}} (Server not found after reconnecting to etherpad)<br />
<br />
===Performance (vladan)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
{{readonly}}<br />
<br />
See [https://wiki.mozilla.org/index.php?title=Platform/2013-07-16#Performance_.28vladan.29 last week's update] for projects in progress<br />
<br />
Bugs of note:<br />
<br />
* {{bug|888373}}: A new simple API to detect how the last session exited. It should replace the existing mechanisms with a single, better performing implementation<br />
* {{bug|715376}}: Implement a per-page event queue, to allow timeout grouping/prioritization/etc. This bug is looking for a new owner.<br />
<br />
Blogs:<br />
<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/19/asynchronous-database-connections-in-the-mozilla-platform/ Asynchronous database connections in the Mozilla Platform]<br />
* Yoric: [http://dutherenverseauborddelatable.wordpress.com/2013/07/17/chrome-workers-now-with-modules/ Chrome Workers, now with modules!]<br />
<br />
===Seceng (mmc)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
===WebAPI (overholt)===<br />
<!-- Read only update this week? Uncomment the following line--><br />
<!-- {{readonly}} --><br />
<br />
==Quality Programs==<br />
<small>(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)</small><br />
===CritSmash (dbolter)===<br />
===MemShrink (njn)===<br />
<br />
Luke Wagner [https://bugzilla.mozilla.org/show_bug.cgi?id=880538 reworked asm.js parsing]. The parsing memory peak in the Unreal demo has dropped from 800+ MiB to less than 10 MiB; parsing is a bit faster, too.<br />
<br />
Justin Lebar and others have been making ongoing progress on fixing slow leaks in B2G. This is *extremely* important work.<br />
<br />
===OrangeFactor (ryanvm)===<br />
===Stability (kairo/bsmedberg)===<br />
<br />
==Roundtable==<br />
<small>(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)</small><br />
* New meeting rooms for this meeting (lmandel)<br />
** SFO Warfield<br />
** TOR Finch<br />
** PDX Widmer<br />
<br />
==<Read only beyond this point>==<br />
===Mailing List Threads===<br />
<small>(Threads that are likely to be of interest to engineering from various mailing lists.)</small><br />
===Good Reads===<br />
<small>(Links to blog posts, books, videos, etc. that you think will be of interest to others.)</small><br />
<br />
* Be more productive with Mercurial by installing gps's new extension: http://gregoryszorc.com/blog/2013/07/22/mercurial-extension-for-gecko-development/</div>Jandemhttps://wiki.mozilla.org/index.php?title=JavaScript:New_to_SpiderMonkey&diff=359562JavaScript:New to SpiderMonkey2011-10-19T18:54:23Z<p>Jandem: Nowadays -m -n is the default, not -m -j -p</p>
<hr />
<div>== Tutorial: your first patch ==<br />
<br />
The first step to getting involved with SpiderMonkey is to make your first patch. This guides you through it, and at the end you should have learnt a lot of the procedures and formalisms involved in getting things done here.<br />
<br />
We'll assume you're on a Unix-y platform, and that you know what you're doing. We'll ignore nearly all details. <br />
<br />
=== Get the code ===<br />
<br />
Spidermonkey development happens in the "mozilla-central" mercurial repository:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central spidermonkey<br />
<br />
=== Build the js shell ===<br />
<br />
Most of the time, you'll be working with the Javascript shell, instead of the full Firefox browser. So build the shell: <br />
<br />
cd spidermonkey/js/src<br />
autoconf2.13<br />
mkdir build_DBG.OBJ <br />
cd build_DBG.OBJ <br />
../configure --enable-debug --disable-optimize<br />
cd ..<br />
<br />
If you're having trouble or are missing dependencies, refer to [https://developer.mozilla.org/en/SpiderMonkey/Build_Documentation#Building_SpiderMonkey_tip Building SpiderMonkey Tip].<br />
<br />
=== Fix something ===<br />
<br />
At this point, you're ready to make your first fix. <br />
<br />
TODO: something useless. Maybe adding a datemicrosecond function.<br />
<br />
==== Building your changes ====<br />
<br />
Having made the change, build the shell again. <br />
<br />
make -C build_DBG.OBJ<br />
<br />
==== Testing your changes ====<br />
<br />
It builds. Hurray. Time to run the tests to check you haven't broken anything. <br />
<br />
jit-tests/jit_test.py build_DBG.OBJ/js<br />
<br />
The trace tests are pretty quick, and should give you an idea if you've gotten something wrong. Assuming nothing goes wrong, try the ref-tests: <br />
<br />
tests/jstests.py build_DBG.OBJ/js --args="-m -n"<br />
<br />
==== Benchmark your changes ====<br />
<br />
Tests all pass. Congrats, you didn't break anything. Now, did you make it faster or slower? We benchmark using the v8 and SunSpider benchmarks. Get the benchmarks: <br />
<br />
svn checkout http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider<br />
<br />
And now run them: <br />
<br />
cd SunSpider <br />
./sunspider --args="-m -n" --shell=../build_DBG.OBJ/js --run=30 --suite=sunspider-0.9.1 <br />
cd ..<br />
<br />
===== Optimized build =====<br />
<br />
Whoops, we benchmarked the debug version. Let's make an optimized build to test instead.<br />
<br />
mkdir build_OPT.OBJ <br />
cd build_OPT.OBJ <br />
../configure --disable-debug --enable-optimize<br />
make <br />
cd ..<br />
<br />
Repeat the sunspider steps above, and take note of the line that looks like: <br />
<br />
Results are located at sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
You'll need that later. <br />
<br />
===== Baseline version / Mercurial Queues =====<br />
<br />
We need to time our optimized version against the baseline version. This calls for a brief introduction to mercurial queues, which most people think is a pretty good way of managing their SpiderMonkey workflow: <br />
<br />
hg qinit<br />
hg qnew my_first_patch -f<br />
hg qrefresh<br />
<br />
This puts your current work into a patch, managed by Mercurial, symbolically called my_first_patch. To pop the patch off: <br />
<br />
hg qpop<br />
<br />
And we're back to our pristine version.<br />
<br />
===== Compare =====<br />
<br />
Build again and rerun SunSpider again. You should now have two files like: <br />
<br />
sunspider-0.9.1-results/sunspider-results-2010-08-07-17.56.48.js<br />
<br />
Compare them using the compare script: <br />
<br />
cd SunSpider <br />
sunspider-compare-results --shell=build_DBG.OBJ/js FILE1-withoutPatch FILE2-withPatch<br />
<br />
=== Get a real bug ===<br />
<br />
At this point, you've seen nearly everything you need to do hack on SpiderMonkey. So it's time to get a real bug to work on. You can get a [https://bugzilla.mozilla.org/buglist.cgi?list_id=246047&resolution=---&classification=Components&status_whiteboard_type=substring&query_format=advanced&status_whiteboard=%5Bmentor%3D&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=JavaScript%20Engine&product=Core mentored bug] or a "[https://bugzilla.mozilla.org/buglist.cgi?list_id=246036&resolution=---&classification=Components&status_whiteboard_type=substring&query_format=advanced&status_whiteboard=%5Bgood%20first%20bug%5D&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=JavaScript%20Engine&product=Core Good First Bug]".<br />
<br />
Fix the bug, updating the bug report with your progress, and asking questions as you go (either in the bug comments, in [irc://irc.mozilla.org/#jsapi #jsapi], or on [http://infomonkey.cdleary.com InfoMonkey]. When it's done, repeat all the steps above. Then it's time to get your patch into the tree.<br />
<br />
=== Submit a patch ===<br />
<br />
To get the patch from mercurial, use: <br />
<br />
hg qdiff # if you're using queues or<br />
hg diff # if you're not<br />
<br />
Add it to the bug as an attachment. <br />
<br />
=== Get a review ===<br />
<br />
Nothing gets into the tree without a review, so you'll need one. The [[JavaScript:Hackers|SpiderMonkey hackers list]] is a good place to start: if your patch changes something listed as an area of expertise for someone there, that's a good person to ask for a review.<br />
<br />
Alternatively run <code>hg blame</code> on the files you've changed, and check who has been changing related code recently. They're likely to be good candidates.<br />
<br />
The review will consist of comments on your changes, suggesting or requesting alternative ways to do something and asking you to make changes where needed. They might also request additional changes, for example tests. Fix what they ask, resubmit the patch to bugzilla, and ask for another review. After you repeat this step a few times, they're mark the patch as "<code>r+</code>" meaning it's now good to commit.<br />
<br />
=== Commit ===<br />
<br />
You can't commit to mozilla-central / mozilla-inbound until you have "level 3" access, so you'll need someone to do this for you. Try asking in [irc://irc.mozilla.org/#jsapi #jsapi], or add the <code>checkin-needed</code> keyword to the bug. After you have been contributing for a while, you can get level 3 access by [https://www.mozilla.org/hacking/commit-access-policy/ applying for it].<br />
<br />
After committing, a large series of tests will be run to make sure you didn't break anything. You'll need to hang around to make sure you didn't break something. Check [http://tbpl.mozilla.org/?tree=Firefox the Firefox tree] for failures. Sometimes failures will be spurious: ask [irc://irc.mozilla.org/#jsapi for help] determining when this is the case, to start. (Over time you'll figure out when this is and isn't the case yourself.)<br />
<br />
== Overview of the JS engine ==<br />
<br />
The JS engine is a swiftly moving target. The most detailed information is available at https://developer.mozilla.org/en/SpiderMonkey. Here are some particularly interesting, mostly up-to-date resources:<br />
<br />
<br />
=== High level overviews ===<br />
<br />
http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/<br />
<br />
https://developer.mozilla.org/En/SpiderMonkey/Internals<br />
<br />
http://users.alliedmods.net/~dvander/jm_presentation.pdf<br />
<br />
http://hacks.mozilla.org/2009/07/tracemonkey-overview/<br />
<br />
<br />
=== Medium level documentation ===<br />
<br />
jsapi.h: http://hg.mozilla.org/tracemonkey/file/tip/js/src/jsapi.h<br />
<br />
Mapping JS idioms to SpiderMonkey code: https://developer.mozilla.org/En/SpiderMonkey/JSAPI_Phrasebook<br />
<br />
<br />
=== Detailed documentation ===<br />
<br />
Build: https://developer.mozilla.org/en/SpiderMonkey/Build_Documentation<br />
<br />
Testing: https://developer.mozilla.org/en/SpiderMonkey/Running_Automated_JavaScript_Tests<br />
<br />
Shell: https://developer.mozilla.org/En/SpiderMonkey/Introduction_to_the_JavaScript_shell<br />
<br />
Function reference: https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference<br />
<br />
<br />
== Collaboration and teamwork ==<br />
<br />
=== Communication (in descending order of information content) ===<br />
<br />
Nearly all communication is handled through [https://bugzilla.mozilla.org Bugzilla]. All bugs, feature requests, issues, enhancements, etc, are all referred to as bugs. No code may enter the Mozilla repository without being a patch attached to a bugzilla bug first. To follow all SpiderMonkey related bugs:<br />
<br />
Go to [https://bugzilla.mozilla.org/userprefs.cgi?tab=email email preferences]<br />
Watch the user general@spidermonkey.bugs<br />
<br />
SpiderMonkey contributors generally hang out in the very active [irc://irc.mozilla.org/jsapi #jsapi IRC channel].<br />
<br />
The [https://www.mozilla.org/about/forums/#dev-tech-js-internals js-internals mailing list] is used for communicating with other SpiderMonkey hackers. (<i>Internals</i> as in discussing the internals of the SpiderMonkey engine. All are welcome on the list.).<br />
<br />
Reading Planet Mozilla is the best way to keep up with the Mozilla project, which includes some SpiderMonkey related blogs:<br />
<br />
[http://www.bailopan.net/blog/ David Anderson]<br />
[http://blog.mozilla.com/rob-sayre/ Rob Sayre]<br />
[http://blog.mozilla.com/jorendorff Jason Orendorff]<br />
[http://blog.mozilla.com/dmandelin/ David Mandelin]<br />
[http://blog.mozilla.com/nnethercote/ Nicholas Nethercote]<br />
[http://whereswalden.com/ Jeff Walden]<br />
[https://itcouldbesomuchbetter.wordpress.com Jim Blandy]<br />
[http://blog.cdleary.com Chris Leary]<br />
<br />
<br />
The Mozilla platform team has a [https://wiki.mozilla.org/Platform#Meetings public weekly meeting] where SpiderMonkey progress is (occasionally) discussed.<br />
<br />
The [https://developer.mozilla.org/en/SpiderMonkey#Community js-engine mailing list] is generally used for communicating with people who embed SpiderMonkey, such as asking questions and announcing API changes. No actual development happens on the list.<br />
<br />
== Code considerations ==<br />
<br />
=== Repository ===<br />
<br />
Most active work on SpiderMonkey is done in the [http://hg.mozilla.org/mozilla-central mozilla-central] branch of the mozilla repository.<br />
<br />
=== Coding Style ===<br />
<br />
For many years, SpiderMonkey was written in C, and is gradually moving to C++. We still avoid many features such as run-time type information and virtual functions, but have come around to the glory of templates and namespaces relatively recently. Read the [[JavaScript:SpiderMonkey:C++ Coding Style|Coding Style]]. Do NOT read the portability guidelines, which I will not link to, since they are very out of date.<br />
<br />
=== Workflow ===<br />
<br />
Everything goes through bugzilla. We find a bug or have an idea, then submit it to bugzilla, then file patches to solve it. When it is solved, the patch is reviewed by team members, and is then committed to the [http://hg.mozilla.org/mozilla-central mozilla-central repository]. A link to the commit is then added as a comment to the bug.<br />
<br />
As well as committing to [http://hg.mozilla.org/mozilla-central mozilla-central], we also have the option of committing to [http://hg.mozilla.org/integration/mozilla-inbound mozilla-inbound], which is automatically merged to mozilla-central by a Sheriff. This exempts us from watching [http://tbpl.mozilla.org tinderbox] to check for errors in our patches, and commits are automatically backed out if errors are found.<br />
<br />
==== Sample Workflows ====<br />
<br />
[http://blog.mozilla.com/nnethercote/2009/07/27/how-i-work-on-tracemonkey/ Nicholas Nethercote: How I work on Tracemonkey]<br />
<br />
=== Policy ===<br />
<br />
The following docs are for the Mozilla project, and differ ever so slightly from what you should do for SpiderMonkey. For example, you should find reviewers in #jsapi rather than #developers.<br />
<br />
[http://www.mozilla.org/hacking/committer/ How to get commit access]<br />
<br />
[https://developer.mozilla.org/en/Creating_a_patch How to make patches]<br />
<br />
[https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch Submitting a patch]<br />
<br />
[https://developer.mozilla.org/en/Supported_build_configurations Supported Platforms]<br />
<br />
==== .hgrc file ====<br />
<br />
This .hgrc file contains a lot of the wisdom distilled through the wiki:<br />
<br />
[extensions]<br />
mq =<br />
<br />
[ui]<br />
username = First Last <email@domain.tld><br />
<br />
[alias]<br />
qfulldiff = diff --rev qparent:.<br />
<br />
[defaults]<br />
diff = -p -U 8<br />
qdiff = -p -U 8<br />
qnew = -U<br />
commit = -v<br />
<br />
[diff]<br />
git = true<br />
showfunc = true<br />
unified = 8<br />
<br />
[paths]<br />
try = ssh://email@domain.tld@hg.mozilla.org/try/<br />
<br />
=== Try server ===<br />
<br />
Often, you may be a little wary of breaking things. Mozilla has a [[Build:TryServer|Try Server]] where you can send a patch, and it'll be built and tested on tons of machines, which report to [http://tbpl.mozilla.org/?tree=Try TBPL]. Although you don't have [https://www.mozilla.org/hacking/commit-access-policy/ access] to TryServer just yet, you can get someone else to push it there for you. Just attach a patch to your bug, and ask in a comment, or on [irc://irc.mozilla.org/#jsapi #jsapi]. To be able to push to try-server yourself, you will need "level 1" access, which you can [https://www.mozilla.org/hacking/commit-access-policy/ request] once you've contributed a patch or two.<br />
<br />
=== Mercurial Queues ===<br />
<br />
Since most of our lives revolve around patches, and we use Mercurial, nearly everybody uses Mercurial queues.<br />
<br />
Queues are based on the idea of patch management. Each queue consists of a series of patches, applied sequentially. The aim of the game is to split potential commits into simple, bite-sized chunks which are easy to review. This also makes it simple to experiment without polluting your existing work on a bug, to spin parts off into new bugs, and to rapidly apply and unapply patches (as demonstrated in the tutorial above).<br />
<br />
==== Enabling ====<br />
<br />
Add the following snippet to your .hgrc file to enable MQ<br />
<br />
[extensions]<br />
mq =<br />
<br />
==== Example MQ workflow ====<br />
<br />
Clone the repository to deal with a bug:<br />
<br />
hg clone http://hg.mozilla.org/mozilla-central<br />
<br />
Initialize your queue:<br />
<br />
hg qinit -c<br />
<br />
Create a new patch, with some name:<br />
<br />
hg qnew first_attempt<br />
<br />
Work on the patch, try to fix the bug, test, compile, etc.<br />
<br />
Refresh (save your work into the patch):<br />
<br />
hg qrefresh<br />
<br />
Repeat a few times.<br />
<br />
Rename the patch (because your first name wasn't appliable):<br />
<br />
hg qrename refactor_the_whatsit<br />
<br />
Create a new patch to try a logically separate part of the same bug:<br />
<br />
hg qnew rip_out_the_old_thing<br />
<br />
Repeat the process a few times, until you have solved the problem. During this time, it can often be useful to go back and forth between patches:<br />
<br />
hg qpop # unapply a patch<br />
hg qpush # reapply a patch<br />
hg qpop -a # unapply all patches<br />
hg qpush -a # reapply all patches<br />
<br />
<br />
Combine all the patches into a single patch, which you submit to bugzilla:<br />
<br />
hg qpush -a<br />
hg qdiff --rev qparent:. > my_wonderful_patch.patch<br />
<br />
Commit the patches to your local patch repository, in case you make a mistake (You might do this periodically):<br />
<br />
hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's just for you"<br />
<br />
Go back to the old patches and fiddle with them based on feedback:<br />
<br />
hg qpop<br />
hg qrefresh<br />
etc<br />
<br />
There are some more complex techniques that we won't go into in detail. You can enable only some patches using qguard and qselect, and you can reorder the patches by manually editing the .hg/patches/series file. But be careful!<br />
<br />
[[Category:New Contributor Landing Page]]</div>Jandem