Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge last PGO-green changeset of mozilla-inbound to mozilla-central

  • Loading branch information...
commit 14a7b99c41a1b1c69d6373c43de8531b6f9828b9 2 parents 2cc0890 + c792a70
@edmorley edmorley authored
Showing with 3,086 additions and 2,664 deletions.
  1. +39 −1 accessible/src/base/Logging.cpp
  2. +1 −0  accessible/src/base/Logging.h
  3. +28 −9 accessible/src/generic/DocAccessible.cpp
  4. +6 −6 accessible/src/jsat/Utils.jsm
  5. +1 −1  accessible/src/xforms/nsXFormsAccessible.cpp
  6. +1 −0  accessible/tests/mochitest/common.js
  7. +12 −2 accessible/tests/mochitest/events.js
  8. +1 −2  accessible/tests/mochitest/hittest/test_general.html
  9. +1 −2  accessible/tests/mochitest/hyperlink/test_general.html
  10. +1 −2  accessible/tests/mochitest/hypertext/test_general.html
  11. +1 −2  accessible/tests/mochitest/states/test_aria_imgmap.html
  12. +3 −3 accessible/tests/mochitest/states/test_link.html
  13. +0 −2  accessible/tests/mochitest/states/test_popup.xul
  14. +1 −2  accessible/tests/mochitest/tree/test_aria_imgmap.html
  15. +1 −2  accessible/tests/mochitest/tree/test_img.html
  16. +1 −1  accessible/tests/mochitest/treeupdate/Makefile.in
  17. +8 −7 accessible/tests/mochitest/treeupdate/test_imagemap.html
  18. +3 −3 b2g/config/tooltool-manifests/macosx64/releng.manifest
  19. +1 −4 browser/app/profile/firefox.js
  20. +8 −0 browser/base/content/browser-appmenu.inc
  21. +9 −0 browser/base/content/browser-menubar.inc
  22. +14 −13 browser/base/content/browser-plugins.js
  23. +6 −1 browser/base/content/browser-sets.inc
  24. +1 −1  browser/base/content/browser-social.js
  25. +80 −5 browser/base/content/browser.js
  26. +14 −5 browser/base/content/browser.xul
  27. +8 −0 browser/base/content/test/Makefile.in
  28. +47 −0 browser/base/content/test/browser_bug797677.js
  29. +8 −8 browser/base/content/test/browser_pluginnotification.js
  30. +11 −0 browser/base/content/test/browser_private_browsing_window.js
  31. +1 −1  browser/base/content/test/browser_social_chatwindow.js
  32. +1 −1  browser/base/content/test/browser_social_flyout.js
  33. +1 −1  browser/base/content/test/browser_social_isVisible.js
  34. +1 −1  browser/base/content/test/browser_social_shareButton.js
  35. +1 −1  browser/base/content/test/browser_social_sidebar.js
  36. +13 −3 browser/base/content/test/browser_social_toolbar.js
  37. +5 −0 browser/base/content/test/plugin_bug797677.html
  38. +1 −1  browser/branding/aurora/branding.nsi
  39. +1 −1  browser/branding/nightly/branding.nsi
  40. +1 −1  browser/branding/official/branding.nsi
  41. +1 −1  browser/branding/unofficial/branding.nsi
  42. +16 −6 browser/components/downloads/content/indicator.js
  43. +15 −8 browser/components/downloads/src/DownloadsUI.js
  44. +18 −1 browser/components/nsBrowserGlue.js
  45. +30 −30 browser/components/places/content/controller.js
  46. +3 −4 browser/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml
  47. +6 −6 browser/components/privatebrowsing/src/nsPrivateBrowsingService.js
  48. +3 −3 browser/config/tooltool-manifests/linux32/clang.manifest
  49. +3 −3 browser/config/tooltool-manifests/linux64/clang.manifest
  50. +3 −3 browser/config/tooltool-manifests/macosx32/releng.manifest
  51. +3 −3 browser/config/tooltool-manifests/macosx64/releng.manifest
  52. +9 −4 browser/devtools/styleeditor/StyleEditor.jsm
  53. +5 −1 browser/devtools/styleeditor/test/browser_styleeditor_private.js
  54. +7 −12 browser/installer/windows/nsis/stub.nsi
  55. +0 −6 browser/locales/en-US/chrome/browser-region/region.properties
  56. +3 −1 browser/locales/en-US/chrome/browser/browser.dtd
  57. +1 −24 browser/themes/gnomestripe/browser.css
  58. 0  ...ensions/stripes-info-negative-small.png → browser/themes/gnomestripe/click-to-play-warning-stripes.png
  59. +1 −0  browser/themes/gnomestripe/jar.mn
  60. +3 −21 browser/themes/pinstripe/browser.css
  61. 0  ...xtensions/stripes-info-negative-small.png → browser/themes/pinstripe/click-to-play-warning-stripes.png
  62. +1 −0  browser/themes/pinstripe/jar.mn
  63. +7 −6 browser/themes/winstripe/browser.css
  64. BIN  browser/themes/winstripe/click-to-play-warning-stripes.png
  65. +2 −0  browser/themes/winstripe/jar.mn
  66. +0 −5 build/mobile/sutagent/android/AndroidManifest.xml
  67. +21 −11 build/mobile/sutagent/android/DoCommand.java
  68. +0 −1  build/mobile/sutagent/android/Makefile.in
  69. +8 −2 build/mobile/sutagent/android/SUTAgentAndroid.java
  70. +0 −20 build/mobile/sutagent/android/SUTStartupIntentReceiver.java
  71. +19 −1 build/mobile/sutagent/android/watcher/WatcherService.java
  72. +3 −13 build/unix/build-clang/build-clang.py
  73. +0 −45 build/unix/build-clang/clang-deterministic.patch
  74. +0 −10 build/unix/build-clang/compiler-rt-gnu89-inline.patch
  75. +0 −86 build/unix/build-clang/llvm-deterministic.patch
  76. +0 −120 build/unix/build-clang/old-ld-hack.patch
  77. +1 −4 caps/idl/nsIScriptSecurityManager.idl
  78. +0 −14 caps/src/nsScriptSecurityManager.cpp
  79. +5 −9 configure.in
  80. +11 −32 content/base/src/nsContentUtils.cpp
  81. +7 −5 content/html/content/src/nsTextEditorState.cpp
  82. +2 −1  content/html/content/src/nsTextEditorState.h
  83. +0 −9 content/html/document/src/nsHTMLDocument.cpp
  84. +8 −8 content/smil/nsSMILAnimationController.h
  85. +1 −1  content/smil/nsSMILCompositor.h
  86. +1 −1  content/smil/nsSMILTimedElement.h
  87. +4 −12 dbm/include/mcom_db.h
  88. +14 −12 docshell/base/nsDocShell.cpp
  89. +25 −1 dom/apps/src/AppsUtils.jsm
  90. +109 −30 dom/apps/src/PermissionsInstaller.jsm
  91. +35 −8 dom/apps/src/Webapps.jsm
  92. +15 −19 dom/base/nsLocation.cpp
  93. +9 −4 dom/base/nsWindowMemoryReporter.cpp
  94. +14 −0 dom/bindings/BindingUtils.cpp
  95. +4 −0 dom/bindings/BindingUtils.h
  96. +6 −3 dom/bindings/Bindings.conf
  97. +56 −23 dom/bindings/Codegen.py
  98. +5 −2 dom/bindings/Configuration.py
  99. +1 −0  dom/bindings/Errors.msg
  100. +16 −10 dom/bindings/parser/WebIDL.py
  101. +1 −1  dom/bindings/parser/tests/test_callback.py
  102. +3 −3 dom/bindings/parser/tests/test_treatNonCallableAsNull.py
  103. +7 −2 dom/bindings/test/TestBindingHeader.h
  104. +6 −0 dom/bindings/test/TestCodeGen.webidl
  105. +10 −6 dom/camera/GonkCameraControl.cpp
  106. +0 −4 dom/encoding/EncodingUtils.cpp
  107. +3 −3 dom/encoding/EncodingUtils.h
  108. +4 −4 dom/encoding/test/unit/test_singlebytes.js
  109. +5 −0 dom/ipc/TabParent.cpp
  110. +0 −2  dom/locales/en-US/chrome/charsetTitles.properties
  111. +1 −1  dom/media/MediaManager.cpp
  112. +100 −40 dom/messages/SystemMessageInternal.js
  113. +66 −6 dom/messages/SystemMessageManager.js
  114. +4 −0 dom/plugins/base/nsJSNPRuntime.cpp
  115. +0 −1  dom/plugins/base/nsPluginInstanceOwner.cpp
  116. +3 −1 dom/plugins/test/testplugin/nptest_utils.cpp
  117. +5 −3 dom/src/json/nsJSON.cpp
  118. +13 −0 dom/src/jsurl/nsJSProtocolHandler.cpp
  119. +1 −1  dom/src/storage/nsDOMStorage.cpp
  120. +7 −0 dom/system/Makefile.in
  121. +5 −9 dom/tests/browser/browser_webapps_permissions.js
  122. +4 −8 dom/tests/browser/browser_webapps_perms_reinstall.js
  123. +2 −3 dom/tests/browser/test-webapp-original.webapp
  124. +1 −2  dom/tests/browser/test-webapp-reinstall.webapp
  125. +2 −3 dom/tests/browser/test-webapp.webapp
  126. +15 −0 dom/webidl/EventHandler.webidl
  127. +1 −0  dom/webidl/WebIDL.mk
  128. +8 −8 dom/webidl/WebSocket.webidl
  129. +2 −2 dom/webidl/XMLHttpRequest.webidl
  130. +14 −14 dom/webidl/XMLHttpRequestEventTarget.webidl
  131. +21 −0 editor/libeditor/html/crashtests/793866.html
  132. +1 −0  editor/libeditor/html/crashtests/crashtests.list
  133. +3 −0  embedding/browser/webBrowser/nsIWebBrowserChrome.idl
  134. +29 −0 embedding/components/windowwatcher/src/nsWindowWatcher.cpp
  135. +1 −0  embedding/test/Makefile.in
  136. +8 −0 embedding/test/test_private_window_from_content.html
  137. +3 −1 extensions/spellcheck/src/mozInlineSpellChecker.cpp
  138. +13 −6 gfx/2d/DrawTargetCairo.cpp
  139. +9 −1 gfx/2d/DrawTargetCairo.h
  140. +8 −0 gfx/layers/Makefile.in
  141. +0 −8 intl/locale/src/charsetalias.properties
  142. +1 −1  intl/uconv/idl/nsICharsetConverterManager.idl
  143. +2 −2 intl/uconv/idl/nsIScriptableUConv.idl
  144. +22 −23 intl/uconv/src/charsetData.properties
  145. +1 −1  intl/uconv/src/nsCharsetConverterManager.cpp
  146. +0 −9 intl/uconv/src/nsUConvModule.cpp
  147. +0 −2  intl/uconv/tests/unit/test_bug718500.js
  148. +1 −1  intl/uconv/tests/unit/test_decode_CP864.js
  149. +1 −1  intl/uconv/tests/unit/test_encode_CP864.js
  150. +0 −394 intl/uconv/ucvibm/864i.uf
  151. +0 −298 intl/uconv/ucvibm/864i.ut
  152. +0 −2  intl/uconv/ucvibm/Makefile.in
  153. +0 −39 intl/uconv/ucvibm/nsCP864iToUnicode.cpp
  154. +0 −34 intl/uconv/ucvibm/nsCP864iToUnicode.h
  155. +0 −10 intl/uconv/ucvibm/nsUCvIBMCID.h
  156. +0 −38 intl/uconv/ucvibm/nsUnicodeToCP864i.cpp
  157. +0 −32 intl/uconv/ucvibm/nsUnicodeToCP864i.h
  158. +0 −5 ipc/chromium/src/base/file_util_posix.cc
  159. +1 −1  ipc/chromium/src/chrome/common/ipc_channel_posix.cc
  160. +0 −8 ipc/testshell/XPCShellEnvironment.cpp
  161. +3 −4 js/src/builtin/Eval.cpp
  162. +12 −12 js/src/builtin/RegExp.cpp
  163. +2 −2 js/src/builtin/RegExp.h
  164. +1 −1  js/src/ctypes/CTypes.cpp
  165. +2 −2 js/src/frontend/BytecodeCompiler.cpp
  166. +2 −2 js/src/frontend/BytecodeCompiler.h
  167. +8 −8 js/src/frontend/BytecodeEmitter.cpp
  168. +2 −2 js/src/frontend/Parser.cpp
  169. +1 −1  js/src/frontend/Parser.h
  170. +4 −5 js/src/frontend/TokenStream.cpp
  171. +1 −2  js/src/frontend/TokenStream.h
  172. +9 −11 js/src/ion/MIR.cpp
  173. +40 −8 js/src/ion/RangeAnalysis.cpp
  174. +13 −1 js/src/ion/RangeAnalysis.h
  175. +1 −1  js/src/jsapi-tests/testVersion.cpp
  176. +26 −21 js/src/jsapi.cpp
  177. +13 −0 js/src/jsapi.h
  178. +1 −1  js/src/jsatom.cpp
  179. +1 −1  js/src/jsclone.cpp
  180. +1 −1  js/src/jscompartment.cpp
  181. +2 −3 js/src/jsdbgapi.cpp
  182. +1 −1  js/src/jsexn.cpp
  183. +7 −10 js/src/jsfun.cpp
  184. +0 −139 js/src/jsinterp.cpp
  185. +1 −1  js/src/json.cpp
  186. +1 −1  js/src/json.h
  187. +5 −5 js/src/jsonparser.h
  188. +16 −8 js/src/jsproxy.cpp
  189. +1 −1  js/src/jsreflect.cpp
  190. +4 −4 js/src/jsscript.cpp
  191. +1 −1  js/src/jsscript.h
  192. +24 −22 js/src/jsstr.cpp
  193. +2 −2 js/src/jsxml.cpp
  194. +5 −2 js/src/shell/js.cpp
  195. +2 −3 js/src/vm/Debugger.cpp
  196. +1 −1  js/src/vm/Debugger.h
  197. +9 −9 js/src/vm/RegExpObject.cpp
  198. +5 −5 js/src/vm/RegExpObject.h
  199. +6 −0 js/src/vm/String.h
  200. +4 −0 js/src/vm/StringBuffer.h
  201. +0 −7 js/xpconnect/shell/xpcshell.cpp
  202. +3 −27 js/xpconnect/src/XPCComponents.cpp
  203. +1 −1  js/xpconnect/tests/chrome/Makefile.in
  204. +48 −0 js/xpconnect/tests/chrome/test_bug793433.xul
  205. +1 −16 js/xpconnect/wrappers/AccessCheck.cpp
  206. +9 −7 layout/base/FrameLayerBuilder.cpp
  207. +0 −1  layout/base/nsBidiPresUtils.cpp
  208. +3 −1 layout/base/nsCSSRendering.cpp
  209. +2 −2 layout/base/nsFrameManager.cpp
  210. +1 −2  layout/base/nsPresContext.cpp
  211. +1 −0  layout/build/Makefile.in
  212. +1 −0  layout/forms/Makefile.in
  213. +1 −1  layout/forms/nsIListControlFrame.h
  214. +17 −17 layout/forms/nsListControlFrame.cpp
  215. +1 −1  layout/forms/nsListControlFrame.h
  216. +1 −1  layout/forms/nsTextControlFrame.cpp
  217. +0 −1  layout/generic/Makefile.in
  218. +1 −7 layout/generic/nsAbsoluteContainingBlock.cpp
  219. +8 −8 layout/generic/nsBlockFrame.cpp
  220. +2 −2 layout/generic/nsBlockReflowState.cpp
  221. +0 −1  layout/generic/nsCanvasFrame.cpp
  222. +2 −5 layout/generic/nsGfxScrollFrame.cpp
  223. +2 −2 layout/generic/nsObjectFrame.cpp
  224. +2 −2 layout/generic/nsSimplePageSequence.cpp
  225. +2 −2 layout/generic/nsTextFrameUtils.cpp
  226. +4 −1 layout/generic/nsViewportFrame.cpp
  227. +1 −0  layout/inspector/src/Makefile.in
  228. +1 −0  layout/mathml/Makefile.in
  229. +4 −9 layout/mathml/nsMathMLChar.cpp
  230. +1 −1  layout/printing/Makefile.in
  231. +1 −1  layout/style/nsAnimationManager.cpp
  232. +11 −3 layout/style/nsCSSStyleSheet.cpp
  233. +4 −4 layout/style/nsComputedDOMStyle.cpp
  234. +1 −1  layout/style/nsTransitionManager.cpp
  235. +1 −1  layout/xul/base/src/Makefile.in
  236. +1 −1  layout/xul/base/src/nsBoxObject.cpp
  237. +1 −1  layout/xul/base/src/nsListItemFrame.h
  238. +12 −3 media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
  239. +1 −0  mfbt/BloomFilter.h
  240. +2 −2 mfbt/RangedPtr.h
  241. +72 −69 mfbt/SHA1.cpp
  242. +45 −31 mfbt/SHA1.h
  243. +2 −1  mfbt/tests/Makefile.in
  244. +102 −0 mfbt/tests/TestBloomFilter.cpp
  245. +20 −15 mfbt/tests/TestSHA1.cpp
  246. +4 −3 mfbt/tests/TestWeakPtr.cpp
  247. +17 −0 mobile/android/base/BrowserApp.java
  248. +5 −0 mobile/android/base/GeckoMenu.java
  249. +1 −1  mobile/android/base/android-sync-files.mk
  250. +9 −0 mobile/android/base/locales/en-US/sync_strings.dtd
  251. +9 −0 mobile/android/base/resources/xml/sync_options.xml.in
  252. +13 −0 mobile/android/base/sync/ExtendedJSONObject.java
  253. +37 −14 mobile/android/base/sync/GlobalSession.java
  254. +8 −0 mobile/android/base/sync/MetaGlobalException.java
  255. +13 −2 mobile/android/base/sync/PersistedMetaGlobal.java
  256. +131 −9 mobile/android/base/sync/SyncConfiguration.java
  257. +209 −0 mobile/android/base/sync/config/activities/SelectEnginesActivity.java
  258. +63 −2 mobile/android/base/sync/setup/SyncAccounts.java
  259. +2 −15 mobile/android/base/sync/setup/activities/SendTabActivity.java
  260. +1 −1  mobile/android/base/sync/stage/FetchMetaGlobalStage.java
  261. +61 −4 mobile/android/base/sync/stage/ServerSyncStage.java
  262. +10 −0 mobile/android/chrome/content/browser.js
  263. +1 −0  mobile/android/sync/java-sources.mn
  264. +16 −0 mobile/android/sync/manifests/SyncAndroidManifest_activities.xml.in
  265. +10 −0 mobile/android/sync/strings.xml.in
  266. +9 −12 mobile/xul/chrome/content/Util.js
  267. +2 −6 modules/libpref/src/init/all.js
  268. +2 −2 netwerk/base/src/nsSocketTransportService2.cpp
  269. +1 −0  netwerk/cache/Makefile.in
  270. +8 −12 netwerk/ipc/NeckoChild.cpp
  271. +2 −1  netwerk/ipc/NeckoChild.h
  272. +5 −4 netwerk/ipc/NeckoParent.cpp
  273. +2 −1  netwerk/ipc/NeckoParent.h
  274. +6 −2 netwerk/ipc/PNecko.ipdl
  275. +1 −0  netwerk/mime/nsMimeTypes.h
  276. +6 −3 netwerk/protocol/http/HttpChannelChild.cpp
  277. +27 −14 netwerk/protocol/http/HttpChannelParent.cpp
  278. +11 −3 netwerk/protocol/http/HttpChannelParent.h
  279. +1 −4 netwerk/protocol/http/PHttpChannel.ipdl
  280. +18 −5 netwerk/protocol/http/UserAgentOverrides.jsm
  281. +1 −1  netwerk/protocol/websocket/WebSocketChannel.cpp
  282. +1 −1  netwerk/sctp/datachannel/DataChannel.cpp
  283. +17 −14 netwerk/wifi/Makefile.in
  284. +10 −0 netwerk/wifi/nsWifiAccessPoint.h
  285. +32 −8 netwerk/wifi/nsWifiMonitor.h
  286. +182 −0 netwerk/wifi/nsWifiMonitorGonk.cpp
  287. +2 −111 netwerk/wifi/nsWifiScannerMac.cpp
  288. +4 −2 parser/html/jArray.h
  289. +2 −2 security/manager/boot/src/nsSecureBrowserUIImpl.cpp
  290. +4 −4 security/manager/ssl/src/nsCertOverrideService.cpp
  291. +6 −6 security/manager/ssl/src/nsCertTree.cpp
  292. +2 −2 security/manager/ssl/src/nsNSSShutDown.cpp
  293. +25 −0 services/common/rest.js
  294. +23 −0 services/common/tests/unit/test_restrequest.js
  295. +43 −7 services/sync/modules/resource.js
  296. +48 −0 testing/mozbase/mozdevice/mozdevice/devicemanager.py
  297. +13 −13 testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py
  298. +5 −5 testing/mozbase/mozdevice/mozdevice/devicemanagerSUT.py
  299. +8 −1 testing/mozbase/mozdevice/mozdevice/sutcli.py
  300. +1 −1  testing/mozbase/mozdevice/setup.py
