Backout the bug 754202 backout due to orange.
authorRyan VanderMeulen <ryanvm@gmail.com>
Sun, 10 Jun 2012 19:37:47 -0400
changeset 101615 c39d36167b99139c4e39c2180f21cebae7ea6dbd
parent 101614 b3e69a65a7b70c5d8d00611a7b714408b9d6a5a9
child 101616 b7f3236f127b6f8d455efa6ad75f82a3a3c5f3d4
push id191
push userlsblakk@mozilla.com
push dateFri, 05 Oct 2012 17:12:53 +0000
treeherdermozilla-release@ddb22ac6c03b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs754202
milestone16.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backout the bug 754202 backout due to orange.
accessible/public/nsIAccessible.idl
accessible/src/atk/HTMLTableAccessibleWrap.h
accessible/src/atk/XULListboxAccessibleWrap.h
accessible/src/atk/XULMenuAccessibleWrap.h
accessible/src/atk/XULTreeGridAccessibleWrap.h
accessible/src/atk/nsHTMLTableAccessibleWrap.h
accessible/src/atk/nsXULListboxAccessibleWrap.h
accessible/src/atk/nsXULMenuAccessibleWrap.h
accessible/src/atk/nsXULTreeGridAccessibleWrap.h
accessible/src/base/TextAttrs.cpp
accessible/src/base/TextAttrs.h
accessible/src/base/nsARIAMap.cpp
accessible/src/base/nsARIAMap.h
accessible/src/base/nsAccUtils.cpp
accessible/src/base/nsAccUtils.h
accessible/src/base/nsAccessibilityService.cpp
accessible/src/base/nsAccessibilityService.h
accessible/src/generic/Accessible.cpp
accessible/src/generic/Accessible.h
accessible/src/generic/DocAccessible.cpp
accessible/src/generic/HyperTextAccessible.cpp
accessible/src/generic/RootAccessible.cpp
accessible/src/generic/RootAccessible.h
accessible/src/generic/TextLeafAccessible.cpp
accessible/src/generic/TextLeafAccessible.h
accessible/src/html/HTMLTableAccessible.cpp
accessible/src/html/HTMLTableAccessible.h
accessible/src/html/Makefile.in
accessible/src/html/nsHTMLTableAccessible.cpp
accessible/src/html/nsHTMLTableAccessible.h
accessible/src/mac/AccessibleWrap.h
accessible/src/mac/HTMLTableAccessibleWrap.h
accessible/src/mac/XULListboxAccessibleWrap.h
accessible/src/mac/XULMenuAccessibleWrap.h
accessible/src/mac/XULTreeGridAccessibleWrap.h
accessible/src/mac/mozActionElements.mm
accessible/src/mac/nsHTMLTableAccessibleWrap.h
accessible/src/mac/nsXULListboxAccessibleWrap.h
accessible/src/mac/nsXULMenuAccessibleWrap.h
accessible/src/mac/nsXULTreeGridAccessibleWrap.h
accessible/src/msaa/AccessibleWrap.h
accessible/src/msaa/HTMLTableAccessibleWrap.cpp
accessible/src/msaa/HTMLTableAccessibleWrap.h
accessible/src/msaa/Makefile.in
accessible/src/msaa/XULListboxAccessibleWrap.cpp
accessible/src/msaa/XULListboxAccessibleWrap.h
accessible/src/msaa/XULMenuAccessibleWrap.cpp
accessible/src/msaa/XULMenuAccessibleWrap.h
accessible/src/msaa/XULTreeGridAccessibleWrap.cpp
accessible/src/msaa/XULTreeGridAccessibleWrap.h
accessible/src/msaa/nsHTMLTableAccessibleWrap.cpp
accessible/src/msaa/nsHTMLTableAccessibleWrap.h
accessible/src/msaa/nsXULListboxAccessibleWrap.cpp
accessible/src/msaa/nsXULListboxAccessibleWrap.h
accessible/src/msaa/nsXULMenuAccessibleWrap.cpp
accessible/src/msaa/nsXULMenuAccessibleWrap.h
accessible/src/msaa/nsXULTreeGridAccessibleWrap.cpp
accessible/src/msaa/nsXULTreeGridAccessibleWrap.h
accessible/src/other/HTMLTableAccessibleWrap.h
accessible/src/other/XULListboxAccessibleWrap.h
accessible/src/other/XULMenuAccessibleWrap.h
accessible/src/other/XULTreeGridAccessibleWrap.h
accessible/src/other/nsHTMLTableAccessibleWrap.h
accessible/src/other/nsXULListboxAccessibleWrap.h
accessible/src/other/nsXULMenuAccessibleWrap.h
accessible/src/other/nsXULTreeGridAccessibleWrap.h
accessible/src/xul/Makefile.in
accessible/src/xul/XULAlertAccessible.cpp
accessible/src/xul/XULAlertAccessible.h
accessible/src/xul/XULColorPickerAccessible.cpp
accessible/src/xul/XULColorPickerAccessible.h
accessible/src/xul/XULComboboxAccessible.cpp
accessible/src/xul/XULComboboxAccessible.h
accessible/src/xul/XULElementAccessibles.cpp
accessible/src/xul/XULElementAccessibles.h
accessible/src/xul/XULFormControlAccessible.cpp
accessible/src/xul/XULListboxAccessible.cpp
accessible/src/xul/XULListboxAccessible.h
accessible/src/xul/XULMenuAccessible.cpp
accessible/src/xul/XULMenuAccessible.h
accessible/src/xul/XULSliderAccessible.cpp
accessible/src/xul/XULSliderAccessible.h
accessible/src/xul/XULTabAccessible.cpp
accessible/src/xul/XULTabAccessible.h
accessible/src/xul/XULTreeAccessible.cpp
accessible/src/xul/XULTreeAccessible.h
accessible/src/xul/XULTreeGridAccessible.cpp
accessible/src/xul/XULTreeGridAccessible.h
accessible/src/xul/nsXULAlertAccessible.cpp
accessible/src/xul/nsXULAlertAccessible.h
accessible/src/xul/nsXULColorPickerAccessible.cpp
accessible/src/xul/nsXULColorPickerAccessible.h
accessible/src/xul/nsXULComboboxAccessible.cpp
accessible/src/xul/nsXULComboboxAccessible.h
accessible/src/xul/nsXULListboxAccessible.cpp
accessible/src/xul/nsXULListboxAccessible.h
accessible/src/xul/nsXULMenuAccessible.cpp
accessible/src/xul/nsXULMenuAccessible.h
accessible/src/xul/nsXULSliderAccessible.cpp
accessible/src/xul/nsXULSliderAccessible.h
accessible/src/xul/nsXULTabAccessible.cpp
accessible/src/xul/nsXULTabAccessible.h
accessible/src/xul/nsXULTextAccessible.cpp
accessible/src/xul/nsXULTextAccessible.h
accessible/src/xul/nsXULTreeAccessible.cpp
accessible/src/xul/nsXULTreeAccessible.h
accessible/src/xul/nsXULTreeGridAccessible.cpp
accessible/src/xul/nsXULTreeGridAccessible.h
accessible/tests/mochitest/actions/test_keys.html
accessible/tests/mochitest/actions/test_keys_menu.xul
accessible/tests/mochitest/attributes/test_text.html
accessible/tests/mochitest/events/Makefile.in
accessible/tests/mochitest/events/test_docload_aria.html
accessible/tests/mochitest/role.js
accessible/tests/mochitest/role/test_aria.html
accessible/tests/mochitest/table/test_layoutguess.html
b2g/Makefile.in
b2g/app/b2g.js
b2g/chrome/content/shell.js
browser/app/Makefile.in
browser/app/blocklist.xml
browser/app/profile/firefox.js
browser/base/content/browser-tabview.js
browser/base/content/browser.js
browser/base/content/pageinfo/pageInfo.css
browser/base/content/test/Makefile.in
browser/base/content/test/browser_pluginnotification.js
browser/base/content/test/head.js
browser/base/content/test/plugin_bug749455.html
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_lastpbcontextexited.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_ui.js
browser/components/privatebrowsing/test/browser/head.js
browser/components/shell/src/nsWindowsShellService.cpp
browser/components/shell/src/nsWindowsShellService.h
browser/components/tabview/test/browser_tabview_bug625195.js
browser/components/tabview/test/browser_tabview_bug626525.js
browser/components/tabview/test/browser_tabview_bug641802.js
browser/devtools/debugger/debugger-controller.js
browser/devtools/debugger/debugger-view.js
browser/devtools/debugger/test/browser_dbg_scripts-searching-01.js
browser/devtools/debugger/test/browser_dbg_scripts-searching-02.js
browser/devtools/styleeditor/StyleEditor.jsm
browser/devtools/styleeditor/test/browser_styleeditor_new.js
browser/devtools/styleeditor/test/simple.html
browser/installer/Makefile.in
browser/installer/package-manifest.in
browser/installer/removed-files.in
browser/installer/windows/nsis/installer.nsi
browser/locales/en-US/chrome/browser/browser.properties
build/autoconf/compiler-opts.m4
caps/idl/nsIPrincipal.idl
caps/idl/nsIScriptSecurityManager.idl
caps/include/nsPrincipal.h
caps/include/nsScriptSecurityManager.h
caps/src/nsPrincipal.cpp
caps/src/nsScriptSecurityManager.cpp
config/autoconf.mk.in
config/config.mk
config/expandlibs.py
config/expandlibs_deps.py
config/expandlibs_exec.py
config/expandlibs_gen.py
config/rules.mk
config/tests/unit-expandlibs.py
configure.in
content/base/public/Element.h
content/base/public/nsContentUtils.h
content/base/public/nsIContentIterator.h
content/base/public/nsISelection.idl
content/base/public/nsISelectionPrivate.idl
content/base/public/nsIXMLHttpRequest.idl
content/base/src/FileIOObject.cpp
content/base/src/nsContentIterator.cpp
content/base/src/nsContentList.cpp
content/base/src/nsContentUtils.cpp
content/base/src/nsDOMFileReader.cpp
content/base/src/nsDocument.cpp
content/base/src/nsDocument.h
content/base/src/nsEventSource.cpp
content/base/src/nsGenericDOMDataNode.cpp
content/base/src/nsGenericElement.cpp
content/base/src/nsGenericElement.h
content/base/src/nsGkAtomList.h
content/base/src/nsInProcessTabChildGlobal.cpp
content/base/src/nsObjectLoadingContent.cpp
content/base/src/nsRange.cpp
content/base/src/nsScriptLoader.cpp
content/base/src/nsWebSocket.cpp
content/base/src/nsXMLHttpRequest.cpp
content/base/src/nsXMLHttpRequest.h
content/base/test/Makefile.in
content/base/test/TestNativeXMLHttpRequest.cpp
content/base/test/file_XHR_anon.sjs
content/base/test/test_XHR_anon.html
content/base/test/test_XHR_parameters.html
content/base/test/test_XHR_system.html
content/base/test/test_bug518104.html
content/canvas/src/ImageData.cpp
content/canvas/src/WebGLContextUtils.cpp
content/canvas/test/test_canvas.html
content/canvas/test/webgl/Makefile.in
content/canvas/test/webgl/failing_tests_android.txt
content/canvas/test/webgl/test_webgl_conformance_test_suite.html
content/events/public/Makefile.in
content/events/public/nsIPrivateDOMEvent.h
content/events/src/nsAsyncDOMEvent.cpp
content/events/src/nsContentEventHandler.cpp
content/events/src/nsDOMEvent.cpp
content/events/src/nsDOMEvent.h
content/events/src/nsDOMMessageEvent.cpp
content/events/src/nsDOMNotifyPaintEvent.cpp
content/events/src/nsDOMNotifyPaintEvent.h
content/events/src/nsDOMScrollAreaEvent.cpp
content/events/src/nsDOMScrollAreaEvent.h
content/events/src/nsDOMUIEvent.cpp
content/events/src/nsDOMUIEvent.h
content/events/src/nsEventDispatcher.cpp
content/events/src/nsEventListenerManager.cpp
content/events/src/nsEventListenerService.cpp
content/events/src/nsEventStateManager.cpp
content/events/test/Makefile.in
content/events/test/test_bug742376.html
content/html/content/public/nsIFormControl.h
content/html/content/src/nsGenericHTMLElement.cpp
content/html/content/src/nsGenericHTMLElement.h
content/html/content/src/nsGenericHTMLFrameElement.cpp
content/html/content/src/nsHTMLFieldSetElement.cpp
content/html/content/src/nsHTMLFormElement.cpp
content/html/content/src/nsHTMLInputElement.cpp
content/html/content/src/nsHTMLLabelElement.cpp
content/html/content/src/nsHTMLLabelElement.h
content/html/content/src/nsHTMLLinkElement.cpp
content/html/content/src/nsHTMLMediaElement.cpp
content/html/content/src/nsHTMLMeterElement.cpp
content/html/content/src/nsHTMLSelectElement.cpp
content/html/content/src/nsHTMLTextAreaElement.cpp
content/html/content/src/nsTextEditorState.cpp
content/html/content/test/Makefile.in
content/html/content/test/forms/Makefile.in
content/html/content/test/forms/test_form_attribute-1.html
content/html/content/test/forms/test_meter_element.html
content/html/content/test/forms/test_meter_pseudo-classes.html
content/html/content/test/forms/test_progress_element.html
content/html/content/test/test_bug657938.html
content/html/content/test/test_bug660238.html
content/media/MediaEngineDefault.cpp
content/media/test/Makefile.in
content/media/test/manifest.js
content/smil/nsSMILCSSProperty.cpp
content/svg/content/src/nsSVGElement.cpp
content/svg/content/src/nsSVGSVGElement.cpp
content/xbl/src/nsXBLBinding.cpp
content/xbl/src/nsXBLBinding.h
content/xbl/src/nsXBLPrototypeHandler.cpp
content/xbl/src/nsXBLWindowKeyHandler.cpp
content/xul/content/src/nsXULElement.cpp
content/xul/document/src/nsXULDocument.cpp
docshell/base/nsDocShell.cpp
docshell/base/nsDocShell.h
dom/Makefile.in
dom/apps/src/Webapps.js
dom/base/BrowserElementChild.js
dom/base/BrowserElementParent.js
dom/base/BrowserElementParent.manifest
dom/base/DOMRequest.cpp
dom/base/Makefile.in
dom/base/Navigator.cpp
dom/base/nsDOMClassInfo.cpp
dom/base/nsDOMClassInfoClasses.h
dom/base/nsDOMWindowUtils.cpp
dom/base/nsFocusManager.cpp
dom/base/nsGlobalWindow.cpp
dom/base/nsGlobalWindow.h
dom/base/nsJSEnvironment.cpp
dom/base/nsWindowRoot.cpp
dom/battery/nsIDOMBatteryManager.idl
dom/bindings/BindingUtils.h
dom/bindings/Bindings.conf
dom/bindings/parser/tests/test_error_colno.py
dom/bindings/parser/tests/test_error_lineno.py
dom/bindings/test/Makefile.in
dom/browser-element/BrowserElementChild.js
dom/browser-element/BrowserElementParent.js
dom/browser-element/BrowserElementParent.manifest
dom/browser-element/BrowserElementPromptService.jsm
dom/browser-element/Makefile.in
dom/browser-element/mochitest/Makefile.in
dom/browser-element/mochitest/browserElementTestHelpers.js
dom/browser-element/mochitest/browserElement_Alert.js
dom/browser-element/mochitest/browserElement_Close.js
dom/browser-element/mochitest/browserElement_DataURI.js
dom/browser-element/mochitest/browserElement_GetScreenshot.js
dom/browser-element/mochitest/browserElement_Iconchange.js
dom/browser-element/mochitest/browserElement_KeyEvents.js
dom/browser-element/mochitest/browserElement_LoadEvents.js
dom/browser-element/mochitest/browserElement_PromptCheck.js
dom/browser-element/mochitest/browserElement_PromptConfirm.js
dom/browser-element/mochitest/browserElement_SetVisible.js
dom/browser-element/mochitest/browserElement_Titlechange.js
dom/browser-element/mochitest/browserElement_TopBarrier.js
dom/browser-element/mochitest/file_empty.html
dom/browser-element/mochitest/file_focus.html
dom/browser-element/mochitest/test_browserElement_NoAttr.html
dom/browser-element/mochitest/test_browserElement_NoPref.html
dom/browser-element/mochitest/test_browserElement_NoWhitelist.html
dom/browser-element/mochitest/test_browserElement_inproc_Alert.html
dom/browser-element/mochitest/test_browserElement_inproc_Close.html
dom/browser-element/mochitest/test_browserElement_inproc_DataURI.html
dom/browser-element/mochitest/test_browserElement_inproc_GetScreenshot.html
dom/browser-element/mochitest/test_browserElement_inproc_Iconchange.html
dom/browser-element/mochitest/test_browserElement_inproc_KeyEvents.html
dom/browser-element/mochitest/test_browserElement_inproc_LoadEvents.html
dom/browser-element/mochitest/test_browserElement_inproc_PromptCheck.html
dom/browser-element/mochitest/test_browserElement_inproc_PromptConfirm.html
dom/browser-element/mochitest/test_browserElement_inproc_SetVisible.html
dom/browser-element/mochitest/test_browserElement_inproc_Titlechange.html
dom/browser-element/mochitest/test_browserElement_inproc_TopBarrier.html
dom/browser-element/mochitest/test_browserElement_oop_Alert.html
dom/browser-element/mochitest/test_browserElement_oop_Close.html
dom/browser-element/mochitest/test_browserElement_oop_DataURI.html
dom/browser-element/mochitest/test_browserElement_oop_GetScreenshot.html
dom/browser-element/mochitest/test_browserElement_oop_Iconchange.html
dom/browser-element/mochitest/test_browserElement_oop_KeyEvents.html
dom/browser-element/mochitest/test_browserElement_oop_LoadEvents.html
dom/browser-element/mochitest/test_browserElement_oop_PromptCheck.html
dom/browser-element/mochitest/test_browserElement_oop_PromptConfirm.html
dom/browser-element/mochitest/test_browserElement_oop_SetVisible.html
dom/browser-element/mochitest/test_browserElement_oop_Titlechange.html
dom/browser-element/mochitest/test_browserElement_oop_TopBarrier.html
dom/file/FileHelper.cpp
dom/file/FileRequest.cpp
dom/imptests/failures/html/tests/submission/Opera/microdata/test_001.html.json
dom/indexedDB/IDBCursor.cpp
dom/indexedDB/IDBEvents.cpp
dom/indexedDB/IDBFactory.cpp
dom/indexedDB/IDBIndex.cpp
dom/indexedDB/IDBKeyRange.cpp
dom/indexedDB/IDBObjectStore.cpp
dom/indexedDB/IDBRequest.cpp
dom/indexedDB/IDBWrapperCache.cpp
dom/indexedDB/IndexedDatabaseManager.cpp
dom/indexedDB/nsIIDBVersionChangeEvent.idl
dom/indexedDB/test/unit/test_cursors.js
dom/interfaces/apps/nsIDOMApplicationRegistry.idl
dom/interfaces/base/nsIDOMScreen.idl
dom/interfaces/canvas/nsIDOMWebGLRenderingContext.idl
dom/interfaces/contacts/nsIDOMContactManager.idl
dom/interfaces/events/nsIDOMAnimationEvent.idl
dom/interfaces/events/nsIDOMBeforeUnloadEvent.idl
dom/interfaces/events/nsIDOMCloseEvent.idl
dom/interfaces/events/nsIDOMCommandEvent.idl
dom/interfaces/events/nsIDOMCompositionEvent.idl
dom/interfaces/events/nsIDOMCustomEvent.idl
dom/interfaces/events/nsIDOMDataContainerEvent.idl
dom/interfaces/events/nsIDOMDeviceLightEvent.idl
dom/interfaces/events/nsIDOMDeviceMotionEvent.idl
dom/interfaces/events/nsIDOMDeviceOrientationEvent.idl
dom/interfaces/events/nsIDOMDeviceProximityEvent.idl
dom/interfaces/events/nsIDOMDragEvent.idl
dom/interfaces/events/nsIDOMEvent.idl
dom/interfaces/events/nsIDOMHashChangeEvent.idl
dom/interfaces/events/nsIDOMKeyEvent.idl
dom/interfaces/events/nsIDOMMessageEvent.idl
dom/interfaces/events/nsIDOMMouseEvent.idl
dom/interfaces/events/nsIDOMMouseScrollEvent.idl
dom/interfaces/events/nsIDOMMozTouchEvent.idl
dom/interfaces/events/nsIDOMMutationEvent.idl
dom/interfaces/events/nsIDOMNotifyAudioAvailableEvent.idl
dom/interfaces/events/nsIDOMNotifyPaintEvent.idl
dom/interfaces/events/nsIDOMPageTransitionEvent.idl
dom/interfaces/events/nsIDOMPopStateEvent.idl
dom/interfaces/events/nsIDOMPopupBlockedEvent.idl
dom/interfaces/events/nsIDOMProgressEvent.idl
dom/interfaces/events/nsIDOMScrollAreaEvent.idl
dom/interfaces/events/nsIDOMSimpleGestureEvent.idl
dom/interfaces/events/nsIDOMSmartCardEvent.idl
dom/interfaces/events/nsIDOMTouchEvent.idl
dom/interfaces/events/nsIDOMTransitionEvent.idl
dom/interfaces/events/nsIDOMUIEvent.idl
dom/interfaces/events/nsIDOMUserProximityEvent.idl
dom/interfaces/html/nsIDOMHTMLMeterElement.idl
dom/interfaces/load-save/nsIDOMLSProgressEvent.idl
dom/interfaces/settings/nsIDOMSettingsManager.idl
dom/interfaces/smil/nsIDOMTimeEvent.idl
dom/interfaces/storage/nsIDOMStorageEvent.idl
dom/interfaces/svg/nsIDOMSVGEvent.idl
dom/interfaces/svg/nsIDOMSVGZoomEvent.idl
dom/interfaces/xul/nsIDOMXULCommandEvent.idl
dom/ipc/TabChild.cpp
dom/ipc/TabChild.h
dom/ipc/TabMessageUtils.h
dom/ipc/TabParent.cpp
dom/ipc/jar.mn
dom/media/MediaManager.cpp
dom/media/MediaManager.h
dom/network/interfaces/Makefile.in
dom/network/interfaces/nsIDOMMobileConnection.idl
dom/network/interfaces/nsIDOMUSSDReceivedEvent.idl
dom/network/interfaces/nsIMobileConnectionProvider.idl
dom/network/src/Makefile.in
dom/network/src/MobileConnection.cpp
dom/network/src/MobileConnection.h
dom/network/src/USSDReceivedEvent.cpp
dom/network/src/USSDReceivedEvent.h
dom/plugins/base/nsPluginInstanceOwner.cpp
dom/settings/SettingsManager.js
dom/settings/SettingsManager.manifest
dom/settings/tests/test_settings_basics.html
dom/sms/interfaces/nsIDOMSmsEvent.idl
dom/sms/interfaces/nsIDOMSmsManager.idl
dom/sms/interfaces/nsIDOMSmsRequest.idl
dom/sms/src/SmsRequest.cpp
dom/sms/src/SmsRequest.h
dom/src/events/nsJSEventListener.cpp
dom/src/json/nsJSON.cpp
dom/src/notification/nsDesktopNotification.cpp
dom/src/notification/nsDesktopNotification.h
dom/src/offline/nsDOMOfflineResourceList.cpp
dom/system/gonk/RILContentHelper.js
dom/system/gonk/RadioInterfaceLayer.js
dom/system/gonk/ril_worker.js
dom/system/nsDeviceSensors.cpp
dom/telephony/Telephony.cpp
dom/telephony/nsIDOMCallEvent.idl
dom/tests/mochitest/Makefile.in
dom/tests/mochitest/browser-frame/Makefile.in
dom/tests/mochitest/browser-frame/browserFrameHelpers.js
dom/tests/mochitest/browser-frame/file_empty.html
dom/tests/mochitest/browser-frame/file_focus.html
dom/tests/mochitest/browser-frame/test_browserFrame1.html
dom/tests/mochitest/browser-frame/test_browserFrame10.html
dom/tests/mochitest/browser-frame/test_browserFrame2.html
dom/tests/mochitest/browser-frame/test_browserFrame3.html
dom/tests/mochitest/browser-frame/test_browserFrame4.html
dom/tests/mochitest/browser-frame/test_browserFrame5.html
dom/tests/mochitest/browser-frame/test_browserFrame6.html
dom/tests/mochitest/browser-frame/test_browserFrame7.html
dom/tests/mochitest/browser-frame/test_browserFrame8.html
dom/tests/mochitest/browser-frame/test_browserFrame9.html
dom/tests/mochitest/browser-frame/test_browserFrame_keyEvents.html
dom/tests/mochitest/webapps/test_list_api.xul
dom/webidl/XMLHttpRequest.webidl
dom/wifi/nsIWifi.idl
dom/workers/XMLHttpRequest.cpp
dom/workers/XMLHttpRequest.h
editor/libeditor/base/nsEditRules.h
editor/libeditor/base/nsEditor.cpp
editor/libeditor/base/nsEditor.h
editor/libeditor/html/crashtests/761861.html
editor/libeditor/html/crashtests/crashtests.list
editor/libeditor/html/nsHTMLAbsPosition.cpp
editor/libeditor/html/nsHTMLDataTransfer.cpp
editor/libeditor/html/nsHTMLEditRules.cpp
editor/libeditor/html/nsHTMLEditRules.h
editor/libeditor/html/nsHTMLEditor.cpp
editor/libeditor/html/nsHTMLEditor.h
editor/libeditor/html/nsHTMLEditorStyle.cpp
editor/libeditor/text/nsPlaintextDataTransfer.cpp
editor/libeditor/text/nsPlaintextEditor.cpp
editor/libeditor/text/nsPlaintextEditor.h
editor/libeditor/text/nsTextEditRules.cpp
editor/libeditor/text/nsTextEditRules.h
editor/libeditor/text/tests/Makefile.in
editor/libeditor/text/tests/test_bug757771.html
embedding/browser/webBrowser/Makefile.in
embedding/browser/webBrowser/nsDocShellTreeOwner.cpp
embedding/browser/webBrowser/nsIEmbeddingSiteWindow.idl
embedding/browser/webBrowser/nsIEmbeddingSiteWindow2.idl
embedding/components/windowwatcher/src/nsAutoWindowStateHelper.cpp
embedding/tests/winEmbed/WebBrowserChrome.cpp
gfx/layers/Layers.h
gfx/ots/README.mozilla
gfx/ots/src/ots.cc
hal/gonk/GonkSensor.cpp
image/src/RasterImage.cpp
intl/locale/src/PluralForm.jsm
intl/locale/tests/unit/test_pluralForm.js
ipc/chromium/src/base/message_pump_qt.cc
ipc/chromium/src/base/time_win.cc
ipc/ipdl/Makefile.in
ipc/ipdl/ipdl.py
ipc/ipdl/ipdl/__init__.py
ipc/ipdl/ipdl/ast.py
ipc/ipdl/ipdl/cxx/ast.py
ipc/ipdl/ipdl/lower.py
ipc/ipdl/ipdl/parser.py
ipc/ipdl/ipdl/type.py
ipc/ipdl/test/cxx/PTestDataStructures.ipdl
ipc/ipdl/test/cxx/PTestDataStructuresCommon.ipdlh
ipc/ipdl/test/cxx/PTestDataStructuresSub.ipdl
ipc/ipdl/test/cxx/genIPDLUnitTests.py
ipc/ipdl/test/cxx/ipdl.mk
ipc/ipdl/test/ipdl/Makefile.in
ipc/ipdl/test/ipdl/error/noProtocolInHeader.ipdlh
ipc/ipdl/test/ipdl/ok/header.ipdlh
ipc/ipdl/test/ipdl/ok/headerProto.ipdl
ipc/testshell/XPCShellEnvironment.cpp
js/src/build/autoconf/compiler-opts.m4
js/src/config/autoconf.mk.in
js/src/config/config.mk
js/src/config/expandlibs.py
js/src/config/expandlibs_deps.py
js/src/config/expandlibs_exec.py
js/src/config/expandlibs_gen.py
js/src/config/rules.mk
js/src/configure.in
js/src/frontend/BytecodeCompiler.cpp
js/src/frontend/BytecodeEmitter.cpp
js/src/frontend/ParseNode-inl.h
js/src/frontend/ParseNode.h
js/src/frontend/Parser.cpp
js/src/frontend/TreeContext-inl.h
js/src/frontend/TreeContext.cpp
js/src/frontend/TreeContext.h
js/src/gc/Memory.cpp
js/src/jit-test/tests/arguments/e4x-descendants-with-arguments.js
js/src/jit-test/tests/basic/bug557168-1.js
js/src/jit-test/tests/basic/bug557168-2.js
js/src/jit-test/tests/basic/bug557168-3.js
js/src/jit-test/tests/basic/bug557168.js
js/src/jit-test/tests/basic/bug569843.js
js/src/jit-test/tests/basic/bug574280.js
js/src/jit-test/tests/basic/bug596502-version.js
js/src/jit-test/tests/basic/bug605200.js
js/src/jit-test/tests/basic/bug613151.js
js/src/jit-test/tests/basic/bug632206.js
js/src/jit-test/tests/basic/bug651966.js
js/src/jit-test/tests/basic/bug665812.js
js/src/jit-test/tests/basic/bug672153.js
js/src/jit-test/tests/basic/bug700799.js
js/src/jit-test/tests/basic/bug716713.js
js/src/jit-test/tests/basic/bug731724.js
js/src/jit-test/tests/basic/bug731745.js
js/src/jit-test/tests/basic/bug737251.js
js/src/jit-test/tests/basic/bug753885-1.js
js/src/jit-test/tests/basic/bug753885-2.js
js/src/jit-test/tests/basic/proxy-assign-inherited.js
js/src/jit-test/tests/basic/testBug705423.js
js/src/jit-test/tests/basic/testBug761863.js
js/src/jit-test/tests/basic/testBug7618864.js
js/src/jit-test/tests/basic/testBug762105.js
js/src/jit-test/tests/basic/testBug762450.js
js/src/jit-test/tests/basic/testBug762473.js
js/src/jit-test/tests/basic/testXMLPropertyNames.js
js/src/jit-test/tests/e4x/bug557168-1.js
js/src/jit-test/tests/e4x/bug557168-2.js
js/src/jit-test/tests/e4x/bug557168-3.js
js/src/jit-test/tests/e4x/bug557168.js
js/src/jit-test/tests/e4x/bug569843.js
js/src/jit-test/tests/e4x/bug574280.js
js/src/jit-test/tests/e4x/bug596502-version.js
js/src/jit-test/tests/e4x/bug605200.js
js/src/jit-test/tests/e4x/bug613151.js
js/src/jit-test/tests/e4x/bug632206.js
js/src/jit-test/tests/e4x/bug651966.js
js/src/jit-test/tests/e4x/bug665812.js
js/src/jit-test/tests/e4x/bug672153.js
js/src/jit-test/tests/e4x/bug700799.js
js/src/jit-test/tests/e4x/bug716713.js
js/src/jit-test/tests/e4x/bug731724.js
js/src/jit-test/tests/e4x/bug731745.js
js/src/jit-test/tests/e4x/bug737251.js
js/src/jit-test/tests/e4x/bug753885-1.js
js/src/jit-test/tests/e4x/bug753885-2.js
js/src/jit-test/tests/e4x/e4x-descendants-with-arguments.js
js/src/jit-test/tests/e4x/testXMLPropertyNames.js
js/src/jsapi.h
js/src/jsclone.cpp
js/src/jsdate.cpp
js/src/jsgc.cpp
js/src/jsinfer.cpp
js/src/jsinterp.cpp
js/src/jsiter.cpp
js/src/jsproxy.cpp
js/src/jsreflect.cpp
js/src/jsscript.cpp
js/src/jsscript.h
js/src/methodjit/Compiler.cpp
js/src/methodjit/FastOps.cpp
js/src/methodjit/InvokeHelpers.cpp
js/src/tests/ecma_5/Date/constructor-one-argument.js
js/src/tests/js1_8_5/extensions/reflect-parse.js
js/src/vm/ArgumentsObject.cpp
js/src/vm/Debugger.cpp
js/src/vm/ObjectImpl.cpp
js/src/vm/Stack.cpp
js/src/vm/Stack.h
js/src/vm/Xdr.h
js/xpconnect/shell/xpcshell.cpp
js/xpconnect/src/XPCComponents.cpp
js/xpconnect/src/XPCWrappedJSClass.cpp
js/xpconnect/src/dictionary_helper_gen.conf
js/xpconnect/src/dom_quickstubs.qsconf
js/xpconnect/src/nsXPConnect.cpp
js/xpconnect/src/xpcprivate.h
js/xpconnect/tests/unit/test_allowedDomains.js
js/xpconnect/tests/unit/test_allowedDomainsXHR.js
js/xpconnect/tests/unit/xpcshell.ini
js/xpconnect/wrappers/CrossOriginWrapper.cpp
js/xpconnect/wrappers/CrossOriginWrapper.h
js/xpconnect/wrappers/WrapperFactory.cpp
layout/base/FrameLayerBuilder.cpp
layout/base/nsBidiPresUtils.cpp
layout/base/nsCSSRendering.cpp
layout/base/nsDisplayItemTypes.h
layout/base/nsDisplayList.cpp
layout/base/nsDisplayList.h
layout/base/nsDocumentViewer.cpp
layout/base/nsLayoutUtils.cpp
layout/base/nsLayoutUtils.h
layout/base/nsPresContext.cpp
layout/base/nsPresShell.cpp
layout/build/nsLayoutModule.cpp
layout/forms/nsComboboxControlFrame.cpp
layout/forms/nsListControlFrame.cpp
layout/forms/nsMeterFrame.cpp
layout/forms/nsMeterFrame.h
layout/forms/nsTextControlFrame.cpp
layout/forms/nsTextControlFrame.h
layout/generic/Makefile.in
layout/generic/Selection.h
layout/generic/nsFontInflationData.cpp
layout/generic/nsFontInflationData.h
layout/generic/nsFrameSelection.h
layout/generic/nsGfxScrollFrame.cpp
layout/generic/nsGfxScrollFrame.h
layout/generic/nsHTMLReflowState.cpp
layout/generic/nsIScrollableFrame.h
layout/generic/nsObjectFrame.cpp
layout/generic/nsSelection.cpp
layout/generic/nsSubDocumentFrame.cpp
layout/generic/nsTextFrame.h
layout/generic/nsTextFrameThebes.cpp
layout/generic/nsTypedSelection.h
layout/mathml/mathfontCMEX10.properties
layout/mathml/mathfontCMSY10.properties
layout/mathml/mathfontMTExtra.properties
layout/mathml/mathfontMath1.properties
layout/mathml/mathfontMath2.properties
layout/mathml/mathfontMath4.properties
layout/mathml/mathfontPUA.properties
layout/mathml/tests/maxwell.xml
layout/mathml/tests/mixing.xml
layout/mathml/tests/simple.xml
layout/mathml/tests/stretchy.xml
layout/mathml/tests/symbol.html
layout/mathml/tests/various.xml
layout/mathml/updateOperatorDictionary.pl
layout/reftests/bugs/758561-1-ref.html
layout/reftests/bugs/758561-1.html
layout/reftests/bugs/reftest.list
layout/reftests/font-inflation/threshold-scope-cell-1-ref.html
layout/reftests/font-inflation/threshold-scope-cell-1.html
layout/reftests/font-inflation/threshold-scope-cell-2-ref.html
layout/reftests/font-inflation/threshold-scope-cell-2.html
layout/reftests/position-dynamic-changes/mixed/mixed-dimentionA.html
layout/reftests/position-dynamic-changes/mixed/mixed-dimentionN.html
layout/style/nsRuleProcessorData.h
layout/xul/base/src/nsBoxFrame.cpp
layout/xul/base/src/nsMenuFrame.cpp
layout/xul/base/src/nsTextBoxFrame.cpp
layout/xul/base/src/nsXULPopupManager.cpp
layout/xul/base/src/nsXULTooltipListener.cpp
layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp
media/omx-plugin/OmxPlugin.cpp
mobile/android/app/mobile.js
mobile/android/base/AboutHomeContent.java
mobile/android/base/AndroidManifest.xml.in
mobile/android/base/AwesomeBar.java
mobile/android/base/AwesomeBarTabs.java
mobile/android/base/BrowserToolbar.java
mobile/android/base/Favicons.java
mobile/android/base/GeckoActionBar.java
mobile/android/base/GeckoApp.java
mobile/android/base/GeckoInputConnection.java
mobile/android/base/GeckoViewsFactory.java
mobile/android/base/Makefile.in
mobile/android/base/ProfileMigrator.java
mobile/android/base/PropertyAnimator.java
mobile/android/base/RemoteTabs.java
mobile/android/base/Tab.java
mobile/android/base/TabsPanel.java
mobile/android/base/TabsTray.java
mobile/android/base/android-sync-files.mk
mobile/android/base/db/LocalBrowserDB.java
mobile/android/base/gfx/LayerView.java
mobile/android/base/locales/en-US/android_strings.dtd
mobile/android/base/locales/en-US/sync_strings.dtd
mobile/android/base/resources/drawable-hdpi/address_bar_pressed_texture_port.png
mobile/android/base/resources/drawable-hdpi/ic_awesomebar_reader.png
mobile/android/base/resources/drawable-hdpi/ic_awesomebar_star.png
mobile/android/base/resources/drawable-hdpi/tab_selected.png
mobile/android/base/resources/drawable-hdpi/tabs_carat.png
mobile/android/base/resources/drawable-hdpi/tabs_more.png
mobile/android/base/resources/drawable-hdpi/tabs_plus.png
mobile/android/base/resources/drawable-land-hdpi-v14/address_bar_pressed_texture_land.png
mobile/android/base/resources/drawable-land-hdpi-v14/tabs_carat.png
mobile/android/base/resources/drawable-land-hdpi-v14/tabs_more.png
mobile/android/base/resources/drawable-land-hdpi-v14/tabs_plus.png
mobile/android/base/resources/drawable-land-mdpi-v14/address_bar_pressed_texture_land.png
mobile/android/base/resources/drawable-land-mdpi-v14/tabs_carat.png
mobile/android/base/resources/drawable-land-mdpi-v14/tabs_more.png
mobile/android/base/resources/drawable-land-mdpi-v14/tabs_plus.png
mobile/android/base/resources/drawable-land-v14/address_bar_pressed_bg.xml
mobile/android/base/resources/drawable-land-xhdpi-v14/address_bar_pressed_texture_land.png
mobile/android/base/resources/drawable-land-xhdpi-v14/tabs_carat.png
mobile/android/base/resources/drawable-land-xhdpi-v14/tabs_more.png
mobile/android/base/resources/drawable-land-xhdpi-v14/tabs_plus.png
mobile/android/base/resources/drawable-nodpi/tabs_tray_pressed_bg.png
mobile/android/base/resources/drawable-nodpi/tabs_tray_selected_bg.png
mobile/android/base/resources/drawable-sw600dp-hdpi/address_bar_pressed_texture_tablet.png
mobile/android/base/resources/drawable-sw600dp-hdpi/tabs_carat.png
mobile/android/base/resources/drawable-sw600dp-hdpi/tabs_more.png
mobile/android/base/resources/drawable-sw600dp-hdpi/tabs_plus.png
mobile/android/base/resources/drawable-sw600dp-mdpi/address_bar_pressed_texture_tablet.png
mobile/android/base/resources/drawable-sw600dp-mdpi/tabs_carat.png
mobile/android/base/resources/drawable-sw600dp-mdpi/tabs_more.png
mobile/android/base/resources/drawable-sw600dp-mdpi/tabs_plus.png
mobile/android/base/resources/drawable-sw600dp-xhdpi/address_bar_pressed_texture_tablet.png
mobile/android/base/resources/drawable-sw600dp-xhdpi/tabs_carat.png
mobile/android/base/resources/drawable-sw600dp-xhdpi/tabs_more.png
mobile/android/base/resources/drawable-sw600dp-xhdpi/tabs_plus.png
mobile/android/base/resources/drawable-xhdpi-v11/address_bar_pressed_texture_port.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_awesomebar_reader.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_awesomebar_star.png
mobile/android/base/resources/drawable-xhdpi-v11/tab_selected.png
mobile/android/base/resources/drawable-xhdpi-v11/tabs_carat.png
mobile/android/base/resources/drawable-xhdpi-v11/tabs_more.png
mobile/android/base/resources/drawable-xhdpi-v11/tabs_plus.png
mobile/android/base/resources/drawable-xlarge-hdpi/address_bar_pressed_texture_tablet.png
mobile/android/base/resources/drawable-xlarge-hdpi/tabs_carat.png
mobile/android/base/resources/drawable-xlarge-hdpi/tabs_more.png
mobile/android/base/resources/drawable-xlarge-hdpi/tabs_plus.png
mobile/android/base/resources/drawable-xlarge-mdpi/address_bar_pressed_bg.xml
mobile/android/base/resources/drawable-xlarge-mdpi/address_bar_pressed_texture_tablet.png
mobile/android/base/resources/drawable-xlarge-mdpi/tabs_carat.png
mobile/android/base/resources/drawable-xlarge-mdpi/tabs_more.png
mobile/android/base/resources/drawable-xlarge-mdpi/tabs_plus.png
mobile/android/base/resources/drawable-xlarge-xhdpi/address_bar_pressed_texture_tablet.png
mobile/android/base/resources/drawable-xlarge-xhdpi/tabs_carat.png
mobile/android/base/resources/drawable-xlarge-xhdpi/tabs_more.png
mobile/android/base/resources/drawable-xlarge-xhdpi/tabs_plus.png
mobile/android/base/resources/drawable/action_bar_button.xml
mobile/android/base/resources/drawable/address_bar_pressed_bg.xml
mobile/android/base/resources/drawable/address_bar_pressed_texture_port.png
mobile/android/base/resources/drawable/desktop.png
mobile/android/base/resources/drawable/highlight.xml
mobile/android/base/resources/drawable/ic_awesomebar_reader.png
mobile/android/base/resources/drawable/ic_awesomebar_star.png
mobile/android/base/resources/drawable/mobile.png
mobile/android/base/resources/drawable/remote_tabs_group_bg_repeat.xml
mobile/android/base/resources/drawable/remote_tabs_level.xml
mobile/android/base/resources/drawable/tab_selected.png
mobile/android/base/resources/drawable/tabs_carat.png
mobile/android/base/resources/drawable/tabs_level.xml
mobile/android/base/resources/drawable/tabs_more.png
mobile/android/base/resources/drawable/tabs_plus.png
mobile/android/base/resources/drawable/tabs_tray_active_selector.xml
mobile/android/base/resources/drawable/tabs_tray_close_button.xml
mobile/android/base/resources/drawable/tabs_tray_default_selector.xml
mobile/android/base/resources/drawable/tabs_tray_list_selector.xml
mobile/android/base/resources/drawable/tabs_tray_pressed_bg_repeat.xml
mobile/android/base/resources/drawable/tabs_tray_selected_bg_repeat.xml
mobile/android/base/resources/layout-land-v14/browser_toolbar.xml
mobile/android/base/resources/layout-sw600dp/browser_toolbar.xml
mobile/android/base/resources/layout-sw600dp/gecko_app.xml
mobile/android/base/resources/layout-sw600dp/remote_tabs_child.xml
mobile/android/base/resources/layout-sw600dp/remote_tabs_group.xml
mobile/android/base/resources/layout-sw600dp/tabs_panel.xml
mobile/android/base/resources/layout-sw600dp/tabs_row.xml
mobile/android/base/resources/layout-v11/gecko_app.xml
mobile/android/base/resources/layout-xlarge/browser_toolbar.xml
mobile/android/base/resources/layout-xlarge/gecko_app.xml
mobile/android/base/resources/layout-xlarge/remote_tabs_child.xml
mobile/android/base/resources/layout-xlarge/remote_tabs_group.xml
mobile/android/base/resources/layout-xlarge/tabs_panel.xml
mobile/android/base/resources/layout-xlarge/tabs_row.xml
mobile/android/base/resources/layout/awesomebar_row.xml
mobile/android/base/resources/layout/browser_toolbar.xml
mobile/android/base/resources/layout/find_in_page_content.xml
mobile/android/base/resources/layout/gecko_app.xml
mobile/android/base/resources/layout/remote_tabs_child.xml
mobile/android/base/resources/layout/remote_tabs_group.xml
mobile/android/base/resources/layout/sync_custom_popup.xml
mobile/android/base/resources/layout/sync_list_item.xml
mobile/android/base/resources/layout/sync_redirect_to_setup.xml
mobile/android/base/resources/layout/sync_send_tab.xml
mobile/android/base/resources/layout/tabs_panel.xml
mobile/android/base/resources/layout/tabs_row.xml
mobile/android/base/resources/layout/tabs_tray.xml
mobile/android/base/resources/menu/titlebar_contextmenu.xml
mobile/android/base/resources/values-land-v14/dimens.xml
mobile/android/base/resources/values-sw600dp-v14/dimens.xml
mobile/android/base/resources/values-sw600dp/dimens.xml
mobile/android/base/resources/values-v11/styles.xml
mobile/android/base/resources/values-v11/themes.xml
mobile/android/base/resources/values-xlarge/dimens.xml
mobile/android/base/resources/values/dimens.xml
mobile/android/base/resources/values/styles.xml
mobile/android/base/strings.xml.in
mobile/android/base/sync/CommandProcessor.java
mobile/android/base/sync/CommandRunner.java
mobile/android/base/sync/GlobalSession.java
mobile/android/base/sync/SynchronizerConfigurations.java
mobile/android/base/sync/net/BaseResource.java
mobile/android/base/sync/net/SyncStorageRecordRequest.java
mobile/android/base/sync/repositories/android/ClientsDatabase.java
mobile/android/base/sync/repositories/android/ClientsDatabaseAccessor.java
mobile/android/base/sync/repositories/domain/ClientRecord.java
mobile/android/base/sync/setup/activities/ClientRecordArrayAdapter.java
mobile/android/base/sync/setup/activities/RedirectToSetupActivity.java
mobile/android/base/sync/setup/activities/SendTabActivity.java
mobile/android/base/sync/stage/EnsureKeysStage.java
mobile/android/base/sync/stage/SyncClientsEngineStage.java
mobile/android/base/tests/BaseTest.java.in
mobile/android/base/tests/testAboutPage.java.in
mobile/android/base/ui/Axis.java
mobile/android/chrome/content/browser.js
mobile/android/chrome/content/config.xhtml
mobile/android/confvars.sh
mobile/android/locales/maemo-locales
mobile/android/sync/android-drawable-resources.mn
mobile/android/sync/android-layout-resources.mn
mobile/android/sync/java-sources.mn
mobile/android/sync/manifests/SyncAndroidManifest_activities.xml.in
mobile/android/sync/strings.xml.in
mobile/xul/locales/maemo-locales
modules/libpref/src/init/all.js
netwerk/base/public/nsIBrowserSearchService.idl
netwerk/base/src/nsAsyncStreamCopier.cpp
netwerk/base/src/nsFileStreams.cpp
netwerk/protocol/http/nsHttp.h
netwerk/protocol/http/nsHttpChannel.cpp
netwerk/protocol/http/nsHttpHandler.cpp
netwerk/test/unit/test_header_Accept-Language.js
netwerk/test/unit/xpcshell.ini
nsprpub/TAG-INFO
nsprpub/admin/repackage.sh
nsprpub/config/prdepend.h
nsprpub/configure
nsprpub/configure.in
nsprpub/pr/include/md/_win95.h
nsprpub/pr/include/md/_winnt.h
nsprpub/pr/include/prinit.h
nsprpub/pr/include/private/primpl.h
nsprpub/pr/include/prthread.h
nsprpub/pr/src/md/windows/ntthread.c
nsprpub/pr/src/md/windows/w95thred.c
nsprpub/pr/src/nspr.def
nsprpub/pr/src/pthreads/ptthread.c
nsprpub/pr/src/threads/combined/pruthr.c
nsprpub/pr/src/threads/prcthr.c
nsprpub/pr/tests/vercheck.c
security/manager/ssl/src/nsSmartCardEvent.cpp
security/manager/ssl/src/nsSmartCardEvent.h
storage/src/mozStorageConnection.cpp
testing/machine-configuration.json
testing/marionette/client/marionette/marionette.py
testing/marionette/client/marionette/marionette_test.py
testing/marionette/client/marionette/runtests.py
testing/marionette/client/marionette/tests/unit/test_perf.py
testing/marionette/client/marionette/tests/unit/unit-tests.ini
testing/marionette/client/marionette/venv_test.sh
testing/marionette/jar.mn
testing/marionette/marionette-actors.js
testing/marionette/marionette-listener.js
testing/marionette/marionette-perf.js
testing/marionette/marionette-simpletest.js
testing/mochitest/android-failures.json
testing/mochitest/android.json
testing/mochitest/runtestsb2g.py
testing/mochitest/ssltunnel/ssltunnel.cpp
testing/mochitest/tests/SimpleTest/specialpowersAPI.js
testing/mochitest/tests/test_SpecialPowersExtension.html
toolkit/components/Makefile.in
toolkit/components/console/content/console.css
toolkit/components/console/content/console.js
toolkit/components/console/content/console.xul
toolkit/components/console/content/consoleBindings.xml
toolkit/components/contentprefs/nsContentPrefService.js
toolkit/components/osfile/Makefile.in
toolkit/components/osfile/osfile.jsm
toolkit/components/osfile/osfile_shared.jsm
toolkit/components/osfile/osfile_unix_back.jsm
toolkit/components/osfile/osfile_win_back.jsm
toolkit/components/osfile/tests/Makefile.in
toolkit/components/osfile/tests/mochi/Makefile.in
toolkit/components/osfile/tests/mochi/test_osfile_back.xul
toolkit/components/osfile/tests/mochi/worker_test_osfile_unix.js
toolkit/components/osfile/tests/mochi/worker_test_osfile_win.js
toolkit/components/satchel/nsFormFillController.cpp
toolkit/components/search/nsSearchService.js
toolkit/components/search/tests/xpcshell/head_search.js
toolkit/components/search/tests/xpcshell/test_645970.js
toolkit/components/search/tests/xpcshell/test_init_async_multiple.js
toolkit/components/search/tests/xpcshell/test_init_async_multiple_then_sync.js
toolkit/components/search/tests/xpcshell/test_migratedb.js
toolkit/components/search/tests/xpcshell/test_nodb.js
toolkit/components/search/tests/xpcshell/xpcshell.ini
toolkit/components/telemetry/TelemetryPing.js
toolkit/components/telemetry/tests/unit/test_TelemetryPing.js
toolkit/content/tests/chrome/test_notificationbox.xul
toolkit/content/widgets/videocontrols.xml
toolkit/devtools/debugger/dbg-client.jsm
toolkit/devtools/debugger/server/dbg-script-actors.js
toolkit/locales/en-US/chrome/global/commonDialogs.properties
toolkit/locales/en-US/chrome/global/console.dtd
webapprt/linux/webapprt.cpp
widget/android/nsWindow.cpp
widget/cocoa/nsClipboard.mm
widget/cocoa/nsDragService.mm
widget/cocoa/nsMenuItemX.mm
widget/cocoa/nsMenuUtilsX.mm
widget/gonk/GonkKeyMapping.h
widget/gonk/nsAppShell.cpp
widget/gonk/nsAppShell.h
widget/gtk2/nsClipboard.cpp
widget/nsITransferable.idl
widget/os2/nsClipboard.cpp
widget/qt/nsClipboard.cpp
widget/tests/test_bug444800.xul
widget/windows/nsClipboard.cpp
widget/windows/nsImageClipboard.cpp
widget/windows/nsWindow.cpp
xpcom/glue/nsCycleCollectionParticipant.h
xpcom/glue/nsVersionComparator.h
xpcom/idl-parser/xpidl.py
xpcom/io/nsILocalFile.idl
xpcom/io/nsILocalFileMac.idl
xpcom/io/nsILocalFileWin.idl
xpcom/system/nsIDeviceSensors.idl
xpfe/appshell/src/nsChromeTreeOwner.cpp
xpfe/appshell/src/nsContentTreeOwner.cpp
xpfe/appshell/src/nsContentTreeOwner.h
xpfe/appshell/src/nsWebShellWindow.cpp
xpfe/appshell/src/nsXULWindow.cpp
--- a/accessible/public/nsIAccessible.idl
+++ b/accessible/public/nsIAccessible.idl
@@ -18,17 +18,17 @@ interface nsIAccessibleRelation;
  * accessibility APIs like MSAA and ATK. Contains the sum of what's needed
  * to support IAccessible as well as ATK's generic accessibility objects.
  * Can also be used by in-process accessibility clients to get information
  * about objects in the accessible tree. The accessible tree is a subset of 
  * nodes in the DOM tree -- such as documents, focusable elements and text.
  * Mozilla creates the implementations of nsIAccessible on demand.
  * See http://www.mozilla.org/projects/ui/accessibility for more information.
  */
-[scriptable, uuid(45600c50-b06a-11e1-afa6-0800200c9a66)]
+[scriptable, uuid(45ce2c92-4d92-49d2-bff1-855934443261)]
 interface nsIAccessible : nsISupports
 {
   /**
    * Parent node in accessible tree.
    */
   readonly attribute nsIAccessible parent;
 
   /**
@@ -110,23 +110,31 @@ interface nsIAccessible : nsISupports
    */
   readonly attribute AString description;
 
   /**
    * Provides localized string of accesskey name, such as Alt+D.
    * The modifier may be affected by user and platform preferences.
    * Usually alt+letter, or just the letter alone for menu items. 
    */
-  readonly attribute AString accessKey;
+  readonly attribute AString keyboardShortcut;
 
   /**
    * Provides localized string of global keyboard accelerator for default
    * action, such as Ctrl+O for Open file
    */
-  readonly attribute AString keyboardShortcut;
+  readonly attribute AString defaultKeyBinding;
+
+  /**
+   * Provides array of localized string of global keyboard accelerator for
+   * the given action index supported by accessible.
+   *
+   * @param aActionIndex - index of the given action
+   */
+  nsIDOMDOMStringList getKeyBindings(in PRUint8 aActionIndex);
 
   /**
    * Enumerated accessible role (see the constants defined in nsIAccessibleRole).
    *
    * @note  The values might depend on platform because of variations. Widgets
    *        can use ARIA role attribute to force the final role.
    */
   readonly attribute unsigned long role;
deleted file mode 100644
--- a/accessible/src/atk/HTMLTableAccessibleWrap.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_a11y_HTMLTableAccessibleWrap_h__
-#define mozilla_a11y_HTMLTableAccessibleWrap_h__
-
-#include "HTMLTableAccessible.h"
-
-namespace mozilla {
-namespace a11y {
-
-typedef class HTMLTableAccessible HTMLTableAccessibleWrap;
-typedef class HTMLTableCellAccessible HTMLTableCellAccessibleWrap;
-typedef class HTMLTableHeaderCellAccessible HTMLTableHeaderCellAccessibleWrap;
-
-} // namespace a11y
-} // namespace mozilla
-
-#endif
-
deleted file mode 100644
--- a/accessible/src/atk/XULListboxAccessibleWrap.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_a11y_XULListboxAccessibleWrap_h__
-#define mozilla_a11y_XULListboxAccessibleWrap_h__
-
-#include "XULListboxAccessible.h"
-
-namespace mozilla {
-namespace a11y {
-
-typedef class XULListboxAccessible XULListboxAccessibleWrap;
-typedef class XULListCellAccessible XULListCellAccessibleWrap;
-
-} // namespace a11y
-} // namespace mozilla
-
-#endif
deleted file mode 100644
--- a/accessible/src/atk/XULMenuAccessibleWrap.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_a11y_XULMenuAccessibleWrap_h__
-#define mozilla_a11y_XULMenuAccessibleWrap_h__
-
-#include "XULMenuAccessible.h"
-
-namespace mozilla {
-namespace a11y {
-
-typedef class XULMenuitemAccessible XULMenuitemAccessibleWrap;
-
-} // namespace a11y
-} // namespace mozilla
-
-#endif
deleted file mode 100644
--- a/accessible/src/atk/XULTreeGridAccessibleWrap.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_a11y_XULTreeGridAccessibleWrap_h__
-#define mozilla_a11y_XULTreeGridAccessibleWrap_h__
-
-#include "XULTreeGridAccessible.h"
-
-namespace mozilla {
-namespace a11y {
-
-typedef class XULTreeGridAccessible XULTreeGridAccessibleWrap;
-typedef class XULTreeGridCellAccessible XULTreeGridCellAccessibleWrap;
-
-} // namespace a11y
-} // namespace mozilla
-
-#endif
-
new file mode 100644
--- /dev/null
+++ b/accessible/src/atk/nsHTMLTableAccessibleWrap.h
@@ -0,0 +1,17 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef _NSHTMLTABLEACCESSIBLEWRAP_H
+#define _NSHTMLTABLEACCESSIBLEWRAP_H
+
+#include "nsHTMLTableAccessible.h"
+
+typedef class nsHTMLTableAccessible nsHTMLTableAccessibleWrap;
+typedef class nsHTMLTableCellAccessible nsHTMLTableCellAccessibleWrap;
+typedef class nsHTMLTableHeaderCellAccessible nsHTMLTableHeaderCellAccessibleWrap;
+
+#endif
+
new file mode 100644
--- /dev/null
+++ b/accessible/src/atk/nsXULListboxAccessibleWrap.h
@@ -0,0 +1,15 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef __nsXULListboxAccessibleWrap_h__
+#define __nsXULListboxAccessibleWrap_h__
+
+#include "nsXULListboxAccessible.h"
+
+typedef class nsXULListboxAccessible nsXULListboxAccessibleWrap;
+typedef class nsXULListCellAccessible nsXULListCellAccessibleWrap;
+
+#endif
new file mode 100644
--- /dev/null
+++ b/accessible/src/atk/nsXULMenuAccessibleWrap.h
@@ -0,0 +1,14 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef __nsXULMenuAccessibleWrap_h__
+#define __nsXULMenuAccessibleWrap_h__
+
+#include "nsXULMenuAccessible.h"
+
+typedef class nsXULMenuitemAccessible nsXULMenuitemAccessibleWrap;
+
+#endif
new file mode 100644
--- /dev/null
+++ b/accessible/src/atk/nsXULTreeGridAccessibleWrap.h
@@ -0,0 +1,16 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef __nsXULTreeGridAccessibleWrap_h__
+#define __nsXULTreeGridAccessibleWrap_h__
+
+#include "nsXULTreeGridAccessible.h"
+
+typedef class nsXULTreeGridAccessible nsXULTreeGridAccessibleWrap;
+typedef class nsXULTreeGridCellAccessible nsXULTreeGridCellAccessibleWrap;
+
+#endif
+
--- a/accessible/src/base/TextAttrs.cpp
+++ b/accessible/src/base/TextAttrs.cpp
@@ -96,35 +96,31 @@ TextAttrsMgr::GetAttributes(nsIPersisten
   FontSizeTextAttr fontSizeTextAttr(rootFrame, frame);
 
   // "font-style" text attribute
   FontStyleTextAttr fontStyleTextAttr(rootFrame, frame);
 
   // "font-weight" text attribute
   FontWeightTextAttr fontWeightTextAttr(rootFrame, frame);
 
-  // "auto-generated" text attribute
-  AutoGeneratedTextAttr autoGenTextAttr(mHyperTextAcc, mOffsetAcc);
-
   // "text-underline(line-through)-style(color)" text attributes
   TextDecorTextAttr textDecorTextAttr(rootFrame, frame);
 
   // "text-position" text attribute
   TextPosTextAttr textPosTextAttr(rootFrame, frame);
 
   TextAttr* attrArray[] =
   {
     &langTextAttr,
     &bgColorTextAttr,
     &colorTextAttr,
     &fontFamilyTextAttr,
     &fontSizeTextAttr,
     &fontStyleTextAttr,
     &fontWeightTextAttr,
-    &autoGenTextAttr,
     &textDecorTextAttr,
     &textPosTextAttr
   };
 
   // Expose text attributes if applicable.
   if (aAttributes) {
     for (PRUint32 idx = 0; idx < ArrayLength(attrArray); idx++)
       attrArray[idx]->Expose(aAttributes, mIncludeDefAttrs);
@@ -143,20 +139,24 @@ TextAttrsMgr::GetRange(TextAttr* aAttrAr
   for (PRInt32 childIdx = mOffsetAccIdx - 1; childIdx >= 0; childIdx--) {
     Accessible* currAcc = mHyperTextAcc->GetChildAt(childIdx);
 
     // Stop on embedded accessible since embedded accessibles are combined into
     // own range.
     if (nsAccUtils::IsEmbeddedObject(currAcc))
       break;
 
+    nsIContent* currElm = nsCoreUtils::GetDOMElementFor(currAcc->GetContent());
+    if (!currElm)
+      return;
+
     bool offsetFound = false;
     for (PRUint32 attrIdx = 0; attrIdx < aAttrArrayLen; attrIdx++) {
       TextAttr* textAttr = aAttrArray[attrIdx];
-      if (!textAttr->Equal(currAcc)) {
+      if (!textAttr->Equal(currElm)) {
         offsetFound = true;
         break;
       }
     }
 
     if (offsetFound)
       break;
 
@@ -165,23 +165,27 @@ TextAttrsMgr::GetRange(TextAttr* aAttrAr
 
   // Navigate forward from anchor accessible to find end offset.
   PRUint32 childLen = mHyperTextAcc->ChildCount();
   for (PRUint32 childIdx = mOffsetAccIdx + 1; childIdx < childLen; childIdx++) {
     Accessible* currAcc = mHyperTextAcc->GetChildAt(childIdx);
     if (nsAccUtils::IsEmbeddedObject(currAcc))
       break;
 
+    nsIContent* currElm = nsCoreUtils::GetDOMElementFor(currAcc->GetContent());
+    if (!currElm)
+      return;
+
     bool offsetFound = false;
     for (PRUint32 attrIdx = 0; attrIdx < aAttrArrayLen; attrIdx++) {
       TextAttr* textAttr = aAttrArray[attrIdx];
 
       // Alter the end offset when text attribute changes its value and stop
       // the search.
-      if (!textAttr->Equal(currAcc)) {
+      if (!textAttr->Equal(currElm)) {
         offsetFound = true;
         break;
       }
     }
 
     if (offsetFound)
       break;
 
@@ -197,57 +201,61 @@ TextAttrsMgr::GetRange(TextAttr* aAttrAr
 TextAttrsMgr::LangTextAttr::
   LangTextAttr(HyperTextAccessible* aRoot,
                nsIContent* aRootElm, nsIContent* aElm) :
   TTextAttr<nsString>(!aElm), mRootContent(aRootElm)
 {
   aRoot->Language(mRootNativeValue);
   mIsRootDefined =  !mRootNativeValue.IsEmpty();
 
-  if (aElm) {
-    nsCoreUtils::GetLanguageFor(aElm, mRootContent, mNativeValue);
-    mIsDefined = !mNativeValue.IsEmpty();
-  }
+  if (aElm)
+    mIsDefined = GetLang(aElm, mNativeValue);
 }
 
 bool
 TextAttrsMgr::LangTextAttr::
-  GetValueFor(Accessible* aAccessible, nsString* aValue)
+  GetValueFor(nsIContent* aElm, nsString* aValue)
 {
-  nsCoreUtils::GetLanguageFor(aAccessible->GetContent(), mRootContent, *aValue);
-  return !aValue->IsEmpty();
+  return GetLang(aElm, *aValue);
 }
 
 void
 TextAttrsMgr::LangTextAttr::
   ExposeValue(nsIPersistentProperties* aAttributes, const nsString& aValue)
 {
   nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::language, aValue);
 }
 
+bool
+TextAttrsMgr::LangTextAttr::
+  GetLang(nsIContent* aElm, nsAString& aLang)
+{
+  nsCoreUtils::GetLanguageFor(aElm, mRootContent, aLang);
+  return !aLang.IsEmpty();
+}
+
 
 ////////////////////////////////////////////////////////////////////////////////
 // BGColorTextAttr
 ////////////////////////////////////////////////////////////////////////////////
 
 TextAttrsMgr::BGColorTextAttr::
   BGColorTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame) :
   TTextAttr<nscolor>(!aFrame), mRootFrame(aRootFrame)
 {
   mIsRootDefined = GetColor(mRootFrame, &mRootNativeValue);
   if (aFrame)
     mIsDefined = GetColor(aFrame, &mNativeValue);
 }
 
 bool
 TextAttrsMgr::BGColorTextAttr::
-  GetValueFor(Accessible* aAccessible, nscolor* aValue)
+  GetValueFor(nsIContent* aElm, nscolor* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aElm->GetPrimaryFrame();
   return frame ? GetColor(frame, aValue) : false;
 }
 
 void
 TextAttrsMgr::BGColorTextAttr::
   ExposeValue(nsIPersistentProperties* aAttributes, const nscolor& aValue)
 {
   nsAutoString formattedValue;
@@ -297,20 +305,19 @@ TextAttrsMgr::ColorTextAttr::
   if (aFrame) {
     mNativeValue = aFrame->GetStyleColor()->mColor;
     mIsDefined = true;
   }
 }
 
 bool
 TextAttrsMgr::ColorTextAttr::
-  GetValueFor(Accessible* aAccessible, nscolor* aValue)
+  GetValueFor(nsIContent* aElm, nscolor* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aElm->GetPrimaryFrame();
   if (frame) {
     *aValue = frame->GetStyleColor()->mColor;
     return true;
   }
 
   return false;
 }
 
@@ -335,20 +342,19 @@ TextAttrsMgr::FontFamilyTextAttr::
   mIsRootDefined = GetFontFamily(aRootFrame, mRootNativeValue);
 
   if (aFrame)
     mIsDefined = GetFontFamily(aFrame, mNativeValue);
 }
 
 bool
 TextAttrsMgr::FontFamilyTextAttr::
-  GetValueFor(Accessible* aAccessible, nsString* aValue)
+  GetValueFor(nsIContent* aElm, nsString* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aElm->GetPrimaryFrame();
   return frame ? GetFontFamily(frame, *aValue) : false;
 }
 
 void
 TextAttrsMgr::FontFamilyTextAttr::
   ExposeValue(nsIPersistentProperties* aAttributes, const nsString& aValue)
 {
   nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::font_family, aValue);
@@ -385,20 +391,19 @@ TextAttrsMgr::FontSizeTextAttr::
   if (aFrame) {
     mNativeValue = aFrame->GetStyleFont()->mSize;
     mIsDefined = true;
   }
 }
 
 bool
 TextAttrsMgr::FontSizeTextAttr::
-  GetValueFor(Accessible* aAccessible, nscoord* aValue)
+  GetValueFor(nsIContent* aElm, nscoord* aValue)
 {
-  nsIContent* content = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = content->GetPrimaryFrame();
+  nsIFrame* frame = aElm->GetPrimaryFrame();
   if (frame) {
     *aValue = frame->GetStyleFont()->mSize;
     return true;
   }
 
   return false;
 }
 
@@ -441,20 +446,19 @@ TextAttrsMgr::FontStyleTextAttr::
   if (aFrame) {
     mNativeValue = aFrame->GetStyleFont()->mFont.style;
     mIsDefined = true;
   }
 }
 
 bool
 TextAttrsMgr::FontStyleTextAttr::
-  GetValueFor(Accessible* aAccessible, nscoord* aValue)
+  GetValueFor(nsIContent* aContent, nscoord* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aContent->GetPrimaryFrame();
   if (frame) {
     *aValue = frame->GetStyleFont()->mFont.style;
     return true;
   }
 
   return false;
 }
 
@@ -483,20 +487,19 @@ TextAttrsMgr::FontWeightTextAttr::
   if (aFrame) {
     mNativeValue = GetFontWeight(aFrame);
     mIsDefined = true;
   }
 }
 
 bool
 TextAttrsMgr::FontWeightTextAttr::
-  GetValueFor(Accessible* aAccessible, PRInt32* aValue)
+  GetValueFor(nsIContent* aElm, PRInt32* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aElm->GetPrimaryFrame();
   if (frame) {
     *aValue = GetFontWeight(frame);
     return true;
   }
 
   return false;
 }
 
@@ -542,46 +545,16 @@ TextAttrsMgr::FontWeightTextAttr::
   // On Mac, font->GetStyle()->weight will just give the same number as
   // getComputedStyle(). fontEntry->Weight() will give the weight of the font
   // face used.
   gfxFontEntry *fontEntry = font->GetFontEntry();
   return fontEntry->Weight();
 #endif
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// AutoGeneratedTextAttr
-////////////////////////////////////////////////////////////////////////////////
-TextAttrsMgr::AutoGeneratedTextAttr::
-  AutoGeneratedTextAttr(HyperTextAccessible* aHyperTextAcc,
-                        Accessible* aAccessible) :
-  TTextAttr<bool>(!aAccessible)
-{
-  mRootNativeValue = false;
-  mIsRootDefined = false;
-
-  if (aAccessible)
-    mIsDefined = mNativeValue = (aAccessible->NativeRole() == roles::STATICTEXT);
-}
-
-bool
-TextAttrsMgr::AutoGeneratedTextAttr::
-  GetValueFor(Accessible* aAccessible, bool* aValue)
-{
-  return *aValue = (aAccessible->NativeRole() == roles::STATICTEXT);
-}
-
-void
-TextAttrsMgr::AutoGeneratedTextAttr::
-  ExposeValue(nsIPersistentProperties* aAttributes, const bool& aValue)
-{
-  nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::auto_generated,
-                         aValue ? NS_LITERAL_STRING("true") : NS_LITERAL_STRING("false"));
-}
-
 
 ////////////////////////////////////////////////////////////////////////////////
 // TextDecorTextAttr
 ////////////////////////////////////////////////////////////////////////////////
 
 TextAttrsMgr::TextDecorValue::
   TextDecorValue(nsIFrame* aFrame)
 {
@@ -608,20 +581,19 @@ TextAttrsMgr::TextDecorTextAttr::
   if (aFrame) {
     mNativeValue = TextDecorValue(aFrame);
     mIsDefined = mNativeValue.IsDefined();
   }
 }
 
 bool
 TextAttrsMgr::TextDecorTextAttr::
-  GetValueFor(Accessible* aAccessible, TextDecorValue* aValue)
+  GetValueFor(nsIContent* aContent, TextDecorValue* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aContent->GetPrimaryFrame();
   if (frame) {
     *aValue = TextDecorValue(frame);
     return aValue->IsDefined();
   }
 
   return false;
 }
 
@@ -671,20 +643,19 @@ TextAttrsMgr::TextPosTextAttr::
   if (aFrame) {
     mNativeValue = GetTextPosValue(aFrame);
     mIsDefined = mNativeValue != eTextPosNone;
   }
 }
 
 bool
 TextAttrsMgr::TextPosTextAttr::
-  GetValueFor(Accessible* aAccessible, TextPosValue* aValue)
+  GetValueFor(nsIContent* aContent, TextPosValue* aValue)
 {
-  nsIContent* elm = nsCoreUtils::GetDOMElementFor(aAccessible->GetContent());
-  nsIFrame* frame = elm->GetPrimaryFrame();
+  nsIFrame* frame = aContent->GetPrimaryFrame();
   if (frame) {
     *aValue = GetTextPosValue(frame);
     return *aValue != eTextPosNone;
   }
 
   return false;
 }
 
--- a/accessible/src/base/TextAttrs.h
+++ b/accessible/src/base/TextAttrs.h
@@ -105,17 +105,17 @@ protected:
      */
     virtual void Expose(nsIPersistentProperties* aAttributes,
                         bool aIncludeDefAttrValue) = 0;
 
     /**
      * Return true if the text attribute value on the given element equals with
      * predefined attribute value.
      */
-    virtual bool Equal(Accessible* aAccessible) = 0;
+    virtual bool Equal(nsIContent* aElm) = 0;
   };
 
 
   /**
    * Base class to work with text attributes. See derived classes below.
    */
   template<class T>
   class TTextAttr : public TextAttr
@@ -138,20 +138,20 @@ protected:
           ExposeValue(aAttributes, mNativeValue);
         return;
       }
 
       if (aIncludeDefAttrValue && mIsRootDefined)
         ExposeValue(aAttributes, mRootNativeValue);
     }
 