Sorry, we could not display the entire diff because too many files (343) changed.
View
40 accessible/src/base/Logging.cpp
@@ -196,7 +196,7 @@ LogDocParent(nsIDocument* aDocumentNode)
static void
LogDocInfo(nsIDocument* aDocumentNode, DocAccessible* aDocument)
{
- printf(" DOM id: %p, acc id: %p\n ",
+ printf(" DOM document: %p, acc document: %p\n ",
static_cast<void*>(aDocumentNode), static_cast<void*>(aDocument));
// log document info
@@ -323,6 +323,20 @@ LogRequest(nsIRequest* aRequest)
}
static void
+LogDocAccState(DocAccessible* aDocument)
+{
+ printf("document acc state: ");
+ if (aDocument->HasLoadState(DocAccessible::eCompletelyLoaded))
+ printf("completely loaded;");
+ else if (aDocument->HasLoadState(DocAccessible::eReady))
+ printf("ready;");
+ else if (aDocument->HasLoadState(DocAccessible::eDOMLoaded))
+ printf("DOM loaded;");
+ else if (aDocument->HasLoadState(DocAccessible::eTreeConstructed))
+ printf("tree constructed;");
+}
+
+static void
GetDocLoadEventType(AccEvent* aEvent, nsACString& aEventType)
{
uint32_t type = aEvent->GetEventType();
@@ -407,6 +421,30 @@ logging::DocLoad(const char* aMsg, nsIDocument* aDocumentNode)
}
void
+logging::DocCompleteLoad(DocAccessible* aDocument, bool aIsLoadEventTarget)
+{
+ MsgBegin(sDocLoadTitle, "document loaded *completely*");
+
+ nsIDocument* docNode = aDocument->GetDocumentNode();
+ printf(" DOM document: %p, acc document: %p\n",
+ static_cast<void*>(aDocument->GetDocumentNode()),
+ static_cast<void*>(aDocument));
+
+ printf(" ");
+ LogDocURI(aDocument->GetDocumentNode());
+ printf("\n");
+
+ printf(" ");
+ LogDocAccState(aDocument);
+ printf("\n");
+
+ printf(" document is load event target: %s\n",
+ (aIsLoadEventTarget ? "true" : "false"));
+
+ MsgEnd();
+}
+
+void
logging::DocLoadEventFired(AccEvent* aEvent)
{
nsAutoCString strEventType;
View
1  accessible/src/base/Logging.h
@@ -56,6 +56,7 @@ bool IsEnabled(uint32_t aModules);
void DocLoad(const char* aMsg, nsIWebProgress* aWebProgress,
nsIRequest* aRequest, uint32_t aStateFlags);
void DocLoad(const char* aMsg, nsIDocument* aDocumentNode);
+void DocCompleteLoad(DocAccessible* aDocument, bool aIsLoadEventTarget);
/**
* Log that document load event was fired.
View
37 accessible/src/generic/DocAccessible.cpp
@@ -1469,6 +1469,14 @@ DocAccessible::ContentRemoved(nsIContent* aContainerNode,
void
DocAccessible::RecreateAccessible(nsIContent* aContent)
{
+#ifdef A11Y_LOG
+ if (logging::IsEnabled(logging::eTree)) {
+ logging::MsgBegin("TREE", "accessible recreated");
+ logging::Node("content", aContent);
+ logging::MsgEnd();
+ }
+#endif
+
// XXX: we shouldn't recreate whole accessible subtree, instead we should
// subclass hide and show events to handle them separately and implement their
// coalescence with normal hide and show events. Note, in this case they
@@ -1579,6 +1587,11 @@ DocAccessible::ProcessLoad()
{
mLoadState |= eCompletelyLoaded;
+#ifdef A11Y_LOG
+ if (logging::IsEnabled(logging::eDocLoad))
+ logging::DocCompleteLoad(this, IsLoadEventTarget());
+#endif
+
// Do not fire document complete/stop events for root chrome document
// accessibles and for frame/iframe documents because
// a) screen readers start working on focus event in the case of root chrome
@@ -2064,25 +2077,31 @@ bool
DocAccessible::IsLoadEventTarget() const
{
nsCOMPtr<nsISupports> container = mDocument->GetContainer();
- nsCOMPtr<nsIDocShellTreeItem> docShellTreeItem =
- do_QueryInterface(container);
- NS_ASSERTION(docShellTreeItem, "No document shell for document!");
+ nsCOMPtr<nsIDocShellTreeItem> treeItem = do_QueryInterface(container);
+ NS_ASSERTION(treeItem, "No document shell for document!");
nsCOMPtr<nsIDocShellTreeItem> parentTreeItem;
- docShellTreeItem->GetParent(getter_AddRefs(parentTreeItem));
+ treeItem->GetParent(getter_AddRefs(parentTreeItem));
- // Return true if it's not a root document (either tab document or
- // frame/iframe document) and its parent document is not in loading state.
- // Note: we can get notifications while document is loading (and thus
- // while there's no parent document yet).
+ // Not a root document.
if (parentTreeItem) {
+ // Return true if it's either:
+ // a) tab document;
+ nsCOMPtr<nsIDocShellTreeItem> rootTreeItem;
+ treeItem->GetRootTreeItem(getter_AddRefs(rootTreeItem));
+ if (parentTreeItem == rootTreeItem)
+ return true;
+
+ // b) frame/iframe document and its parent document is not in loading state
+ // Note: we can get notifications while document is loading (and thus
+ // while there's no parent document yet).
DocAccessible* parentDoc = ParentDocument();
return parentDoc && parentDoc->HasLoadState(eCompletelyLoaded);
}
// It's content (not chrome) root document.
int32_t contentType;
- docShellTreeItem->GetItemType(&contentType);
+ treeItem->GetItemType(&contentType);
return (contentType == nsIDocShellTreeItem::typeContent);
}
View
12 accessible/src/jsat/Utils.jsm
@@ -54,12 +54,12 @@ var Utils = {
get AndroidSdkVersion() {
if (!this._AndroidSdkVersion) {
- let shellVersion = Services.sysinfo.get('shellVersion') || '';
- let matches = shellVersion.match(/\((\d+)\)$/);
- if (matches)
- this._AndroidSdkVersion = parseInt(matches[1]);
- else
- this._AndroidSdkVersion = 15; // Most useful in desktop debugging.
+ if (Services.appinfo.OS == 'Android') {
+ this._AndroidSdkVersion = Services.sysinfo.getPropertyAsInt32('version');
+ } else {
+ // Most useful in desktop debugging.
+ this._AndroidSdkVersion = 15;
+ }
}
return this._AndroidSdkVersion;
},
View
2  accessible/src/xforms/nsXFormsAccessible.cpp
@@ -271,7 +271,7 @@ nsXFormsEditableAccessible::GetEditor() const
nsXFormsSelectableAccessible::
nsXFormsSelectableAccessible(nsIContent* aContent, DocAccessible* aDoc) :
- nsXFormsEditableAccessible(aContent, aDoc), mIsSelect1Element(nullptr)
+ nsXFormsEditableAccessible(aContent, aDoc), mIsSelect1Element(false)
{
mIsSelect1Element =
mContent->NodeInfo()->Equals(nsGkAtoms::select1);
View
1  accessible/tests/mochitest/common.js
@@ -621,6 +621,7 @@ function prettyName(aIdentifier)
return " '" + aIdentifier + "' ";
}
+
////////////////////////////////////////////////////////////////////////////////
// Private
////////////////////////////////////////////////////////////////////////////////
View
14 accessible/tests/mochitest/events.js
@@ -99,12 +99,22 @@ function waitForEvent(aEventType, aTarget, aFunc, aContext, aArg1, aArg2)
}
/**
+ * Generate mouse move over image map what creates image map accessible (async).
+ * See waitForImageMap() function.
+ */
+function waveOverImageMap(aImageMapID)
+{
+ var imageMapNode = getNode(aImageMapID);
+ synthesizeMouse(imageMapNode, 10, 10, { type: "mousemove" },
+ imageMapNode.ownerDocument.defaultView);
+}
+
+/**
* Call the given function when the tree of the given image map is built.
*/
function waitForImageMap(aImageMapID, aTestFunc)
{
- synthesizeMouse(aImageMapID, 10, 10, { type: "mousemove" },
- aImageMapID.ownerDocument.defaultView);
+ waveOverImageMap(aImageMapID);
var imageMapAcc = getAccessible(aImageMapID);
if (imageMapAcc.firstChild)
View
3  accessible/tests/mochitest/hittest/test_general.html
@@ -19,8 +19,7 @@
<script type="application/javascript">
function doPreTest()
{
- var imgMap = document.getElementById("imgmap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imgmap", doTest);
}
function doTest()
View
3  accessible/tests/mochitest/hyperlink/test_general.html
@@ -60,8 +60,7 @@
//gA11yEventDumpToConsole = true; // debug stuff
function doPreTest()
{
- var imgMap = document.getElementById("imgmap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imgmap", doTest);
}
var gQueue = null;
View
3  accessible/tests/mochitest/hypertext/test_general.html
@@ -44,8 +44,7 @@
//gA11yEventDumpToConsole = true;
function doPreTest()
{
- var imgMap = document.getElementById("imgmap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imgmap", doTest);
}
function doTest()
View
3  accessible/tests/mochitest/states/test_aria_imgmap.html
@@ -22,8 +22,7 @@
//gA11yEventDumpToConsole = true;
function doPreTest()
{
- var imgMap = document.getElementById("imagemap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imagemap", doTest);
}
function doTest()
View
6 accessible/tests/mochitest/states/test_link.html
@@ -21,7 +21,7 @@
src="../events.js"></script>
<script type="application/javascript">
- gA11yEventDumpToConsole = true; // debug stuff
+ //gA11yEventDumpToConsole = true; // debug stuff
function doTest()
{
@@ -50,7 +50,7 @@
// a: traversal state
testStates("link_traversed", 0, 0, STATE_TRAVERSED);
- enableLogging("docload");
+ //enableLogging("docload"); // debug stuff
registerA11yEventListener(EVENT_DOCUMENT_LOAD_COMPLETE,
traversedLinkTester);
@@ -64,7 +64,7 @@
aEvent.accessible.rootDocument.window.close();
testStates("link_traversed", STATE_TRAVERSED);
- disableLogging();
+ //disableLogging();
SimpleTest.finish();
}
};
View
2  accessible/tests/mochitest/states/test_popup.xul
@@ -20,8 +20,6 @@
<![CDATA[
function doTest()
{
- disableLogging(); // a hack from failing test_link.html to stop logging.
-
// label with popup
testStates("labelWithPopup", STATE_HASPOPUP);
View
3  accessible/tests/mochitest/tree/test_aria_imgmap.html
@@ -22,8 +22,7 @@
//gA11yEventDumpToConsole = true;
function doPreTest()
{
- var imgMap = document.getElementById("imagemap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imagemap", doTest);
}
function doTest()
View
3  accessible/tests/mochitest/tree/test_img.html
@@ -21,8 +21,7 @@
//gA11yEventDumpToConsole = true;
function doPreTest()
{
- var imgMap = document.getElementById("imgmap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imgmap", doTest);
}
function doTest()
View
2  accessible/tests/mochitest/treeupdate/Makefile.in
@@ -20,7 +20,7 @@ MOCHITEST_A11Y_FILES =\
test_doc.html \
test_gencontent.html \
test_hidden.html \
- $(warning test_imagemap.html temporarily disabled because of very frequent oranges, see bug 745788) \
+ test_imagemap.html \
test_list_editabledoc.html \
test_list.html \
test_listbox.xul \
View
15 accessible/tests/mochitest/treeupdate/test_imagemap.html
@@ -228,6 +228,9 @@
{
this.imageMap = getAccessible(aImageMapID);
this.mapNode.setAttribute("name", "atoz_map");
+
+ // XXXhack: force repainting of the image (see bug 745788 for details).
+ waveOverImageMap(aImageMapID);
}
this.finalCheck = function removeNameOnMap_finalCheck()
@@ -324,10 +327,6 @@
map.appendChild(area);
this.containerNode.appendChild(map);
-
- // force repainting of the image
- // XXX this is a hack. Fix bug 745788.
- document.getElementById(aImageID).style.opacity = 0.8;
}
this.finalCheck = function insertMap_finalCheck()
@@ -382,11 +381,10 @@
}
}
- gA11yEventDumpToConsole = true;
+ //gA11yEventDumpToConsole = true; // debug stuff
function doPreTest()
{
- var imgMap = document.getElementById("imgmap");
- waitForImageMap(imgMap, doTest);
+ waitForImageMap("imgmap", doTest);
}
var gQueue = null;
@@ -403,6 +401,9 @@
gQueue.push(new insertMap("container", "imgmap"));
gQueue.push(new hideImageMap("container", "imgmap"));
+ //enableLogging("tree"); // debug stuff
+ //gQueue.onFinish = function() { disableLogging("tree"); }
+
gQueue.invoke(); // Will call SimpleTest.finish();
}
View
6 b2g/config/tooltool-manifests/macosx64/releng.manifest
@@ -1,6 +1,6 @@
[
{
-"clang_version": "r163716"
+"clang_version": "r164411"
},
{
"size": 47,
@@ -9,8 +9,8 @@
"filename": "setup.sh"
},
{
-"size": 54033946,
-"digest": "50eb6fa636403f444bab10aee2370f1ac624a1e0105566639c7c266e784dbc6e4cd3901bbd11f53c4c63b2a6d2d07a603b3d9c333f5049bdc7a816b7d225631b",
+"size": 54336567,
+"digest": "f692fb99c0faae0e850d0fba1ea1905064c00b7c65c03367369fec685771511c4e97445139be8eaa1bb6380055594cebef1e23cc0fd0717203411cd8082f37fa",
"algorithm": "sha512",
"filename": "clang.tar.bz2"
}
View
5 browser/app/profile/firefox.js
@@ -221,10 +221,7 @@ pref("general.autoScroll", false);
pref("general.autoScroll", true);
#endif
-// Send aol.com the legacy build date instead of the version number in the UA's
-// Gecko token as a temporary measure against bug 778408 (mail.aol.com defaults
-// to basic web UI when accessed with a user agent without Gecko/20100101).
-pref("general.useragent.override.aol.com", "Gecko/[^ ]*#Gecko/20100101");
+pref("general.useragent.complexOverride.moodle", true); // bug 797703
// At startup, check if we're the default browser and prompt user if not.
pref("browser.shell.checkDefaultBrowser", true);
View
8 browser/base/content/browser-appmenu.inc
@@ -27,6 +27,12 @@
label="&newNavigatorCmd.label;"
command="cmd_newNavigator"
key="key_newNavigator"/>
+#ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
+ <menuitem id="appmenu_newPrivateWindow"
+ label="&newPrivateWindow.label;"
+ command="Tools:PrivateBrowsing"
+ key="key_privatebrowsing"/>
+#endif
<menuseparator/>
<menuitem id="appmenu_openFile"
label="&openFileCmd.label;"
@@ -34,6 +40,7 @@
key="openFileKb"/>
</menupopup>
</splitmenu>
+#ifndef MOZ_PER_WINDOW_PRIVATE_BROWSING
<menuitem id="appmenu_privateBrowsing"
class="menuitem-iconic menuitem-iconic-tooltip"
label="&privateBrowsingCmd.start.label;"
@@ -41,6 +48,7 @@
stoplabel="&privateBrowsingCmd.stop.label;"
command="Tools:PrivateBrowsing"
key="key_privatebrowsing"/>
+#endif
<menuitem label="&goOfflineCmd.label;"
id="appmenu_offlineModeRecovery"
type="checkbox"
View
9 browser/base/content/browser-menubar.inc
@@ -22,6 +22,13 @@
accesskey="&newNavigatorCmd.accesskey;"
key="key_newNavigator"
command="cmd_newNavigator"/>
+#ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
+ <menuitem id="menu_newPrivateWindow"
+ label="&newPrivateWindow.label;"
+ accesskey="&newPrivateWindow.accesskey;"
+ command="Tools:PrivateBrowsing"
+ key="key_privatebrowsing"/>
+#endif
<menuitem id="menu_openLocation"
class="show-only-for-keyboard"
label="&openLocationCmd.label;"
@@ -541,6 +548,7 @@
#endif
command="View:PageInfo"/>
<menuseparator id="sanitizeSeparator"/>
+#ifndef MOZ_PER_WINDOW_PRIVATE_BROWSING
<menuitem id="privateBrowsingItem"
label="&privateBrowsingCmd.start.label;"
accesskey="&privateBrowsingCmd.start.accesskey;"
@@ -550,6 +558,7 @@
stopaccesskey="&privateBrowsingCmd.stop.accesskey;"
key="key_privatebrowsing"
command="Tools:PrivateBrowsing"/>
+#endif
<menuitem id="sanitizeItem"
accesskey="&clearRecentHistory.accesskey;"
label="&clearRecentHistory.label;"
View
27 browser/base/content/browser-plugins.js
@@ -262,14 +262,14 @@ var gPluginHandler = {
// Callback for user clicking on a missing (unsupported) plugin.
installSinglePlugin: function (plugin) {
- var missingPluginsArray = {};
+ var missingPlugins = new Map();
var pluginInfo = getPluginInfo(plugin);
- missingPluginsArray[pluginInfo.mimetype] = pluginInfo;
+ missingPlugins.set(pluginInfo.mimetype, pluginInfo);
openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
"PFSWindow", "chrome,centerscreen,resizable=yes",
- {plugins: missingPluginsArray, browser: gBrowser.selectedBrowser});
+ {plugins: missingPlugins, browser: gBrowser.selectedBrowser});
},
// Callback for user clicking on a disabled plugin
@@ -423,19 +423,20 @@ var gPluginHandler = {
let contentWindow = aBrowser.contentWindow;
let cwu = contentWindow.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindowUtils);
- let pluginsDictionary = {};
+ let pluginsDictionary = new Map();
for (let plugin of cwu.plugins) {
let objLoadingContent = plugin.QueryInterface(Ci.nsIObjectLoadingContent);
if (gPluginHandler.canActivatePlugin(objLoadingContent)) {
let pluginName = getPluginInfo(plugin).pluginName;
- if (!pluginsDictionary[pluginName]) pluginsDictionary[pluginName] = [];
- pluginsDictionary[pluginName].push(objLoadingContent);
+ if (!pluginsDictionary.has(pluginName))
+ pluginsDictionary.set(pluginName, []);
+ pluginsDictionary.get(pluginName).push(objLoadingContent);
}
}
let centerActions = [];
- for (let pluginName in pluginsDictionary) {
- let plugin = pluginsDictionary[pluginName][0];
+ for (let [pluginName, namedPluginArray] of pluginsDictionary) {
+ let plugin = namedPluginArray[0];
let warn = false;
let warningText = "";
let updateLink = Services.urlFormatter.formatURLPref("plugins.update.url");
@@ -539,10 +540,10 @@ var gPluginHandler = {
let browser = gBrowser.getBrowserForDocument(plugin.ownerDocument
.defaultView.top.document);
if (!browser.missingPlugins)
- browser.missingPlugins = {};
+ browser.missingPlugins = new Map();
var pluginInfo = getPluginInfo(plugin);
- browser.missingPlugins[pluginInfo.mimetype] = pluginInfo;
+ browser.missingPlugins.set(pluginInfo.mimetype, pluginInfo);
var notificationBox = gBrowser.getNotificationBox(browser);
@@ -568,11 +569,11 @@ var gPluginHandler = {
function showPluginsMissing() {
// get the urls of missing plugins
- var missingPluginsArray = gBrowser.selectedBrowser.missingPlugins;
- if (missingPluginsArray) {
+ var missingPlugins = gBrowser.selectedBrowser.missingPlugins;
+ if (missingPlugins) {
openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
"PFSWindow", "chrome,centerscreen,resizable=yes",
- {plugins: missingPluginsArray, browser: gBrowser.selectedBrowser});
+ {plugins: missingPlugins, browser: gBrowser.selectedBrowser});
}
}
View
7 browser/base/content/browser-sets.inc
@@ -102,7 +102,12 @@
<command id="Tools:ErrorConsole" oncommand="toJavaScriptConsole()" hidden="true"/>
<command id="Tools:Sanitize"
oncommand="Cc['@mozilla.org/browser/browserglue;1'].getService(Ci.nsIBrowserGlue).sanitize(window);"/>
- <command id="Tools:PrivateBrowsing" oncommand="gPrivateBrowsingUI.toggleMode();"/>
+ <command id="Tools:PrivateBrowsing"
+#ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
+ oncommand="OpenBrowserWindow({private: true});"/>
+#else
+ oncommand="gPrivateBrowsingUI.toggleMode();"/>
+#endif
<command id="History:UndoCloseTab" oncommand="undoCloseTab();"/>
<command id="History:UndoCloseWindow" oncommand="undoCloseWindow();"/>
<command id="Browser:ToggleAddonBar" oncommand="toggleAddonBar();"/>
View
2  browser/base/content/browser-social.js
@@ -623,7 +623,7 @@ var SocialToolbar = {
if (profile.userName) {
notLoggedInLabel.hidden = true;
userNameBtn.hidden = false;
- userNameBtn.label = profile.userName;
+ userNameBtn.value = profile.userName;
} else {
notLoggedInLabel.hidden = false;
userNameBtn.hidden = true;
View
85 browser/base/content/browser.js
@@ -1563,7 +1563,9 @@ var gBrowserInit = {
PlacesStarButton.uninit();
+#ifndef MOZ_PER_WINDOW_PRIVATE_BROWSING
gPrivateBrowsingUI.uninit();
+#endif
TabsOnTop.uninit();
@@ -1711,7 +1713,9 @@ var gBrowserInit = {
BrowserOffline.uninit();
+#ifndef MOZ_PER_WINDOW_PRIVATE_BROWSING
gPrivateBrowsingUI.uninit();
+#endif
},
#endif
@@ -3498,7 +3502,7 @@ function toOpenWindowByType(inType, uri, features)
window.open(uri, "_blank", "chrome,extrachrome,menubar,resizable,scrollbars,status,toolbar");
}
-function OpenBrowserWindow()
+function OpenBrowserWindow(options)
{
var telemetryObj = {};
TelemetryStopwatch.start("FX_NEW_WINDOW_MS", telemetryObj);
@@ -3519,6 +3523,17 @@ function OpenBrowserWindow()
var defaultArgs = handler.defaultArgs;
var wintype = document.documentElement.getAttribute('windowtype');
+ var extraFeatures = "";
+#ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
+ if (typeof options == "object" &&
+ "private" in options &&
+ options.private) {
+ extraFeatures = ",private";
+ // Force the new window to load about:privatebrowsing instead of the default home page
+ defaultArgs = "about:privatebrowsing";
+ }
+#endif
+
// if and only if the current window is a browser window and it has a document with a character
// set, then extract the current charset menu setting from the current document and use it to
// initialize the new browser window...
@@ -3529,11 +3544,11 @@ function OpenBrowserWindow()
charsetArg = "charset="+DocCharset;
//we should "inherit" the charset menu setting in a new window
- win = window.openDialog("chrome://browser/content/", "_blank", "chrome,all,dialog=no", defaultArgs, charsetArg);
+ win = window.openDialog("chrome://browser/content/", "_blank", "chrome,all,dialog=no" + extraFeatures, defaultArgs, charsetArg);
}
else // forget about the charset information.
{
- win = window.openDialog("chrome://browser/content/", "_blank", "chrome,all,dialog=no", defaultArgs);
+ win = window.openDialog("chrome://browser/content/", "_blank", "chrome,all,dialog=no" + extraFeatures, defaultArgs);
}
return win;
@@ -7043,6 +7058,64 @@ function getTabModalPromptBox(aWindow) {
function getBrowser() gBrowser;
function getNavToolbox() gNavToolbox;
+#ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
+
+# We define a new gPrivateBrowsingUI object, as the per-window PB implementation
+# is completely different to the global PB one. Specifically, the per-window
+# PB implementation does not expose many APIs on the gPrivateBrowsingUI object,
+# and only uses it as a way to initialize and uninitialize private browsing
+# windows. While we could use #ifdefs all around the global PB mode code to
+# make it work in both modes, the amount of duplicated code is small and the
+# code is much more readable this way.
+let gPrivateBrowsingUI = {
+ _inited: false,
+ _initCallbacks: [],
+
+ init: function PBUI_init() {
+ // Do nothing for normal windows
+ if (!PrivateBrowsingUtils.isWindowPrivate(window)) {
+ return;
+ }
+
+ // Disable the Clear Recent History... menu item when in PB mode
+ // temporary fix until bug 463607 is fixed
+ document.getElementById("Tools:Sanitize").setAttribute("disabled", "true");
+
+ // Adjust the window's title
+ if (window.location.href == getBrowserURL()) {
+ let docElement = document.documentElement;
+ docElement.setAttribute("title",
+ docElement.getAttribute("title_privatebrowsing"));
+ docElement.setAttribute("titlemodifier",
+ docElement.getAttribute("titlemodifier_privatebrowsing"));
+ docElement.setAttribute("privatebrowsingmode", "temporary");
+ gBrowser.updateTitlebar();
+ }
+
+ this._inited = true;
+
+ this._initCallbacks.forEach(function (callback) callback.apply());
+ this._initCallbacks = [];
+ },
+
+ get autoStarted() {
+ return false; // auto-started PB not supported for now
+ },
+
+ get initialized() {
+ return this._inited;
+ },
+
+ addInitializationCallback: function PBUI_addInitializationCallback(aCallback) {
+ if (this._inited)
+ return;
+
+ this._initCallbacks.push(aCallback);
+ }
+};
+
+#else
+
let gPrivateBrowsingUI = {
_privateBrowsingService: null,
_searchBarValue: null,
@@ -7296,6 +7369,8 @@ let gPrivateBrowsingUI = {
}
};
+#endif
+
/**
* Switch to a tab that has a given URI, and focusses its browser window.
@@ -7523,14 +7598,14 @@ var StyleEditor = {
this.StyleEditorManager.selectEditor(win);
return win;
} else {
- return this.StyleEditorManager.newEditor(contentWindow,
+ return this.StyleEditorManager.newEditor(contentWindow, window,
aSelectedStyleSheet, aLine, aCol);
}
},
toggle: function SE_toggle()
{
- this.StyleEditorManager.toggleEditor(gBrowser.contentWindow);
+ this.StyleEditorManager.toggleEditor(gBrowser.contentWindow, window);
}
};
View
19 browser/base/content/browser.xul
@@ -669,21 +669,30 @@
class="toolbarbutton-1"
type="menu">
<menupopup id="social-statusarea-popup">
- <hbox id="social-statusarea-user" pack="start" align="center"
+ <menuitem id="social-statusarea-user" pack="start" align="center" class="menuitem-iconic"
onclick="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();">
<image id="social-statusarea-user-portrait"/>
<vbox>
- <button id="social-statusarea-notloggedin"
- class="link" label="&social.notLoggedIn.label;"/>
- <button id="social-statusarea-username" class="link"/>
+ <label id="social-statusarea-notloggedin"
+ value="&social.notLoggedIn.label;"/>
+ <label id="social-statusarea-username"/>
</vbox>
- </hbox>
+ </menuitem>
+#ifndef XP_WIN
+ <menuseparator/>
+#endif
<menuitem id="social-toggle-sidebar-menuitem"
type="checkbox"
autocheck="false"
command="Social:ToggleSidebar"
label="&social.toggleSidebar.label;"
accesskey="&social.toggleSidebar.accesskey;"/>
+ <menuitem id="social-toggle-notifications-menuitem"
+ type="checkbox"
+ autocheck="false"
+ command="Social:ToggleNotifications"
+ label="&social.toggleNotifications.label;"
+ accesskey="&social.toggleNotifications.accesskey;"/>
</menupopup>
</toolbarbutton>
</toolbaritem>
View
8 browser/base/content/test/Makefile.in
@@ -158,6 +158,7 @@ _BROWSER_FILES = \
browser_bug763468.js \
browser_bug767836.js \
browser_bug783614.js \
+ browser_bug797677.js \
browser_canonizeURL.js \
browser_customize.js \
browser_findbarClose.js \
@@ -240,6 +241,7 @@ _BROWSER_FILES = \
plugin_clickToPlayAllow.html \
plugin_clickToPlayDeny.html \
plugin_bug749455.html \
+ plugin_bug797677.html \
plugin_hidden_to_visible.html \
plugin_two_types.html \
alltabslistener.html \
@@ -296,6 +298,12 @@ _BROWSER_FILES += \
endif
+ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
+_BROWSER_FILES += \
+ browser_private_browsing_window.js \
+ $(NULL)
+endif
+
include $(topsrcdir)/config/rules.mk
libs:: $(_BROWSER_FILES)
View
47 browser/base/content/test/browser_bug797677.js
@@ -0,0 +1,47 @@
+/* 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/. */
+
+var rootDir = getRootDirectory(gTestPath);
+const gHttpTestRoot = rootDir.replace("chrome://mochitests/content/", "http://127.0.0.1:8888/");
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+var gTestBrowser = null;
+var gConsoleErrors = 0;
+
+function test() {
+ waitForExplicitFinish();
+ var newTab = gBrowser.addTab();
+ gBrowser.selectedTab = newTab;
+ gTestBrowser = gBrowser.selectedBrowser;
+ gTestBrowser.addEventListener("PluginNotFound", pluginNotFound, true);
+ var consoleService = Cc["@mozilla.org/consoleservice;1"]
+ .getService(Ci.nsIConsoleService);
+ var errorListener = {
+ observe: function(aMessage) {
+ if (aMessage.message.contains("NS_ERROR"))
+ gConsoleErrors++;
+ }
+ };
+ consoleService.registerListener(errorListener);
+ registerCleanupFunction(function() {
+ gTestBrowser.removeEventListener("PluginNotFound", pluginNotFound, true);
+ consoleService.unregisterListener(errorListener);
+ gBrowser.removeCurrentTab();
+ window.focus();
+ });
+ gTestBrowser.contentWindow.location = gHttpTestRoot + "plugin_bug797677.html";
+}
+
+function pluginNotFound() {
+ // Let browser-plugins.js handle the PluginNotFound event, then run the test
+ executeSoon(runTest);
+}
+
+function runTest() {
+ var doc = gTestBrowser.contentDocument;
+ var plugin = doc.getElementById("plugin");
+ ok(plugin, "plugin should be in the page");
+ is(gConsoleErrors, 0, "should have no console errors");
+ finish();
+}
View
16 browser/base/content/test/browser_pluginnotification.js
@@ -97,8 +97,8 @@ function test1() {
ok(notificationBox.getNotificationWithValue("missing-plugins"), "Test 1, Should have displayed the missing plugin notification");
ok(!notificationBox.getNotificationWithValue("blocked-plugins"), "Test 1, Should not have displayed the blocked plugin notification");
ok(gTestBrowser.missingPlugins, "Test 1, Should be a missing plugin list");
- ok("application/x-unknown" in gTestBrowser.missingPlugins, "Test 1, Should know about application/x-unknown");
- ok(!("application/x-test" in gTestBrowser.missingPlugins), "Test 1, Should not know about application/x-test");
+ ok(gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 1, Should know about application/x-unknown");
+ ok(!gTestBrowser.missingPlugins.has("application/x-test"), "Test 1, Should not know about application/x-test");
var pluginNode = gTestBrowser.contentDocument.getElementById("unknown");
ok(pluginNode, "Test 1, Found plugin in page");
@@ -162,8 +162,8 @@ function test5() {
ok(!notificationBox.getNotificationWithValue("missing-plugins"), "Test 5, Should not have displayed the missing plugin notification");
ok(notificationBox.getNotificationWithValue("blocked-plugins"), "Test 5, Should have displayed the blocked plugin notification");
ok(gTestBrowser.missingPlugins, "Test 5, Should be a missing plugin list");
- ok("application/x-test" in gTestBrowser.missingPlugins, "Test 5, Should know about application/x-test");
- ok(!("application/x-unknown" in gTestBrowser.missingPlugins), "Test 5, Should not know about application/x-unknown");
+ ok(gTestBrowser.missingPlugins.has("application/x-test"), "Test 5, Should know about application/x-test");
+ ok(!gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 5, Should not know about application/x-unknown");
var pluginNode = gTestBrowser.contentDocument.getElementById("test");
ok(pluginNode, "Test 5, Found plugin in page");
var objLoadingContent = pluginNode.QueryInterface(Ci.nsIObjectLoadingContent);
@@ -178,8 +178,8 @@ function test6() {
ok(notificationBox.getNotificationWithValue("missing-plugins"), "Test 6, Should have displayed the missing plugin notification");
ok(!notificationBox.getNotificationWithValue("blocked-plugins"), "Test 6, Should not have displayed the blocked plugin notification");
ok(gTestBrowser.missingPlugins, "Test 6, Should be a missing plugin list");
- ok("application/x-unknown" in gTestBrowser.missingPlugins, "Test 6, Should know about application/x-unknown");
- ok("application/x-test" in gTestBrowser.missingPlugins, "Test 6, Should know about application/x-test");
+ ok(gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 6, Should know about application/x-unknown");
+ ok(gTestBrowser.missingPlugins.has("application/x-test"), "Test 6, Should know about application/x-test");
prepareTest(test7, gTestRoot + "plugin_both2.html");
}
@@ -190,8 +190,8 @@ function test7() {
ok(notificationBox.getNotificationWithValue("missing-plugins"), "Test 7, Should have displayed the missing plugin notification");
ok(!notificationBox.getNotificationWithValue("blocked-plugins"), "Test 7, Should not have displayed the blocked plugin notification");
ok(gTestBrowser.missingPlugins, "Test 7, Should be a missing plugin list");
- ok("application/x-unknown" in gTestBrowser.missingPlugins, "Test 7, Should know about application/x-unknown");
- ok("application/x-test" in gTestBrowser.missingPlugins, "Test 7, Should know about application/x-test");
+ ok(gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 7, Should know about application/x-unknown");
+ ok(gTestBrowser.missingPlugins.has("application/x-test"), "Test 7, Should know about application/x-test");
var plugin = getTestPlugin();
plugin.disabled = false;
View
11 browser/base/content/test/browser_private_browsing_window.js
@@ -0,0 +1,11 @@
+// Make sure that we can open private browsing windows
+
+function test() {
+ var nonPrivateWin = OpenBrowserWindow();
+ ok(!PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin), "OpenBrowserWindow() should open a normal window");
+ nonPrivateWin.close();
+ var privateWin = OpenBrowserWindow({private: true});
+ ok(PrivateBrowsingUtils.isWindowPrivate(privateWin), "OpenBrowserWindow({private: true}) should open a private window");
+ privateWin.close();
+}
+
View
2  browser/base/content/test/browser_social_chatwindow.js
@@ -10,7 +10,7 @@ function test() {
origin: "https://example.com",
sidebarURL: "https://example.com/browser/browser/base/content/test/social_sidebar.html",
workerURL: "https://example.com/browser/browser/base/content/test/social_worker.js",
- iconURL: "chrome://branding/content/icon48.png"
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png"
};
runSocialTestWithProvider(manifest, function (finishcb) {
runSocialTests(tests, undefined, undefined, function () {
View
2  browser/base/content/test/browser_social_flyout.js
@@ -10,7 +10,7 @@ function test() {
origin: "https://example.com",
sidebarURL: "https://example.com/browser/browser/base/content/test/social_sidebar.html",
workerURL: "https://example.com/browser/browser/base/content/test/social_worker.js",
- iconURL: "chrome://branding/content/icon48.png"
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png"
};
runSocialTestWithProvider(manifest, function (finishcb) {
runSocialTests(tests, undefined, undefined, finishcb);
View
2  browser/base/content/test/browser_social_isVisible.js
@@ -10,7 +10,7 @@ function test() {
origin: "https://example.com",
sidebarURL: "https://example.com/browser/browser/base/content/test/social_sidebar.html",
workerURL: "https://example.com/browser/browser/base/content/test/social_worker.js",
- iconURL: "chrome://branding/content/icon48.png"
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png"
};
runSocialTestWithProvider(manifest, function (finishcb) {
runSocialTests(tests, undefined, undefined, finishcb);
View
2  browser/base/content/test/browser_social_shareButton.js
@@ -29,7 +29,7 @@ function tabLoaded() {
origin: "https://example.com",
sidebarURL: "https://example.com/browser/browser/base/content/test/social_sidebar.html",
workerURL: "https://example.com/browser/browser/base/content/test/social_worker.js",
- iconURL: "chrome://branding/content/icon48.png"
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png"
};
runSocialTestWithProvider(manifest, function (finishcb) {
gFinishCB = finishcb;
View
2  browser/base/content/test/browser_social_sidebar.js
@@ -10,7 +10,7 @@ function test() {
origin: "https://example.com",
sidebarURL: "https://example.com/browser/browser/base/content/test/social_sidebar.html",
workerURL: "https://example.com/browser/browser/base/content/test/social_worker.js",
- iconURL: "chrome://branding/content/icon48.png"
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png"
};
runSocialTestWithProvider(manifest, doTest);
}
View
16 browser/base/content/test/browser_social_toolbar.js
@@ -9,7 +9,7 @@ function test() {
name: "provider 1",
origin: "https://example.com",
workerURL: "https://example.com/browser/browser/base/content/test/social_worker.js",
- iconURL: "chrome://branding/content/icon48.png"
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png"
};
runSocialTestWithProvider(manifest, function (finishcb) {
runSocialTests(tests, undefined, undefined, finishcb);
@@ -30,13 +30,13 @@ var tests = {
is(profile.portrait, portrait, "portrait is set");
let userButton = document.getElementById("social-statusarea-username");
ok(!userButton.hidden, "username is visible");
- is(userButton.label, profile.userName, "username is set");
+ is(userButton.value, profile.userName, "username is set");
next();
},
testAmbientNotifications: function(next) {
let ambience = {
name: "testIcon",
- iconURL: "chrome://branding/content/icon48.png",
+ iconURL: "https://example.com/browser/browser/base/content/test/moz.png",
contentPanel: "about:blank",
counter: 42
};
@@ -67,6 +67,16 @@ var tests = {
}
next();
+ },
+ testShowSidebarMenuitemExists: function(next) {
+ let toggleSidebarMenuitem = document.getElementById("social-toggle-sidebar-menuitem");
+ ok(toggleSidebarMenuitem, "Toggle Sidebar menuitem exists");
+ next();
+ },
+ testShowDesktopNotificationsMenuitemExists: function(next) {
+ let toggleDesktopNotificationsMenuitem = document.getElementById("social-toggle-notifications-menuitem");
+ ok(toggleDesktopNotificationsMenuitem, "Toggle notifications menuitem exists");
+ next();
}
}
View
5 browser/base/content/test/plugin_bug797677.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<head><meta charset="utf-8"/></head>
+<body><embed id="plugin" type="9000"></embed></body>
+</html>
View
2  browser/branding/aurora/branding.nsi
@@ -14,7 +14,7 @@
!define URLUpdateInfo "http://www.mozilla.org/projects/firefox"
!define URLStubDownload "http://download.mozilla.org/?product=firefox-aurora-latest&os=win&lang=${AB_CD}"
-!define URLManualDownload "http://download.mozilla.org/?product=firefox-aurora-latest&os=win&lang=${AB_CD}"
+!define URLManualDownload "https://www.mozilla.org/firefox/installer-help/?channel=aurora"
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
View
2  browser/branding/nightly/branding.nsi
@@ -14,7 +14,7 @@
!define URLUpdateInfo "http://www.mozilla.org/projects/firefox"
!define URLStubDownload "http://download.mozilla.org/?product=firefox-nightly-latest&os=win&lang=${AB_CD}"
-!define URLManualDownload "http://download.mozilla.org/?product=firefox-nightly-latest&os=win&lang=${AB_CD}"
+!define URLManualDownload "https://www.mozilla.org/firefox/installer-help/?channel=nightly"
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
View
2  browser/branding/official/branding.nsi
@@ -17,7 +17,7 @@
; official branding
!define Official
!define URLStubDownload "http://download.mozilla.org/?product=firefox-latest&os=win&lang=${AB_CD}"
-!define URLManualDownload "https://www.mozilla.org/firefox/installer-help/"
+!define URLManualDownload "https://www.mozilla.org/firefox/installer-help/?channel=release"
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
View
2  browser/branding/unofficial/branding.nsi
@@ -14,7 +14,7 @@
!define URLUpdateInfo "http://www.mozilla.org/projects/firefox"
!define URLStubDownload "http://download.mozilla.org/?product=firefox-latest&os=win&lang=${AB_CD}"
-!define URLManualDownload "http://download.mozilla.org/?product=firefox-latest&os=win&lang=${AB_CD}"
+!define URLManualDownload "https://www.mozilla.org/firefox/installer-help/?channel=release"
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
View
22 browser/components/downloads/content/indicator.js
@@ -177,15 +177,25 @@ const DownloadsButton = {
},
/**
- * Indicates whether the indicator is visible in the browser window.
+ * Checks whether the indicator is, or will soon be visible in the browser
+ * window.
+ *
+ * @param aCallback
+ * Called once the indicator overlay has loaded. Gets a boolean
+ * argument representing the indicator visibility.
*/
- get isVisible()
+ checkIsVisible: function DB_checkIsVisible(aCallback)
{
- if (!this._placeholder) {
- return false;
+ function DB_CEV_callback() {
+ if (!this._placeholder) {
+ aCallback(false);
+ } else {
+ let element = DownloadsIndicatorView.indicator || this._placeholder;
+ aCallback(isElementVisible(element.parentNode));
+ }
}
- let element = DownloadsIndicatorView.indicator || this._placeholder;
- return isElementVisible(element.parentNode);
+ DownloadsOverlayLoader.ensureOverlayLoaded(this.kIndicatorOverlay,
+ DB_CEV_callback.bind(this));
},
/**
View
23 browser/components/downloads/src/DownloadsUI.js
@@ -68,17 +68,24 @@ DownloadsUI.prototype = {
}
if (aReason == Ci.nsIDownloadManagerUI.REASON_NEW_DOWNLOAD) {
- // If the indicator is visible, then new download notifications are
- // already handled by the panel service.
+ const kMinimized = Ci.nsIDOMChromeWindow.STATE_MINIMIZED;
let browserWin = gBrowserGlue.getMostRecentBrowserWindow();
- if (browserWin &&
- browserWin.windowState != Ci.nsIDOMChromeWindow.STATE_MINIMIZED &&
- browserWin.DownloadsButton.isVisible) {
- return;
+
+ if (!browserWin || browserWin.windowState == kMinimized) {
+ this._toolkitUI.show(aWindowContext, aID, aReason);
+ }
+ else {
+ // If the indicator is visible, then new download notifications are
+ // already handled by the panel service.
+ browserWin.DownloadsButton.checkIsVisible(function(isVisible) {
+ if (!isVisible) {
+ this._toolkitUI.show(aWindowContext, aID, aReason);
+ }
+ }.bind(this));
}
+ } else {
+ this._toolkitUI.show(aWindowContext, aID, aReason);
}
-
- this._toolkitUI.show(aWindowContext, aID, aReason);
},
get visible()
View
19 browser/components/nsBrowserGlue.js
@@ -351,7 +351,8 @@ BrowserGlue.prototype = {
// handle any UI migration
this._migrateUI();
- UserAgentOverrides.init();
+ this._setUpUserAgentOverrides();
+
webappsUI.init();
PageThumbs.init();
NewTabUtils.init();
@@ -363,6 +364,22 @@ BrowserGlue.prototype = {
Services.obs.notifyObservers(null, "browser-ui-startup-complete", "");
},
+ _setUpUserAgentOverrides: function BG__setUpUserAgentOverrides() {
+ UserAgentOverrides.init();
+
+ if (Services.prefs.getBoolPref("general.useragent.complexOverride.moodle")) {
+ UserAgentOverrides.addComplexOverride(function (aHttpChannel, aOriginalUA) {
+ let cookies;
+ try {
+ cookies = aHttpChannel.getRequestHeader("Cookie");
+ } catch (e) { /* no cookie sent */ }
+ if (cookies && cookies.indexOf("MoodleSession") > -1)
+ return aOriginalUA.replace(/Gecko\/[^ ]*/, "Gecko/20100101");
+ return null;
+ });
+ }
+ },
+
// the first browser window has finished initializing
_onFirstWindowLoaded: function BG__onFirstWindowLoaded() {
#ifdef XP_WIN
View
60 browser/components/places/content/controller.js
@@ -528,30 +528,30 @@ PlacesController.prototype = {
}
var selectionAttr = aMenuItem.getAttribute("selection");
- if (selectionAttr) {
- if (selectionAttr == "any")
- return true;
+ if (!selectionAttr) {
+ return !aMenuItem.hidden;
+ }
- var showRules = selectionAttr.split("|");
- var anyMatched = false;
- function metaDataNodeMatches(metaDataNode, rules) {
- for (var i=0; i < rules.length; i++) {
- if (rules[i] in metaDataNode)
- return true;
- }
+ if (selectionAttr == "any")
+ return true;
- return false;
- }
- for (var i = 0; i < aMetaData.length; ++i) {
- if (metaDataNodeMatches(aMetaData[i], showRules))
- anyMatched = true;
- else
- return false;
+ var showRules = selectionAttr.split("|");
+ var anyMatched = false;
+ function metaDataNodeMatches(metaDataNode, rules) {
+ for (var i = 0; i < rules.length; i++) {
+ if (rules[i] in metaDataNode)
+ return true;
}
- return anyMatched;
+ return false;
}
- return !aMenuItem.hidden;
+ for (var i = 0; i < aMetaData.length; ++i) {
+ if (metaDataNodeMatches(aMetaData[i], showRules))
+ anyMatched = true;
+ else
+ return false;
+ }
+ return anyMatched;
},
/**
@@ -1021,22 +1021,22 @@ PlacesController.prototype = {
if (!didSuppressNotifications)
result.suppressNotifications = true;
+ function addData(type, index, overrideURI) {
+ let wrapNode = PlacesUtils.wrapNode(node, type, overrideURI, doCopy);
+ dt.mozSetDataAt(type, wrapNode, index);
+ }
+
+ function addURIData(index, overrideURI) {
+ addData(PlacesUtils.TYPE_X_MOZ_URL, index, overrideURI);
+ addData(PlacesUtils.TYPE_UNICODE, index, overrideURI);
+ addData(PlacesUtils.TYPE_HTML, index, overrideURI);
+ }
+
try {
let nodes = this._view.draggableSelection;
for (let i = 0; i < nodes.length; ++i) {
var node = nodes[i];
- function addData(type, index, overrideURI) {
- let wrapNode = PlacesUtils.wrapNode(node, type, overrideURI, doCopy);
- dt.mozSetDataAt(type, wrapNode, index);
- }
-
- function addURIData(index, overrideURI) {
- addData(PlacesUtils.TYPE_X_MOZ_URL, index, overrideURI);
- addData(PlacesUtils.TYPE_UNICODE, index, overrideURI);
- addData(PlacesUtils.TYPE_HTML, index, overrideURI);
- }
-
// This order is _important_! It controls how this and other
// applications select data to be inserted based on type.
addData(PlacesUtils.TYPE_X_MOZ_PLACE, i);
View
7 browser/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml
@@ -42,10 +42,9 @@
const Cc = Components.classes;
const Ci = Components.interfaces;
- var pb = Cc["@mozilla.org/privatebrowsing;1"].
- getService(Ci.nsIPrivateBrowsingService);
+ Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
- if (!pb.privateBrowsingEnabled) {
+ if (!PrivateBrowsingUtils.isWindowPrivate(window)) {
document.title = "]]>&privatebrowsingpage.title.normal;<![CDATA[";
setFavIcon("chrome://global/skin/icons/question-16.png");
} else {
@@ -81,7 +80,7 @@
}
document.addEventListener("DOMContentLoaded", function () {
- if (!pb.privateBrowsingEnabled) {
+ if (!PrivateBrowsingUtils.isWindowPrivate(window)) {
document.body.setAttribute("class", "normal");
}
View
12 browser/components/privatebrowsing/src/nsPrivateBrowsingService.js
@@ -102,6 +102,12 @@ PrivateBrowsingService.prototype = {
},
_onBeforePrivateBrowsingModeChange: function PBS__onBeforePrivateBrowsingModeChange() {
+ var windowsEnum = Services.wm.getEnumerator(null);
+ while (windowsEnum.hasMoreElements()) {
+ var window = windowsEnum.getNext();
+ this._setPerWindowPBFlag(window, this._inPrivateBrowsing);
+ }
+
// nothing needs to be done here if we're enabling at startup
if (!this._autoStarted) {
let ss = Cc["@mozilla.org/browser/sessionstore;1"].
@@ -174,12 +180,6 @@ PrivateBrowsingService.prototype = {
}
else
this._saveSession = false;
-
- var windowsEnum = Services.wm.getEnumerator("navigator:browser");
- while (windowsEnum.hasMoreElements()) {
- var window = windowsEnum.getNext();
- this._setPerWindowPBFlag(window, this._inPrivateBrowsing);
- }
},
_onAfterPrivateBrowsingModeChange: function PBS__onAfterPrivateBrowsingModeChange() {
View
6 browser/config/tooltool-manifests/linux32/clang.manifest
@@ -1,6 +1,6 @@
[
{
-"clang_version": "r163716"
+"clang_version": "r164411"
},
{
"size": 47,
@@ -9,8 +9,8 @@
"filename": "setup.sh"
},
{
-"size": 61047821,
-"digest": "964837fd04d0ff7b0c01ca6ed8f3716256b9334e0d1200a7a06235bf837a75d41371d389b401cc15744ff509ecf96f31bdc0e679a0b3a6be93090673d5432ba4",
+"size": 60016787,
+"digest": "84d420e0eef930263a92d1bbec7555d939eb74f5ad95b25ea3b00a5f366d38fd16fe1e7713b937e53b1f25928d8bce3dcc7f80f71c805fe27b779fb34980727a",
"algorithm": "sha512",
"filename": "clang.tar.bz2"
}
View
6 browser/config/tooltool-manifests/linux64/clang.manifest
@@ -1,6 +1,6 @@
[
{
-"clang_version": "r163716"
+"clang_version": "r164411"
},
{
"size": 47,
@@ -9,8 +9,8 @@
"filename": "setup.sh"
},
{
-"size": 61004559,
-"digest": "32d995275a00ed3f7ea79a4057c84108b2e1ebf13e89f05c96893b0e3602dc4891d962d8a61dbe5a395beb0fa6932ab90d5d3fa7eef7b95c092a7974e4cbd625",
+"size": 60915944,
+"digest": "ca69b71ca9d6149db541cba42079c9cf57b5f6934c4b145cb6657fc193e7268b4724a4da318121c6f08518b5dc3bf58c69135a5e405b1f614ca155065261c2d1",
"algorithm": "sha512",
"filename": "clang.tar.bz2"
}
View
6 browser/config/tooltool-manifests/macosx32/releng.manifest
@@ -1,6 +1,6 @@
[
{
-"clang_version": "r163716"
+"clang_version": "r164411"
},
{
"size": 47,
@@ -9,8 +9,8 @@
"filename": "setup.sh"
},
{
-"size": 54033946,
-"digest": "50eb6fa636403f444bab10aee2370f1ac624a1e0105566639c7c266e784dbc6e4cd3901bbd11f53c4c63b2a6d2d07a603b3d9c333f5049bdc7a816b7d225631b",
+"size": 54336567,
+"digest": "f692fb99c0faae0e850d0fba1ea1905064c00b7c65c03367369fec685771511c4e97445139be8eaa1bb6380055594cebef1e23cc0fd0717203411cd8082f37fa",
"algorithm": "sha512",
"filename": "clang.tar.bz2"
}
View
6 browser/config/tooltool-manifests/macosx64/releng.manifest
@@ -1,6 +1,6 @@
[
{
-"clang_version": "r163716"
+"clang_version": "r164411"
},
{
"size": 47,
@@ -9,8 +9,8 @@
"filename": "setup.sh"
},
{
-"size": 54033946,
-"digest": "50eb6fa636403f444bab10aee2370f1ac624a1e0105566639c7c266e784dbc6e4cd3901bbd11f53c4c63b2a6d2d07a603b3d9c333f5049bdc7a816b7d225631b",
+"size": 54336567,
+"digest": "f692fb99c0faae0e850d0fba1ea1905064c00b7c65c03367369fec685771511c4e97445139be8eaa1bb6380055594cebef1e23cc0fd0717203411cd8082f37fa",
"algorithm": "sha512",
"filename": "clang.tar.bz2"
}
View
13 browser/devtools/styleeditor/StyleEditor.jsm
@@ -375,6 +375,10 @@ StyleEditor.prototype = {
this._friendlyName = (sheetURI.indexOf(contentURI) == 0)
? sheetURI.substring(contentURI.length)
: sheetURI;
+ try {
+ this._friendlyName = decodeURI(this._friendlyName);
+ } catch (ex) {
+ }
}
return this._friendlyName;
},
@@ -1311,11 +1315,12 @@ StyleEditorManager.prototype = {
* Open a new editor.
*
* @param {Window} content window.
+ * @param {Window} chrome window.
* @param {CSSStyleSheet} [aSelectedStyleSheet] default Stylesheet.
* @param {Number} [aLine] Line to which the caret should be moved (one-indexed).
* @param {Number} [aCol] Column to which the caret should be moved (one-indexed).
*/
- newEditor: function SEM_newEditor(aContentWindow, aSelectedStyleSheet, aLine, aCol) {
+ newEditor: function SEM_newEditor(aContentWindow, aChromeWindow, aSelectedStyleSheet, aLine, aCol) {
const CHROME_URL = "chrome://browser/content/styleeditor.xul";
const CHROME_WINDOW_FLAGS = "chrome,centerscreen,resizable,dialog=no";
@@ -1326,7 +1331,7 @@ StyleEditorManager.prototype = {
col: aCol
};
args.wrappedJSObject = args;
- let chromeWindow = Services.ww.openWindow(null, CHROME_URL, "_blank",
+ let chromeWindow = Services.ww.openWindow(aChromeWindow, CHROME_URL, "_blank",
CHROME_WINDOW_FLAGS, args);
chromeWindow.onunload = function() {
@@ -1349,12 +1354,12 @@ StyleEditorManager.prototype = {
*
* @param {Window} associated content window.
*/
- toggleEditor: function SEM_toggleEditor(aContentWindow) {
+ toggleEditor: function SEM_toggleEditor(aContentWindow, aChromeWindow) {
let editor = this.getEditorForWindow(aContentWindow);
if (editor) {
editor.close();
} else {
- this.newEditor(aContentWindow);
+ this.newEditor(aContentWindow, aChromeWindow);
}
},
View
6 browser/devtools/styleeditor/test/browser_styleeditor_private.js
@@ -6,6 +6,8 @@
// content CSS files in the permanent cache when opened from PB mode.
function checkDiskCacheFor(host) {
+ let foundPrivateData = false;
+
let visitor = {
visitDevice: function(deviceID, deviceInfo) {
if (deviceID == "disk")
@@ -15,10 +17,12 @@ function checkDiskCacheFor(host) {
visitEntry: function(deviceID, entryInfo) {
info(entryInfo.key);
- is(entryInfo.key.contains(host), false, "web content present in disk cache");
+ foundPrivateData |= entryInfo.key.contains(host);
+ is(foundPrivateData, false, "web content present