-    virtual bool Equal(Accessible* aAccessible)
+    virtual bool Equal(nsIContent* aElm)
     {
       T nativeValue;
-      bool isDefined = GetValueFor(aAccessible, &nativeValue);
+      bool isDefined = GetValueFor(aElm, &nativeValue);
 
       if (!mIsDefined && !isDefined)
         return true;
 
       if (mIsDefined && isDefined)
         return nativeValue == mNativeValue;
 
       if (mIsDefined)
@@ -162,17 +162,17 @@ protected:
 
   protected:
 
     // Expose the text attribute with the given value to attribute set.
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const T& aValue) = 0;
 
     // Return native value for the given DOM element.
-    virtual bool GetValueFor(Accessible* aAccessible, T* aValue) = 0;
+    virtual bool GetValueFor(nsIContent* aElm, T* aValue) = 0;
 
     // Indicates if root value should be exposed.
     bool mGetRootValue;
 
     // Native value and flag indicating if the value is defined (initialized in
     // derived classes). Note, undefined native value means it is inherited
     // from root.
     T mNativeValue;
@@ -193,38 +193,39 @@ protected:
   public:
     LangTextAttr(HyperTextAccessible* aRoot, nsIContent* aRootElm,
                  nsIContent* aElm);
     virtual ~LangTextAttr() { }
 
   protected:
 
     // TextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, nsString* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, nsString* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const nsString& aValue);
 
   private:
+    bool GetLang(nsIContent* aElm, nsAString& aLang);
     nsCOMPtr<nsIContent> mRootContent;
   };
 
 
   /**
    * Class is used for the work with 'background-color' text attribute.
    */
   class BGColorTextAttr : public TTextAttr<nscolor>
   {
   public:
     BGColorTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~BGColorTextAttr() { }
 
   protected:
 
     // TextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, nscolor* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, nscolor* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const nscolor& aValue);
 
   private:
     bool GetColor(nsIFrame* aFrame, nscolor* aColor);
     nsIFrame* mRootFrame;
   };
 
@@ -236,17 +237,17 @@ protected:
   {
   public:
     ColorTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~ColorTextAttr() { }
 
   protected:
 
     // TTextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, nscolor* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, nscolor* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const nscolor& aValue);
   };
 
 
   /**
    * Class is used for the work with "font-family" text attribute.
    */
@@ -254,17 +255,17 @@ protected:
   {
   public:
     FontFamilyTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~FontFamilyTextAttr() { }
 
   protected:
 
     // TTextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, nsString* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, nsString* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const nsString& aValue);
 
   private:
 
     bool GetFontFamily(nsIFrame* aFrame, nsString& aFamily);
   };
 
@@ -273,20 +274,20 @@ protected:
    * Class is used for the work with "font-size" text attribute.
    */
   class FontSizeTextAttr : public TTextAttr<nscoord>
   {
   public:
     FontSizeTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~FontSizeTextAttr() { }
 
-  protected: 
+  protected:
 
     // TTextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, nscoord* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, nscoord* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const nscoord& aValue);
 
   private:
     nsDeviceContext* mDC;
   };
 
 
@@ -297,17 +298,17 @@ protected:
   {
   public:
     FontStyleTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~FontStyleTextAttr() { }
 
   protected:
 
     // TTextAttr
-    virtual bool GetValueFor(Accessible* aContent, nscoord* aValue);
+    virtual bool GetValueFor(nsIContent* aContent, nscoord* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const nscoord& aValue);
   };
 
 
   /**
    * Class is used for the work with "font-weight" text attribute.
    */
@@ -315,41 +316,24 @@ protected:
   {
   public:
     FontWeightTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~FontWeightTextAttr() { }
 
   protected:
 
     // TTextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, PRInt32* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, PRInt32* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const PRInt32& aValue);
 
   private:
     PRInt32 GetFontWeight(nsIFrame* aFrame);
   };
 
-  /**
-   * Class is used for the work with 'auto-generated' text attribute.
-   */
-  class AutoGeneratedTextAttr : public TTextAttr<bool>
-  {
-  public:
-    AutoGeneratedTextAttr(HyperTextAccessible* aHyperTextAcc,
-                          Accessible* aAccessible);
-    virtual ~AutoGeneratedTextAttr() { }
-
-  protected:
-    // TextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, bool* aValue);
-    virtual void ExposeValue(nsIPersistentProperties* aAttributes,
-                             const bool& aValue);
-  };
-
 
   /**
    * TextDecorTextAttr class is used for the work with
    * "text-line-through-style", "text-line-through-color",
    * "text-underline-style" and "text-underline-color" text attributes.
    */
 
   class TextDecorValue
@@ -386,17 +370,17 @@ protected:
   {
   public:
     TextDecorTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~TextDecorTextAttr() { }
 
   protected:
 
     // TextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, TextDecorValue* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, TextDecorValue* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const TextDecorValue& aValue);
   };
 
   /**
    * Class is used for the work with "text-position" text attribute.
    */
 
@@ -411,17 +395,17 @@ protected:
   {
   public:
     TextPosTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame);
     virtual ~TextPosTextAttr() { }
 
   protected:
 
     // TextAttr
-    virtual bool GetValueFor(Accessible* aAccessible, TextPosValue* aValue);
+    virtual bool GetValueFor(nsIContent* aElm, TextPosValue* aValue);
     virtual void ExposeValue(nsIPersistentProperties* aAttributes,
                              const TextPosValue& aValue);
 
   private:
     TextPosValue GetTextPosValue(nsIFrame* aFrame) const;
   };
 
 }; // TextAttrMgr
--- a/accessible/src/base/nsARIAMap.cpp
+++ b/accessible/src/base/nsARIAMap.cpp
@@ -30,550 +30,550 @@ using namespace mozilla::a11y::aria;
  *  In addition, in MSAA, the unmapped role will also be exposed as a BSTR string role.
  *
  *  There are no nsIAccessibleRole enums for the following landmark roles:
  *    banner, contentinfo, main, navigation, note, search, secondary, seealso, breadcrumbs
  */
 
 static nsRoleMapEntry sWAIRoleMaps[] =
 {
-  { // alert
-    &nsGkAtoms::alert,
+  {
+    "alert",
     roles::ALERT,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // alertdialog
-    &nsGkAtoms::alertdialog,
+  {
+    "alertdialog",
     roles::DIALOG,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // application
-    &nsGkAtoms::application,
+  {
+    "application",
     roles::APPLICATION,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // article
-    &nsGkAtoms::article,
+  {
+    "article",
     roles::DOCUMENT,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eReadonlyUntilEditable
   },
-  { // button
-    &nsGkAtoms::button,
+  {
+    "button",
     roles::PUSHBUTTON,
     kUseMapRole,
     eNoValue,
     ePressAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAPressed
   },
-  { // checkbox
-    &nsGkAtoms::checkbox,
+  {
+    "checkbox",
     roles::CHECKBUTTON,
     kUseMapRole,
     eNoValue,
     eCheckUncheckAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIACheckableMixed,
     eARIAReadonly
   },
-  { // columnheader
-    &nsGkAtoms::columnheader,
+  {
+    "columnheader",
     roles::COLUMNHEADER,
     kUseMapRole,
     eNoValue,
     eSortAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable,
     eARIAReadonly
   },
-  { // combobox
-    &nsGkAtoms::combobox,
+  {
+    "combobox",
     roles::COMBOBOX,
     kUseMapRole,
     eNoValue,
     eOpenCloseAction,
     eNoLiveAttr,
     states::COLLAPSED | states::HASPOPUP,
     eARIAAutoComplete,
     eARIAReadonly
   },
-  { // dialog
-    &nsGkAtoms::dialog,
+  {
+    "dialog",
     roles::DIALOG,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // directory
-    &nsGkAtoms::directory,
+  {
+    "directory",
     roles::LIST,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // document
-    &nsGkAtoms::document,
+  {
+    "document",
     roles::DOCUMENT,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eReadonlyUntilEditable
   },
-  { // form
-    &nsGkAtoms::form,
+  {
+    "form",
     roles::FORM,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // grid
-    &nsGkAtoms::grid,
+  {
+    "grid",
     roles::TABLE,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     states::FOCUSABLE,
     eARIAMultiSelectable,
     eARIAReadonly
   },
-  { // gridcell
-    &nsGkAtoms::gridcell,
+  {
+    "gridcell",
     roles::GRID_CELL,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable,
     eARIAReadonly
   },
-  { // group
-    &nsGkAtoms::group,
+  {
+    "group",
     roles::GROUPING,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // heading
-    &nsGkAtoms::heading,
+  {
+    "heading",
     roles::HEADING,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // img
-    &nsGkAtoms::img,
+  {
+    "img",
     roles::GRAPHIC,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // link
-    &nsGkAtoms::link,
+  {
+    "link",
     roles::LINK,
     kUseMapRole,
     eNoValue,
     eJumpAction,
     eNoLiveAttr,
     states::LINKED
   },
-  { // list
-    &nsGkAtoms::list,
+  {
+    "list",
     roles::LIST,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     states::READONLY
   },
-  { // listbox
-    &nsGkAtoms::listbox,
+  {
+    "listbox",
     roles::LISTBOX,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAMultiSelectable,
     eARIAReadonly
   },
-  { // listitem
-    &nsGkAtoms::listitem,
+  {
+    "listitem",
     roles::LISTITEM,
     kUseMapRole,
     eNoValue,
     eNoAction, // XXX: should depend on state, parent accessible
     eNoLiveAttr,
     states::READONLY
   },
-  { // log
-    &nsGkAtoms::log_,
+  {
+    "log",
     roles::NOTHING,
     kUseNativeRole,
     eNoValue,
     eNoAction,
     ePoliteLiveAttr,
     kNoReqStates
   },
-  { // marquee
-    &nsGkAtoms::marquee,
+  {
+    "marquee",
     roles::ANIMATION,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eOffLiveAttr,
     kNoReqStates
   },
-  { // math
-    &nsGkAtoms::math,
+  {
+    "math",
     roles::FLAT_EQUATION,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // menu
-    &nsGkAtoms::menu,
+  {
+    "menu",
     roles::MENUPOPUP,
     kUseMapRole,
     eNoValue,
     eNoAction, // XXX: technically accessibles of menupopup role haven't
                // any action, but menu can be open or close.
     eNoLiveAttr,
     kNoReqStates
   },
-  { // menubar
-    &nsGkAtoms::menubar,
+  {
+    "menubar",
     roles::MENUBAR,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // menuitem
-    &nsGkAtoms::menuitem,
+  {
+    "menuitem",
     roles::MENUITEM,
     kUseMapRole,
     eNoValue,
     eClickAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIACheckedMixed
   },
-  { // menuitemcheckbox
-    &nsGkAtoms::menuitemcheckbox,
+  {
+    "menuitemcheckbox",
     roles::CHECK_MENU_ITEM,
     kUseMapRole,
     eNoValue,
     eClickAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIACheckableMixed
   },
-  { // menuitemradio
-    &nsGkAtoms::menuitemradio,
+  {
+    "menuitemradio",
     roles::RADIO_MENU_ITEM,
     kUseMapRole,
     eNoValue,
     eClickAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIACheckableBool
   },
-  { // note
-    &nsGkAtoms::note_,
+  {
+    "note",
     roles::NOTE,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // option
-    &nsGkAtoms::option,
+  {
+    "option",
     roles::OPTION,
     kUseMapRole,
     eNoValue,
     eSelectAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable,
     eARIACheckedMixed
   },
-  { // presentation
-    &nsGkAtoms::presentation,
+  {
+    "presentation",
     roles::NOTHING,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // progressbar
-    &nsGkAtoms::progressbar,
+  {
+    "progressbar",
     roles::PROGRESSBAR,
     kUseMapRole,
     eHasValueMinMax,
     eNoAction,
     eNoLiveAttr,
     states::READONLY,
     eIndeterminateIfNoValue
   },
-  { // radio
-    &nsGkAtoms::radio,
+  {
+    "radio",
     roles::RADIOBUTTON,
     kUseMapRole,
     eNoValue,
     eSelectAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIACheckableBool
   },
-  { // radiogroup
-    &nsGkAtoms::radiogroup,
+  {
+    "radiogroup",
     roles::GROUPING,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // region
-    &nsGkAtoms::region,
+  {
+    "region",
     roles::PANE,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // row
-    &nsGkAtoms::row,
+  {
+    "row",
     roles::ROW,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable
   },
-  { // rowheader
-    &nsGkAtoms::rowheader,
+  {
+    "rowheader",
     roles::ROWHEADER,
     kUseMapRole,
     eNoValue,
     eSortAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable,
     eARIAReadonly
   },
-  { // scrollbar
-    &nsGkAtoms::scrollbar,
+  {
+    "scrollbar",
     roles::SCROLLBAR,
     kUseMapRole,
     eHasValueMinMax,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAOrientation,
     eARIAReadonly
   },
-  { // separator
-    &nsGkAtoms::separator_,
+  {
+    "separator",
     roles::SEPARATOR,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAOrientation
   },
-  { // slider
-    &nsGkAtoms::slider,
+  {
+    "slider",
     roles::SLIDER,
     kUseMapRole,
     eHasValueMinMax,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAOrientation,
     eARIAReadonly
   },
-  { // spinbutton
-    &nsGkAtoms::spinbutton,
+  {
+    "spinbutton",
     roles::SPINBUTTON,
     kUseMapRole,
     eHasValueMinMax,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAReadonly
   },
-  { // status
-    &nsGkAtoms::status,
+  {
+    "status",
     roles::STATUSBAR,
     kUseMapRole,
     eNoValue,
     eNoAction,
     ePoliteLiveAttr,
     kNoReqStates
   },
-  { // tab
-    &nsGkAtoms::tab,
+  {
+    "tab",
     roles::PAGETAB,
     kUseMapRole,
     eNoValue,
     eSwitchAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable
   },
-  { // tablist
-    &nsGkAtoms::tablist,
+  {
+    "tablist",
     roles::PAGETABLIST,
     kUseMapRole,
     eNoValue,
     eNoAction,
     ePoliteLiveAttr,
     kNoReqStates
   },
-  { // tabpanel
-    &nsGkAtoms::tabpanel,
+  {
+    "tabpanel",
     roles::PROPERTYPAGE,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // textbox
-    &nsGkAtoms::textbox,
+  {
+    "textbox",
     roles::ENTRY,
     kUseMapRole,
     eNoValue,
     eActivateAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAAutoComplete,
     eARIAMultiline,
     eARIAReadonlyOrEditable
   },
-  { // timer
-    &nsGkAtoms::timer,
+  {
+    "timer",
     roles::NOTHING,
     kUseNativeRole,
     eNoValue,
     eNoAction,
     eOffLiveAttr,
     kNoReqStates
   },
-  { // toolbar
-    &nsGkAtoms::toolbar,
+  {
+    "toolbar",
     roles::TOOLBAR,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // tooltip
-    &nsGkAtoms::tooltip,
+  {
+    "tooltip",
     roles::TOOLTIP,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates
   },
-  { // tree
-    &nsGkAtoms::tree,
+  {
+    "tree",
     roles::OUTLINE,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAReadonly,
     eARIAMultiSelectable
   },
-  { // treegrid
-    &nsGkAtoms::treegrid,
+  {
+    "treegrid",
     roles::TREE_TABLE,
     kUseMapRole,
     eNoValue,
     eNoAction,
     eNoLiveAttr,
     kNoReqStates,
     eARIAReadonly,
     eARIAMultiSelectable
   },
-  { // treeitem
-    &nsGkAtoms::treeitem,
+  {
+    "treeitem",
     roles::OUTLINEITEM,
     kUseMapRole,
     eNoValue,
     eActivateAction, // XXX: should expose second 'expand/collapse' action based
                      // on states
     eNoLiveAttr,
     kNoReqStates,
     eARIASelectable,
     eARIACheckedMixed
   }
 };
 
 static nsRoleMapEntry sLandmarkRoleMap = {
-  &nsGkAtoms::_empty,
+  "",
   roles::NOTHING,
   kUseNativeRole,
   eNoValue,
   eNoAction,
   eNoLiveAttr,
   kNoReqStates
 };
 
 nsRoleMapEntry nsARIAMap::gEmptyRoleMap = {
-  &nsGkAtoms::_empty,
+  "",
   roles::NOTHING,
   kUseMapRole,
   eNoValue,
   eNoAction,
   eNoLiveAttr,
   kNoReqStates
 };
 
@@ -636,34 +636,34 @@ nsAttributeCharacteristics nsARIAMap::gW
 };
 
 PRUint32 nsARIAMap::gWAIUnivAttrMapLength = NS_ARRAY_LENGTH(nsARIAMap::gWAIUnivAttrMap);
 
 nsRoleMapEntry*
 aria::GetRoleMap(nsINode* aNode)
 {
   nsIContent* content = nsCoreUtils::GetRoleContent(aNode);
-  nsAutoString roles;
+  nsAutoString roleString;
   if (!content ||
-      !content->GetAttr(kNameSpaceID_None, nsGkAtoms::role, roles) ||
-      roles.IsEmpty()) {
+      !content->GetAttr(kNameSpaceID_None, nsGkAtoms::role, roleString) ||
+      roleString.IsEmpty()) {
     // We treat role="" as if the role attribute is absent (per aria spec:8.1.1)
     return nsnull;
   }
 
-  nsWhitespaceTokenizer tokenizer(roles);
+  nsWhitespaceTokenizer tokenizer(roleString);
   while (tokenizer.hasMoreTokens()) {
     // Do a binary search through table for the next role in role list
-    const nsDependentSubstring role = tokenizer.nextToken();
+    NS_LossyConvertUTF16toASCII role(tokenizer.nextToken());
     PRUint32 low = 0;
     PRUint32 high = ArrayLength(sWAIRoleMaps);
     while (low < high) {
       PRUint32 idx = (low + high) / 2;
-      PRInt32 compare = Compare(role, sWAIRoleMaps[idx].ARIARoleString());
-      if (compare == 0)
+      PRInt32 compare = strcmp(role.get(), sWAIRoleMaps[idx].roleString);
+      if (compare == 0) 
         return sWAIRoleMaps + idx;
 
       if (compare < 0)
         high = idx;
       else
         low = idx + 1;
     }
   }
--- a/accessible/src/base/nsARIAMap.h
+++ b/accessible/src/base/nsARIAMap.h
@@ -6,18 +6,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef _nsARIAMap_H_
 #define _nsARIAMap_H_
 
 #include "ARIAStateMap.h"
 #include "mozilla/a11y/Role.h"
 
-#include "nsIAtom.h"
-
+class nsIAtom;
 class nsIContent;
 class nsINode;
 
 ////////////////////////////////////////////////////////////////////////////////
 // Value constants
 
 /**
  * Used to define if role requires to expose nsIAccessibleValue.
@@ -132,31 +131,19 @@ enum EDefaultStateRule
 ////////////////////////////////////////////////////////////////////////////////
 // Role map entry
 
 /**
  * For each ARIA role, this maps the nsIAccessible information.
  */
 struct nsRoleMapEntry
 {
-  /**
-   * Return true if matches to the given ARIA role.
-   */
-  bool Is(nsIAtom* aARIARole) const
-    { return *roleAtom == aARIARole; }
-
-  /**
-   * Return ARIA role.
-   */
-  const nsDependentAtomString ARIARoleString() const
-    { return nsDependentAtomString(*roleAtom); }
-
   // ARIA role: string representation such as "button"
-  nsIAtom** roleAtom;
-
+  const char *roleString;
+  
   // Role mapping rule: maps to this nsIAccessibleRole
   mozilla::a11y::role role;
   
   // Role rule: whether to use mapped role or native semantics
   bool roleRule;
   
   // Value mapping rule: how to compute nsIAccessible value
   EValueRule valueRule;
--- a/accessible/src/base/nsAccUtils.cpp
+++ b/accessible/src/base/nsAccUtils.cpp
@@ -147,18 +147,19 @@ nsAccUtils::SetLiveContainerAttributes(n
         ancestor->GetAttr(kNameSpaceID_None, nsGkAtoms::aria_live,
                           live);
       } else if (role) {
         GetLiveAttrValue(role->liveAttRule, live);
       }
       if (!live.IsEmpty()) {
         SetAccAttr(aAttributes, nsGkAtoms::containerLive, live);
         if (role) {
-          nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::containerLiveRole,
-                                 role->ARIARoleString());
+          nsAccUtils::SetAccAttr(aAttributes,
+                                 nsGkAtoms::containerLiveRole,
+                                 NS_ConvertASCIItoUTF16(role->roleString));
         }
       }
     }
 
     // container-atomic attribute
     if (atomic.IsEmpty() &&
         nsAccUtils::HasDefinedARIAToken(ancestor, nsGkAtoms::aria_atomic) &&
         ancestor->GetAttr(kNameSpaceID_None, nsGkAtoms::aria_atomic, atomic))
--- a/accessible/src/base/nsAccUtils.h
+++ b/accessible/src/base/nsAccUtils.h
@@ -19,18 +19,22 @@
 #include "nsIDOMNode.h"
 #include "nsIPersistentProperties2.h"
 #include "nsIPresShell.h"
 #include "nsPoint.h"
 
 class nsAccessNode;
 class Accessible;
 class HyperTextAccessible;
+class nsHTMLTableAccessible;
 class DocAccessible;
 struct nsRoleMapEntry;
+#ifdef MOZ_XUL
+class nsXULTreeAccessible;
+#endif
 
 class nsAccUtils
 {
 public:
   /**
    * Returns value of attribute from the given attributes container.
    *
    * @param aAttributes - attributes container
--- a/accessible/src/base/nsAccessibilityService.cpp
+++ b/accessible/src/base/nsAccessibilityService.cpp
@@ -15,22 +15,22 @@
 #include "DocAccessible-inl.h"
 #include "FocusManager.h"
 #include "HTMLCanvasAccessible.h"
 #include "HTMLElementAccessibles.h"
 #include "HTMLImageMapAccessible.h"
 #include "HTMLLinkAccessible.h"
 #include "HTMLListAccessible.h"
 #include "HTMLSelectAccessible.h"
-#include "HTMLTableAccessibleWrap.h"
 #include "HyperTextAccessibleWrap.h"
 #include "nsAccessiblePivot.h"
 #include "nsAccUtils.h"
 #include "nsARIAMap.h"
 #include "nsIAccessibleProvider.h"
+#include "nsHTMLTableAccessibleWrap.h"
 #include "nsXFormsFormControlsAccessible.h"
 #include "nsXFormsWidgetsAccessible.h"
 #include "OuterDocAccessible.h"
 #include "Role.h"
 #include "RootAccessibleWrap.h"
 #include "States.h"
 #include "Statistics.h"
 #ifdef XP_WIN
@@ -62,26 +62,26 @@
 #include "nsObjectFrame.h"
 #include "nsTextFragment.h"
 #include "mozilla/FunctionTimer.h"
 #include "mozilla/dom/Element.h"
 #include "mozilla/Services.h"
 #include "mozilla/Util.h"
 
 #ifdef MOZ_XUL
-#include "XULAlertAccessible.h"
-#include "XULColorPickerAccessible.h"
-#include "XULComboboxAccessible.h"
-#include "XULElementAccessibles.h"
+#include "nsXULAlertAccessible.h"
+#include "nsXULColorPickerAccessible.h"
+#include "nsXULComboboxAccessible.h"
 #include "XULFormControlAccessible.h"
-#include "XULListboxAccessibleWrap.h"
-#include "XULMenuAccessibleWrap.h"
-#include "XULSliderAccessible.h"
-#include "XULTabAccessible.h"
-#include "XULTreeGridAccessibleWrap.h"
+#include "nsXULListboxAccessibleWrap.h"
+#include "nsXULMenuAccessibleWrap.h"
+#include "nsXULSliderAccessible.h"
+#include "nsXULTabAccessible.h"
+#include "nsXULTextAccessible.h"
+#include "nsXULTreeGridAccessibleWrap.h"
 #endif
 
 using namespace mozilla;
 using namespace mozilla::a11y;
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsAccessibilityService
 ////////////////////////////////////////////////////////////////////////////////
@@ -380,27 +380,27 @@ nsAccessibilityService::CreateHTMLRadioB
   return accessible;
 }
 
 already_AddRefed<Accessible>
 nsAccessibilityService::CreateHTMLTableAccessible(nsIContent* aContent,
                                                   nsIPresShell* aPresShell)
 {
   Accessible* accessible =
-    new HTMLTableAccessibleWrap(aContent, GetDocAccessible(aPresShell));
+    new nsHTMLTableAccessibleWrap(aContent, GetDocAccessible(aPresShell));
   NS_ADDREF(accessible);
   return accessible;
 }
 
 already_AddRefed<Accessible>
 nsAccessibilityService::CreateHTMLTableCellAccessible(nsIContent* aContent,
                                                       nsIPresShell* aPresShell)
 {
   Accessible* accessible =
-    new HTMLTableCellAccessibleWrap(aContent, GetDocAccessible(aPresShell));
+    new nsHTMLTableCellAccessibleWrap(aContent, GetDocAccessible(aPresShell));
   NS_ADDREF(accessible);
   return accessible;
 }
 
 already_AddRefed<Accessible>
 nsAccessibilityService::CreateHTMLTableRowAccessible(nsIContent* aContent,
                                                      nsIPresShell* aPresShell)
 {
@@ -460,17 +460,17 @@ nsAccessibilityService::CreateHTMLBRAcce
   return accessible;
 }
 
 already_AddRefed<Accessible>
 nsAccessibilityService::CreateHTMLCaptionAccessible(nsIContent* aContent,
                                                     nsIPresShell* aPresShell)
 {
   Accessible* accessible =
-    new HTMLCaptionAccessible(aContent, GetDocAccessible(aPresShell));
+    new nsHTMLCaptionAccessible(aContent, GetDocAccessible(aPresShell));
   NS_ADDREF(accessible);
   return accessible;
 }
 
 void
 nsAccessibilityService::ContentRangeInserted(nsIPresShell* aPresShell,
                                              nsIContent* aContainer,
                                              nsIContent* aStartChild,
@@ -525,17 +525,17 @@ void
 nsAccessibilityService::TreeViewChanged(nsIPresShell* aPresShell,
                                         nsIContent* aContent,
                                         nsITreeView* aView)
 {
   DocAccessible* document = GetDocAccessible(aPresShell);
   if (document) {
     Accessible* accessible = document->GetAccessible(aContent);
     if (accessible) {
-      XULTreeAccessible* treeAcc = accessible->AsXULTree();
+      nsXULTreeAccessible* treeAcc = accessible->AsXULTree();
       if (treeAcc) 
         treeAcc->TreeViewChanged(aView);
     }
   }
 }
 
 void
 nsAccessibilityService::UpdateListBullet(nsIPresShell* aPresShell,
@@ -1021,17 +1021,17 @@ nsAccessibilityService::GetOrCreateAcces
 
     newAcc = new HyperTextAccessibleWrap(content, docAcc);
     if (docAcc->BindToDocument(newAcc, aria::GetRoleMap(aNode)))
       return newAcc;
     return nsnull;
   }
 
   nsRoleMapEntry* roleMapEntry = aria::GetRoleMap(aNode);
-  if (roleMapEntry && roleMapEntry->Is(nsGkAtoms::presentation)) {
+  if (roleMapEntry && !nsCRT::strcmp(roleMapEntry->roleString, "presentation")) {
     // Ignore presentation role if element is focusable (focus event shouldn't
     // be ever lost and should be sensible).
     if (content->IsFocusable())
       roleMapEntry = nsnull;
     else
       return nsnull;
   }
 
@@ -1068,17 +1068,18 @@ nsAccessibilityService::GetOrCreateAcces
                 roleMapEntry = &nsARIAMap::gEmptyRoleMap;
             }
 
             break;
           }
 
 #ifdef DEBUG
           nsRoleMapEntry* tableRoleMapEntry = aria::GetRoleMap(tableContent);
-          NS_ASSERTION(tableRoleMapEntry && tableRoleMapEntry->Is(nsGkAtoms::presentation),
+          NS_ASSERTION(tableRoleMapEntry &&
+                       !nsCRT::strcmp(tableRoleMapEntry->roleString, "presentation"),
                        "No accessible for parent table and it didn't have role of presentation");
 #endif
 
           if (!roleMapEntry && !content->IsFocusable()) {
             // Table-related descendants of presentation table are also
             // presentation if they aren't focusable and have not explicit ARIA
             // role (don't create accessibles for them unless they need to fire
             // focus events).
@@ -1308,37 +1309,37 @@ nsAccessibilityService::CreateAccessible
   switch (type)
   {
 #ifdef MOZ_XUL
     case nsIAccessibleProvider::NoAccessible:
       return nsnull;
 
     // XUL controls
     case nsIAccessibleProvider::XULAlert:
-      accessible = new XULAlertAccessible(aContent, aDoc);
+      accessible = new nsXULAlertAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULButton:
       accessible = new XULButtonAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULCheckbox:
       accessible = new XULCheckboxAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULColorPicker:
-      accessible = new XULColorPickerAccessible(aContent, aDoc);
+      accessible = new nsXULColorPickerAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULColorPickerTile:
-      accessible = new XULColorPickerTileAccessible(aContent, aDoc);
+      accessible = new nsXULColorPickerTileAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULCombobox:
-      accessible = new XULComboboxAccessible(aContent, aDoc);
+      accessible = new nsXULComboboxAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULDropmarker:
       accessible = new XULDropmarkerAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULGroupbox:
       accessible = new XULGroupboxAccessible(aContent, aDoc);
@@ -1351,137 +1352,137 @@ nsAccessibilityService::CreateAccessible
                              nsGkAtoms::tooltiptext))
         return nsnull;
 
       accessible = new ImageAccessibleWrap(aContent, aDoc);
       break;
 
     }
     case nsIAccessibleProvider::XULLink:
-      accessible = new XULLinkAccessible(aContent, aDoc);
+      accessible = new nsXULLinkAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULListbox:
-      accessible = new XULListboxAccessibleWrap(aContent, aDoc);
+      accessible = new nsXULListboxAccessibleWrap(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULListCell:
-      accessible = new XULListCellAccessibleWrap(aContent, aDoc);
+      accessible = new nsXULListCellAccessibleWrap(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULListHead:
-      accessible = new XULColumAccessible(aContent, aDoc);
+      accessible = new nsXULColumAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULListHeader:
-      accessible = new XULColumnItemAccessible(aContent, aDoc);
+      accessible = new nsXULColumnItemAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULListitem:
-      accessible = new XULListitemAccessible(aContent, aDoc);
+      accessible = new nsXULListitemAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULMenubar:
-      accessible = new XULMenubarAccessible(aContent, aDoc);
+      accessible = new nsXULMenubarAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULMenuitem:
-      accessible = new XULMenuitemAccessibleWrap(aContent, aDoc);
+      accessible = new nsXULMenuitemAccessibleWrap(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULMenupopup:
     {
 #ifdef MOZ_ACCESSIBILITY_ATK
       // ATK considers this node to be redundant when within menubars, and it makes menu
       // navigation with assistive technologies more difficult
       // XXX In the future we will should this for consistency across the nsIAccessible
       // implementations on each platform for a consistent scripting environment, but
       // then strip out redundant accessibles in the AccessibleWrap class for each platform.
       nsIContent *parent = aContent->GetParent();
       if (parent && parent->NodeInfo()->Equals(nsGkAtoms::menu,
                                                kNameSpaceID_XUL))
         return nsnull;
 #endif
-      accessible = new XULMenupopupAccessible(aContent, aDoc);
+      accessible = new nsXULMenupopupAccessible(aContent, aDoc);
       break;
 
     }
     case nsIAccessibleProvider::XULMenuSeparator:
-      accessible = new XULMenuSeparatorAccessible(aContent, aDoc);
+      accessible = new nsXULMenuSeparatorAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULPane:
       accessible = new EnumRoleAccessible(aContent, aDoc, roles::PANE);
       break;
 
     case nsIAccessibleProvider::XULProgressMeter:
       accessible = new XULProgressMeterAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULStatusBar:
       accessible = new XULStatusBarAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULScale:
-      accessible = new XULSliderAccessible(aContent, aDoc);
+      accessible = new nsXULSliderAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULRadioButton:
       accessible = new XULRadioButtonAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULRadioGroup:
       accessible = new XULRadioGroupAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTab:
-      accessible = new XULTabAccessible(aContent, aDoc);
+      accessible = new nsXULTabAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTabs:
-      accessible = new XULTabsAccessible(aContent, aDoc);
+      accessible = new nsXULTabsAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTabpanels:
-      accessible = new XULTabpanelsAccessible(aContent, aDoc);
+      accessible = new nsXULTabpanelsAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULText:
-      accessible = new XULLabelAccessible(aContent, aDoc);
+      accessible = new nsXULTextAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTextBox:
       accessible = new XULTextFieldAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULThumb:
-      accessible = new XULThumbAccessible(aContent, aDoc);
+      accessible = new nsXULThumbAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTree:
       return CreateAccessibleForXULTree(aContent, aDoc);
 
     case nsIAccessibleProvider::XULTreeColumns:
-      accessible = new XULTreeColumAccessible(aContent, aDoc);
+      accessible = new nsXULTreeColumAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTreeColumnItem:
-      accessible = new XULColumnItemAccessible(aContent, aDoc);
+      accessible = new nsXULColumnItemAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULToolbar:
       accessible = new XULToolbarAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULToolbarSeparator:
       accessible = new XULToolbarSeparatorAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULTooltip:
-      accessible = new XULTooltipAccessible(aContent, aDoc);
+      accessible = new nsXULTooltipAccessible(aContent, aDoc);
       break;
 
     case nsIAccessibleProvider::XULToolbarButton:
       accessible = new XULToolbarButtonAccessible(aContent, aDoc);
       break;
 
 #endif // MOZ_XUL
 
@@ -1654,17 +1655,18 @@ nsAccessibilityService::CreateHTMLAccess
       tag == nsGkAtoms::h6 ||
       tag == nsGkAtoms::q) {
     Accessible* accessible = new HyperTextAccessibleWrap(aContent, aDoc);
     NS_IF_ADDREF(accessible);
     return accessible;
   }
 
   if (nsCoreUtils::IsHTMLTableHeader(aContent)) {
-    Accessible* accessible = new HTMLTableHeaderCellAccessibleWrap(aContent, aDoc);
+    Accessible* accessible = new nsHTMLTableHeaderCellAccessibleWrap(aContent,
+                                                                     aDoc);
     NS_IF_ADDREF(accessible);
     return accessible;
   }
 
   if (tag == nsGkAtoms::output) {
     Accessible* accessible = new HTMLOutputAccessible(aContent, aDoc);
     NS_IF_ADDREF(accessible);
     return accessible;
@@ -1764,17 +1766,17 @@ nsAccessibilityService::CreateAccessible
     nsIFrame* parentFrame = aFrame->GetParent();
     if (parentFrame && parentFrame->GetType() == nsGkAtoms::deckFrame) {
       // If deck frame is for xul:tabpanels element then the given node has
       // tabpanel accessible.
       nsCOMPtr<nsIContent> parentContent = parentFrame->GetContent();
 #ifdef MOZ_XUL
       if (parentContent->NodeInfo()->Equals(nsGkAtoms::tabpanels,
                                             kNameSpaceID_XUL)) {
-        Accessible* accessible = new XULTabpanelAccessible(aContent, aDoc);
+        Accessible* accessible = new nsXULTabpanelAccessible(aContent, aDoc);
         NS_IF_ADDREF(accessible);
         return accessible;
       }
 #endif
       Accessible* accessible = new EnumRoleAccessible(aContent, aDoc,
                                                       roles::PROPERTYPAGE);
       NS_IF_ADDREF(accessible);
       return accessible;
@@ -1798,23 +1800,23 @@ nsAccessibilityService::CreateAccessible
   if (!treeColumns)
     return nsnull;
 
   PRInt32 count = 0;
   treeColumns->GetCount(&count);
 
   // Outline of list accessible.
   if (count == 1) {
-    Accessible* accessible = new XULTreeAccessible(aContent, aDoc);
+    Accessible* accessible = new nsXULTreeAccessible(aContent, aDoc);
     NS_IF_ADDREF(accessible);
     return accessible;
   }
 
   // Table or tree table accessible.
-  Accessible* accessible = new XULTreeGridAccessibleWrap(aContent, aDoc);
+  Accessible* accessible = new nsXULTreeGridAccessibleWrap(aContent, aDoc);
   NS_IF_ADDREF(accessible);
   return accessible;
 }
 #endif
 
 ////////////////////////////////////////////////////////////////////////////////
 // Services
 ////////////////////////////////////////////////////////////////////////////////
--- a/accessible/src/base/nsAccessibilityService.h
+++ b/accessible/src/base/nsAccessibilityService.h
@@ -165,17 +165,17 @@ public:
    */
   static bool IsShutdown() { return gIsShutdown; }
 
   /**
    * Return an accessible for the given DOM node from the cache or create new
    * one.
    *
    * @param  aNode             [in] the given node
-   * @param  aDoc              [in] the doc accessible of the node
+   * @param  aDoc              [in] the doc accessible of the node  
    * @param  aIsSubtreeHidden  [out, optional] indicates whether the node's
    *                             frame and its subtree is hidden
    */
   Accessible* GetOrCreateAccessible(nsINode* aNode, DocAccessible* aDoc,
                                     bool* aIsSubtreeHidden = nsnull);
 
 private:
   // nsAccessibilityService creation is controlled by friend
--- a/accessible/src/generic/Accessible.cpp
+++ b/accessible/src/generic/Accessible.cpp
@@ -340,17 +340,17 @@ Accessible::Description(nsString& aDescr
             aDescription.Truncate();
         }
       }
     }
     aDescription.CompressWhitespace();
 }
 
 NS_IMETHODIMP
-Accessible::GetAccessKey(nsAString& aAccessKey)
+Accessible::GetKeyboardShortcut(nsAString& aAccessKey)
 {
   aAccessKey.Truncate();
 
   if (IsDefunct())
     return NS_ERROR_FAILURE;
 
   AccessKey().ToString(aAccessKey);
   return NS_OK;
@@ -876,25 +876,99 @@ Accessible::GetDeepestChildAtPoint(PRInt
 
   NS_IF_ADDREF(*aAccessible = ChildAtPoint(aX, aY, eDeepestChild));
   return NS_OK;
 }
 
 void
 Accessible::GetBoundsRect(nsRect& aTotalBounds, nsIFrame** aBoundingFrame)
 {
-  nsIFrame* frame = GetFrame();
-  if (frame) {
-    *aBoundingFrame = nsLayoutUtils::GetContainingBlockForClientRect(frame);
-    aTotalBounds = nsLayoutUtils::
-      GetAllInFlowRectsUnion(frame, *aBoundingFrame,
-                             nsLayoutUtils::RECTS_ACCOUNT_FOR_TRANSFORMS);
+/*
+ * This method is used to determine the bounds of a content node.
+ * Because HTML wraps and links are not always rectangular, this
+ * method uses the following algorithm:
+ *
+ * 1) Start with an empty rectangle
+ * 2) Add the rect for the primary frame from for the DOM node.
+ * 3) For each next frame at the same depth with the same DOM node, add that rect to total
+ * 4) If that frame is an inline frame, search deeper at that point in the tree, adding all rects
+ */
+
+  // Initialization area
+  *aBoundingFrame = nsnull;
+  nsIFrame* firstFrame = GetFrame();
+  if (!firstFrame)
+    return;
+
+  // Find common relative parent
+  // This is an ancestor frame that will incompass all frames for this content node.
+  // We need the relative parent so we can get absolute screen coordinates
+  nsIFrame *ancestorFrame = firstFrame;
+
+  while (ancestorFrame) {  
+    *aBoundingFrame = ancestorFrame;
+    // If any other frame type, we only need to deal with the primary frame
+    // Otherwise, there may be more frames attached to the same content node
+    if (ancestorFrame->GetType() != nsGkAtoms::inlineFrame &&
+        ancestorFrame->GetType() != nsGkAtoms::textFrame)
+      break;
+    ancestorFrame = ancestorFrame->GetParent();
+  }
+
+  nsIFrame *iterFrame = firstFrame;
+  nsCOMPtr<nsIContent> firstContent(mContent);
+  nsIContent* iterContent = firstContent;
+  PRInt32 depth = 0;
+
+  // Look only at frames below this depth, or at this depth (if we're still on the content node we started with)
+  while (iterContent == firstContent || depth > 0) {
+    // Coordinates will come back relative to parent frame
+    nsRect currFrameBounds = iterFrame->GetRect();
+    
+    // Make this frame's bounds relative to common parent frame
+    currFrameBounds +=
+      iterFrame->GetParent()->GetOffsetToExternal(*aBoundingFrame);
+
+    // Add this frame's bounds to total
+    aTotalBounds.UnionRect(aTotalBounds, currFrameBounds);
+
+    nsIFrame *iterNextFrame = nsnull;
+
+    if (iterFrame->GetType() == nsGkAtoms::inlineFrame) {
+      // Only do deeper bounds search if we're on an inline frame
+      // Inline frames can contain larger frames inside of them
+      iterNextFrame = iterFrame->GetFirstPrincipalChild();
+    }
+
+    if (iterNextFrame) 
+      ++depth;  // Child was found in code above this: We are going deeper in this iteration of the loop
+    else