From b63a5122efd1240e747dda1d0e18d001a383fbc7 Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Fri, 9 Sep 2011 22:18:19 -0700 Subject: [PATCH 01/71] Back out 4f7f1840152b (bug 680113) for orange --- .../extensions/selectAddons.properties | 4 -- .../extensions/content/selectAddons.js | 13 +----- .../extensions/content/selectAddons.xml | 10 ++-- .../extensions/content/selectAddons.xul | 1 + .../test/browser/browser_select_selection.js | 46 +++++++++---------- 5 files changed, 29 insertions(+), 45 deletions(-) diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/selectAddons.properties b/toolkit/locales/en-US/chrome/mozapps/extensions/selectAddons.properties index 1b782d36efb..904650be108 100644 --- a/toolkit/locales/en-US/chrome/mozapps/extensions/selectAddons.properties +++ b/toolkit/locales/en-US/chrome/mozapps/extensions/selectAddons.properties @@ -1,10 +1,6 @@ #LOCALIZATION NOTE (source.profile) add-ons installed by the user, this may be # translated as "You" or "User" depending on the locale source.profile=You -#LOCALIZATION NOTE (source.bundled) add-ons shipped with the application, and thus -# treated as installed by the user. This may be -# translated as "You" or "User" depending on the locale -source.bundled=You (Bundled) #LOCALIZATION NOTE (source.other) add-ons installed by other applications # installed on the computer source.other=Third Party diff --git a/toolkit/mozapps/extensions/content/selectAddons.js b/toolkit/mozapps/extensions/content/selectAddons.js index c4e4fffb72c..f9d9eb559c4 100644 --- a/toolkit/mozapps/extensions/content/selectAddons.js +++ b/toolkit/mozapps/extensions/content/selectAddons.js @@ -38,7 +38,6 @@ "use strict"; Components.utils.import("resource://gre/modules/AddonManager.jsm"); -Components.utils.import("resource://gre/modules/Services.jsm"); const Cc = Components.classes; const Ci = Components.interfaces; @@ -71,17 +70,10 @@ function showButtons(aCancel, aBack, aNext, aDone) { document.getElementById("done").hidden = !aDone; } -function isAddonDistroInstalled(aID) { - let branch = Services.prefs.getBranch("extensions.installedDistroAddon."); - if (!branch.prefHasUserValue(aID)) - return false; - - return branch.getBoolPref(aID); -} - function orderForScope(aScope) { switch (aScope) { case AddonManager.SCOPE_PROFILE: + return 2; case AddonManager.SCOPE_APPLICATION: return 1; default: @@ -183,8 +175,7 @@ var gChecking = { row.setAttribute("id", aEntry.addon.id); row.setAttribute("class", "addon"); rows.appendChild(row); - row.setAddon(aEntry.addon, aEntry.install, aEntry.wasActive, - isAddonDistroInstalled(aEntry.addon.id)); + row.setAddon(aEntry.addon, aEntry.install, aEntry.wasActive); if (aEntry.install) aEntry.install.addListener(gUpdate); diff --git a/toolkit/mozapps/extensions/content/selectAddons.xml b/toolkit/mozapps/extensions/content/selectAddons.xml index 1813df6fe25..8092d0c5a03 100644 --- a/toolkit/mozapps/extensions/content/selectAddons.xml +++ b/toolkit/mozapps/extensions/content/selectAddons.xml @@ -81,6 +81,7 @@ document.getAnonymousElementByAttribute(this, "anonid", "keep"); document.getAnonymousElementByAttribute(this, "anonid", "update"); + document.getElementById("app-strings"); document.getElementById("strings"); @@ -109,7 +110,6 @@ - + + From 4ab625e2fe8bf7325c2f8147cdc591de8edd6cd5 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 13 Sep 2011 15:09:51 -0400 Subject: [PATCH 18/71] Bug 686247 - Text control frames should accept dynamic changes to the CSS overflow property; r=bzbarsky,surkov --- .../mochitest/tree/test_cssoverflow.html | 24 +++++++---------- .../html/content/src/nsTextEditorState.cpp | 27 ++++++++++++------- content/html/content/src/nsTextEditorState.h | 2 ++ .../editor/dynamic-overflow-change-ref.html | 13 +++++++++ .../editor/dynamic-overflow-change.html | 13 +++++++++ layout/reftests/editor/reftest.list | 1 + layout/style/nsStyleStruct.cpp | 4 +-- 7 files changed, 57 insertions(+), 27 deletions(-) create mode 100644 layout/reftests/editor/dynamic-overflow-change-ref.html create mode 100644 layout/reftests/editor/dynamic-overflow-change.html diff --git a/accessible/tests/mochitest/tree/test_cssoverflow.html b/accessible/tests/mochitest/tree/test_cssoverflow.html index 1a955f80cee..8a5cf491d95 100644 --- a/accessible/tests/mochitest/tree/test_cssoverflow.html +++ b/accessible/tests/mochitest/tree/test_cssoverflow.html @@ -35,10 +35,6 @@ new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) ]; - this.unexpectedEventSeq = [ - new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) - ]; - this.invoke = function focusAnchor_invoke() { this.linkNode.focus(); @@ -46,8 +42,9 @@ this.check = function focusAnchor_check(aEvent) { - is(this.link, aEvent.accessible, - "The link accessible shouldn't be recreated!"); + todo_is(this.link, aEvent.accessible, + "Focus should be fired against new link accessible!"); + todo(false, "Doubled reorder events!"); } this.getID = function focusAnchor_getID() @@ -65,10 +62,6 @@ new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) ]; - this.unexpectedEventSeq = [ - new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) - ]; - this.invoke = function tabAnchor_invoke() { synthesizeKey("VK_TAB", { shiftKey: false }); @@ -76,8 +69,9 @@ this.check = function tabAnchor_check(aEvent) { - is(this.link, aEvent.accessible, - "The link accessible shouldn't be recreated!"); + todo_isnot(this.link, aEvent.accessible, + "Focus should be fired against new link accessible!"); + todo(false, "Doubled reorder events!"); } this.getID = function tabAnchor_getID() @@ -126,9 +120,9 @@ Mozilla Bug 570275
- Mozilla Bug 606087 + title="Text control frames should accept dynamic changes to the CSS overflow property" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=686247"> + Mozilla Bug 686247

diff --git a/content/html/content/src/nsTextEditorState.cpp b/content/html/content/src/nsTextEditorState.cpp index b91a54bd083..28b24cf6ef2 100644 --- a/content/html/content/src/nsTextEditorState.cpp +++ b/content/html/content/src/nsTextEditorState.cpp @@ -1058,6 +1058,9 @@ nsTextEditorState::BindToFrame(nsTextControlFrame* aFrame) nsIContent *rootNode = GetRootNode(); + nsresult rv = InitializeRootNode(); + NS_ENSURE_SUCCESS(rv, rv); + nsIPresShell *shell = mBoundFrame->PresContext()->GetPresShell(); NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); @@ -1545,6 +1548,17 @@ nsTextEditorState::CreateRootNode() NOT_FROM_PARSER); NS_ENSURE_SUCCESS(rv, rv); + if (!IsSingleLineTextControl()) { + mMutationObserver = new nsAnonDivObserver(this); + mRootNode->AddMutationObserver(mMutationObserver); + } + + return rv; +} + +nsresult +nsTextEditorState::InitializeRootNode() +{ // Set the necessary classes on the text control. We use class values // instead of a 'style' attribute so that the style comes from a user-agent // style sheet and is still applied even if author styles are disabled. @@ -1564,19 +1578,12 @@ nsTextEditorState::CreateRootNode() disp->mOverflowX != NS_STYLE_OVERFLOW_CLIP) { classValue.AppendLiteral(" inherit-overflow"); } - - mMutationObserver = new nsAnonDivObserver(this); - NS_ENSURE_TRUE(mMutationObserver, NS_ERROR_OUT_OF_MEMORY); - mRootNode->AddMutationObserver(mMutationObserver); } - rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, - classValue, PR_FALSE); + nsresult rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, + classValue, PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); - rv = mBoundFrame->UpdateValueDisplay(PR_FALSE); - NS_ENSURE_SUCCESS(rv, rv); - - return rv; + return mBoundFrame->UpdateValueDisplay(PR_FALSE); } nsresult diff --git a/content/html/content/src/nsTextEditorState.h b/content/html/content/src/nsTextEditorState.h index 2e6a6b3a408..56d162dddb3 100644 --- a/content/html/content/src/nsTextEditorState.h +++ b/content/html/content/src/nsTextEditorState.h @@ -253,6 +253,8 @@ private: void DestroyEditor(); void Clear(); + nsresult InitializeRootNode(); + void FinishedRestoringSelection() { mRestoringSelection = nsnull; } class InitializationGuard { diff --git a/layout/reftests/editor/dynamic-overflow-change-ref.html b/layout/reftests/editor/dynamic-overflow-change-ref.html new file mode 100644 index 00000000000..52e5f5bb0dd --- /dev/null +++ b/layout/reftests/editor/dynamic-overflow-change-ref.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/layout/reftests/editor/dynamic-overflow-change.html b/layout/reftests/editor/dynamic-overflow-change.html new file mode 100644 index 00000000000..57a1b8f74ef --- /dev/null +++ b/layout/reftests/editor/dynamic-overflow-change.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/layout/reftests/editor/reftest.list b/layout/reftests/editor/reftest.list index 95c0302400d..4c51f404047 100644 --- a/layout/reftests/editor/reftest.list +++ b/layout/reftests/editor/reftest.list @@ -69,3 +69,4 @@ skip-if(Android) == 674212-spellcheck.html 674212-spellcheck-ref.html skip-if(Android) == 338427-2.html 338427-2-ref.html skip-if(Android) == 338427-3.html 338427-3-ref.html skip-if(Android) == 462758-grabbers-resizers.html 462758-grabbers-resizers-ref.html +== dynamic-overflow-change.html dynamic-overflow-change-ref.html diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp index 06a7f5cb234..f6217f120d7 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -2180,8 +2180,8 @@ nsChangeHint nsStyleDisplay::CalcDifference(const nsStyleDisplay& aOther) const || mPosition != aOther.mPosition || mDisplay != aOther.mDisplay || (mFloats == NS_STYLE_FLOAT_NONE) != (aOther.mFloats == NS_STYLE_FLOAT_NONE) - || (mOverflowX != aOther.mOverflowX && mDisplay != NS_STYLE_DISPLAY_INLINE) - || (mOverflowY != aOther.mOverflowY && mDisplay != NS_STYLE_DISPLAY_INLINE) + || mOverflowX != aOther.mOverflowX + || mOverflowY != aOther.mOverflowY || mResize != aOther.mResize) NS_UpdateHint(hint, nsChangeHint_ReconstructFrame); From 64964154589a741ba21891b3a3ca4dc7fb97b618 Mon Sep 17 00:00:00 2001 From: Michal Novotny Date: Tue, 13 Sep 2011 21:24:01 +0200 Subject: [PATCH 19/71] Bug 647391 - Increase maximum size for objects stored in disk cache. --- modules/libpref/src/init/all.js | 12 ++++++------ netwerk/cache/nsCacheService.h | 6 ++++-- netwerk/test/unit/test_bug654926.js | 17 +++++++++++++++-- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js index a02732eff85..c21a5eb0dad 100644 --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -64,16 +64,16 @@ pref("browser.cache.disk.enable", true); pref("browser.cache.disk.smart_size.first_run", true); // Does the user want smart-sizing? pref("browser.cache.disk.smart_size.enabled", true); -// Size explicitly set by the user. Used when smart_size.enabled == false +// Size (in KB) explicitly set by the user. Used when smart_size.enabled == false pref("browser.cache.disk.capacity", 256000); -// User-controllable max-size for entries in disk-cache. Regardless of this -// setting, no entries bigger than 1/8 of disk-cache will be cached -pref("browser.cache.disk.max_entry_size", 5120); +// Max-size (in KB) for entries in disk cache. Set to -1 for no limit. +// (Note: entries bigger than 1/8 of disk-cache are never cached) +pref("browser.cache.disk.max_entry_size", 51200); // 50 MB pref("browser.cache.memory.enable", true); // -1 = determine dynamically, 0 = none, n = memory capacity in kilobytes //pref("browser.cache.memory.capacity", -1); -// User-controllable max-size for entries in mem-cache. Regardless of this -// setting, no entries bigger than 90% of the mem-cache will be cached +// Max-size (in KB) for entries in memory cache. Set to -1 for no limit. +// (Note: entries bigger than than 90% of the mem-cache are never cached) pref("browser.cache.memory.max_entry_size", 5120); pref("browser.cache.disk_cache_ssl", true); // 0 = once-per-session, 1 = each-time, 2 = never, 3 = when-appropriate/automatically diff --git a/netwerk/cache/nsCacheService.h b/netwerk/cache/nsCacheService.h index 04c6981123c..27b0af2a28f 100644 --- a/netwerk/cache/nsCacheService.h +++ b/netwerk/cache/nsCacheService.h @@ -163,9 +163,11 @@ public: static void SetDiskCacheEnabled(PRBool enabled); // Sets the disk cache capacity (in kilobytes) static void SetDiskCacheCapacity(PRInt32 capacity); - // Set max size for a disk-cache entry (in bytes). -1 disables this limit + // Set max size for a disk-cache entry (in KB). -1 disables limit up to + // 1/8th of disk cache size static void SetDiskCacheMaxEntrySize(PRInt32 maxSize); - // Set max size for a memory-cache entry (in bytes). -1 disables this limit + // Set max size for a memory-cache entry (in kilobytes). -1 disables + // limit up to 90% of memory cache size static void SetMemoryCacheMaxEntrySize(PRInt32 maxSize); static void SetOfflineCacheEnabled(PRBool enabled); diff --git a/netwerk/test/unit/test_bug654926.js b/netwerk/test/unit/test_bug654926.js index f840e90a226..ddb1062d1f7 100644 --- a/netwerk/test/unit/test_bug654926.js +++ b/netwerk/test/unit/test_bug654926.js @@ -11,6 +11,15 @@ function get_cache_service() { getService(Ci.nsICacheService); } +var _PSvc; +function get_pref_service() { + if (_PSvc) + return _PSvc; + + return _PSvc = Cc["@mozilla.org/preferences-service;1"]. + getService(Ci.nsIPrefBranch); +} + function get_ostream_for_entry(key, asFile, append, entryRef) { var cache = get_cache_service(); @@ -79,9 +88,13 @@ function write_datafile() var oStr = get_ostream_for_entry("data", true, false, entry); var data = gen_1MiB(); - // 6MiB + // max size in MB + var max_size = get_pref_service(). + getIntPref("browser.cache.disk.max_entry_size") / 1024; + + // write larger entry than is allowed var i; - for (i=0 ; i<6 ; i++) + for (i=0 ; i<(max_size+1) ; i++) write_and_check(oStr, data, data.length); oStr.close(); From 6c00c7baf6170b0cf1dcbc1f9d06803783a6ede7 Mon Sep 17 00:00:00 2001 From: Mounir Lamouri Date: Tue, 13 Sep 2011 12:37:51 -0700 Subject: [PATCH 20/71] Bug 675201 - Revert debug info given that the random orange is now fixed. r=me --- layout/generic/test/test_bug632379.xul | 2 -- 1 file changed, 2 deletions(-) diff --git a/layout/generic/test/test_bug632379.xul b/layout/generic/test/test_bug632379.xul index b023ce862bc..9c4b5f4219a 100644 --- a/layout/generic/test/test_bug632379.xul +++ b/layout/generic/test/test_bug632379.xul @@ -176,7 +176,6 @@ function snapshot(elem) pos[count] = elem.getBoundingClientRect().top; ++count; if (count <= 1) { - ok(true, "trying to open the second submenu"); // close the submenu and open the bottom submenu synthesizeKey("VK_LEFT", {}); synthesizeKey("9", {}); @@ -193,7 +192,6 @@ function doTest() { function openSubmenu() { - ok(true, "openSubMenu() called"); // open a submenu in the middle synthesizeKey("5", {}); } From e013d8d17f96435756262c0d84c51abfe95f432f Mon Sep 17 00:00:00 2001 From: Lucas Rocha Date: Tue, 13 Sep 2011 12:56:09 -0700 Subject: [PATCH 21/71] Bug 685568 - Add vertical divider between tab bar and web content (r=mbrubeck) --- mobile/themes/core/defines.inc | 1 + mobile/themes/core/tablet.css | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/themes/core/defines.inc b/mobile/themes/core/defines.inc index 42803a05828..fce7f956344 100644 --- a/mobile/themes/core/defines.inc +++ b/mobile/themes/core/defines.inc @@ -37,6 +37,7 @@ %define padding_xsmall 0.21mozmm %define padding_tiny 0.11mozmm +%define border_width_xxlarge 0.64mozmm %define border_width_xlarge 0.42mozmm %define border_width_large 0.32mozmm %define border_width_small 0.21mozmm diff --git a/mobile/themes/core/tablet.css b/mobile/themes/core/tablet.css index fcf0471c5f6..2f3a90e0503 100644 --- a/mobile/themes/core/tablet.css +++ b/mobile/themes/core/tablet.css @@ -31,7 +31,7 @@ } #tabs-container[tablet] { - -moz-border-end: 0px; + -moz-border-end: @border_width_xxlarge@ solid #eaeaea; background: #000; } From 426a519e1cc4edcbd10428be6042673277698631 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Tue, 13 Sep 2011 13:01:59 -0700 Subject: [PATCH 22/71] Bug 685568 - Add vertical divider between tab bar and web content (remove change that accidentally snuck in) --- mobile/themes/core/tablet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/themes/core/tablet.css b/mobile/themes/core/tablet.css index 2f3a90e0503..2472cca229a 100644 --- a/mobile/themes/core/tablet.css +++ b/mobile/themes/core/tablet.css @@ -31,7 +31,7 @@ } #tabs-container[tablet] { - -moz-border-end: @border_width_xxlarge@ solid #eaeaea; + -moz-border-end: @border_width_xlarge@ solid #eaeaea; background: #000; } From bf015d6509f70d962eff919186abc758c8b09ffc Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 13 Sep 2011 17:42:43 -0400 Subject: [PATCH 23/71] Backout changeset 2705abe8d3f2 (bug 686247) again because of the accessibility test failures --- .../mochitest/tree/test_cssoverflow.html | 24 ++++++++++------- .../html/content/src/nsTextEditorState.cpp | 27 +++++++------------ content/html/content/src/nsTextEditorState.h | 2 -- .../editor/dynamic-overflow-change-ref.html | 13 --------- .../editor/dynamic-overflow-change.html | 13 --------- layout/reftests/editor/reftest.list | 1 - layout/style/nsStyleStruct.cpp | 4 +-- 7 files changed, 27 insertions(+), 57 deletions(-) delete mode 100644 layout/reftests/editor/dynamic-overflow-change-ref.html delete mode 100644 layout/reftests/editor/dynamic-overflow-change.html diff --git a/accessible/tests/mochitest/tree/test_cssoverflow.html b/accessible/tests/mochitest/tree/test_cssoverflow.html index 8a5cf491d95..1a955f80cee 100644 --- a/accessible/tests/mochitest/tree/test_cssoverflow.html +++ b/accessible/tests/mochitest/tree/test_cssoverflow.html @@ -35,6 +35,10 @@ new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) ]; + this.unexpectedEventSeq = [ + new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) + ]; + this.invoke = function focusAnchor_invoke() { this.linkNode.focus(); @@ -42,9 +46,8 @@ this.check = function focusAnchor_check(aEvent) { - todo_is(this.link, aEvent.accessible, - "Focus should be fired against new link accessible!"); - todo(false, "Doubled reorder events!"); + is(this.link, aEvent.accessible, + "The link accessible shouldn't be recreated!"); } this.getID = function focusAnchor_getID() @@ -62,6 +65,10 @@ new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) ]; + this.unexpectedEventSeq = [ + new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) + ]; + this.invoke = function tabAnchor_invoke() { synthesizeKey("VK_TAB", { shiftKey: false }); @@ -69,9 +76,8 @@ this.check = function tabAnchor_check(aEvent) { - todo_isnot(this.link, aEvent.accessible, - "Focus should be fired against new link accessible!"); - todo(false, "Doubled reorder events!"); + is(this.link, aEvent.accessible, + "The link accessible shouldn't be recreated!"); } this.getID = function tabAnchor_getID() @@ -120,9 +126,9 @@ Mozilla Bug 570275
- Mozilla Bug 686247 + title="Don't recreate frames for inlines with overflow style applied" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=606087"> + Mozilla Bug 606087

diff --git a/content/html/content/src/nsTextEditorState.cpp b/content/html/content/src/nsTextEditorState.cpp index 28b24cf6ef2..b91a54bd083 100644 --- a/content/html/content/src/nsTextEditorState.cpp +++ b/content/html/content/src/nsTextEditorState.cpp @@ -1058,9 +1058,6 @@ nsTextEditorState::BindToFrame(nsTextControlFrame* aFrame) nsIContent *rootNode = GetRootNode(); - nsresult rv = InitializeRootNode(); - NS_ENSURE_SUCCESS(rv, rv); - nsIPresShell *shell = mBoundFrame->PresContext()->GetPresShell(); NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); @@ -1548,17 +1545,6 @@ nsTextEditorState::CreateRootNode() NOT_FROM_PARSER); NS_ENSURE_SUCCESS(rv, rv); - if (!IsSingleLineTextControl()) { - mMutationObserver = new nsAnonDivObserver(this); - mRootNode->AddMutationObserver(mMutationObserver); - } - - return rv; -} - -nsresult -nsTextEditorState::InitializeRootNode() -{ // Set the necessary classes on the text control. We use class values // instead of a 'style' attribute so that the style comes from a user-agent // style sheet and is still applied even if author styles are disabled. @@ -1578,12 +1564,19 @@ nsTextEditorState::InitializeRootNode() disp->mOverflowX != NS_STYLE_OVERFLOW_CLIP) { classValue.AppendLiteral(" inherit-overflow"); } + + mMutationObserver = new nsAnonDivObserver(this); + NS_ENSURE_TRUE(mMutationObserver, NS_ERROR_OUT_OF_MEMORY); + mRootNode->AddMutationObserver(mMutationObserver); } - nsresult rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, - classValue, PR_FALSE); + rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, + classValue, PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); - return mBoundFrame->UpdateValueDisplay(PR_FALSE); + rv = mBoundFrame->UpdateValueDisplay(PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + + return rv; } nsresult diff --git a/content/html/content/src/nsTextEditorState.h b/content/html/content/src/nsTextEditorState.h index 56d162dddb3..2e6a6b3a408 100644 --- a/content/html/content/src/nsTextEditorState.h +++ b/content/html/content/src/nsTextEditorState.h @@ -253,8 +253,6 @@ private: void DestroyEditor(); void Clear(); - nsresult InitializeRootNode(); - void FinishedRestoringSelection() { mRestoringSelection = nsnull; } class InitializationGuard { diff --git a/layout/reftests/editor/dynamic-overflow-change-ref.html b/layout/reftests/editor/dynamic-overflow-change-ref.html deleted file mode 100644 index 52e5f5bb0dd..00000000000 --- a/layout/reftests/editor/dynamic-overflow-change-ref.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/layout/reftests/editor/dynamic-overflow-change.html b/layout/reftests/editor/dynamic-overflow-change.html deleted file mode 100644 index 57a1b8f74ef..00000000000 --- a/layout/reftests/editor/dynamic-overflow-change.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/layout/reftests/editor/reftest.list b/layout/reftests/editor/reftest.list index 4c51f404047..95c0302400d 100644 --- a/layout/reftests/editor/reftest.list +++ b/layout/reftests/editor/reftest.list @@ -69,4 +69,3 @@ skip-if(Android) == 674212-spellcheck.html 674212-spellcheck-ref.html skip-if(Android) == 338427-2.html 338427-2-ref.html skip-if(Android) == 338427-3.html 338427-3-ref.html skip-if(Android) == 462758-grabbers-resizers.html 462758-grabbers-resizers-ref.html -== dynamic-overflow-change.html dynamic-overflow-change-ref.html diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp index f6217f120d7..06a7f5cb234 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -2180,8 +2180,8 @@ nsChangeHint nsStyleDisplay::CalcDifference(const nsStyleDisplay& aOther) const || mPosition != aOther.mPosition || mDisplay != aOther.mDisplay || (mFloats == NS_STYLE_FLOAT_NONE) != (aOther.mFloats == NS_STYLE_FLOAT_NONE) - || mOverflowX != aOther.mOverflowX - || mOverflowY != aOther.mOverflowY + || (mOverflowX != aOther.mOverflowX && mDisplay != NS_STYLE_DISPLAY_INLINE) + || (mOverflowY != aOther.mOverflowY && mDisplay != NS_STYLE_DISPLAY_INLINE) || mResize != aOther.mResize) NS_UpdateHint(hint, nsChangeHint_ReconstructFrame); From 22ef9265fee6366c548141481ac56f41e75a7d83 Mon Sep 17 00:00:00 2001 From: Jason Duell Date: Tue, 13 Sep 2011 15:14:01 -0700 Subject: [PATCH 24/71] Bug 682478. Wait longer to get correct filename for "save link as". r=limi --- browser/app/profile/firefox.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index a74ee534588..3397e661e39 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -308,7 +308,7 @@ pref("browser.urlbar.trimURLs", true); // the Content-Disposition filename) before giving up and falling back to // picking a filename without that info in hand so that the user sees some // feedback from their action. -pref("browser.download.saveLinkAsFilenameTimeout", 1000); +pref("browser.download.saveLinkAsFilenameTimeout", 4000); pref("browser.download.useDownloadDir", true); From 254e534d0f022df5df373195465760497ee1945c Mon Sep 17 00:00:00 2001 From: Jason Duell Date: Tue, 13 Sep 2011 15:15:28 -0700 Subject: [PATCH 25/71] Bug 686558 - Get rid of gcc warning about "enumeral mismatch" in nsNetUtil.h. r=bz --- netwerk/base/public/nsNetUtil.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netwerk/base/public/nsNetUtil.h b/netwerk/base/public/nsNetUtil.h index 08e2ed8fc03..b1c1926f703 100644 --- a/netwerk/base/public/nsNetUtil.h +++ b/netwerk/base/public/nsNetUtil.h @@ -1946,9 +1946,9 @@ NS_GetContentDispositionFromHeader(const nsACString& aHeader, nsIChannel *aChan if (NS_FAILED(rv)) { // special case (see bug 272541): empty disposition type handled as "inline" - return rv == NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY - ? nsIChannel::DISPOSITION_INLINE - : nsIChannel::DISPOSITION_ATTACHMENT; + if (rv == NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY) + return nsIChannel::DISPOSITION_INLINE; + return nsIChannel::DISPOSITION_ATTACHMENT; } return NS_GetContentDispositionFromToken(dispToken); From 21a28110472ab7270023418cef652aa87622c5a1 Mon Sep 17 00:00:00 2001 From: Mounir Lamouri Date: Tue, 13 Sep 2011 15:35:23 -0700 Subject: [PATCH 26/71] Bug 686350 - Check in configure script that the selected Android SDK is correct. r=glandium --- configure.in | 22 ++++++++++++++++++++++ js/src/configure.in | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/configure.in b/configure.in index 0df935078c7..4bde68bc335 100644 --- a/configure.in +++ b/configure.in @@ -295,6 +295,28 @@ case "$target" in if test -z "$android_sdk" ; then AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.]) + else + if ! test -e "$android_sdk"/source.properties ; then + AC_MSG_ERROR([The path in --with-android-sdk isn't valid (source.properties hasn't been found).]) + fi + + # Minimum Android SDK API Level we require. + android_min_api_level=13 + + # Get the api level from "$android_sdk"/source.properties. + android_api_level=`$AWK -F = '$1 == "AndroidVersion.ApiLevel" {print $2}' "$android_sdk"/source.properties` + + if test -z "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: no AndroidVersion.ApiLevel field has been found in source.properties.]) + fi + + if ! test "$android_api_level" -eq "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: the found android api value isn't a number! (found $android_api_level)]) + fi + + if test $android_api_level -lt $android_min_api_level ; then + AC_MSG_ERROR([The given Android SDK provides API level $android_api_level ($android_min_api_level or higher required).]) + fi fi android_platform_tools="$android_sdk"/../../platform-tools diff --git a/js/src/configure.in b/js/src/configure.in index 34d57e12f6d..b26d35085d2 100644 --- a/js/src/configure.in +++ b/js/src/configure.in @@ -291,6 +291,28 @@ case "$target" in android_platform_tools="$android_sdk"/../../platform-tools if test ! -d "$android_platform_tools" ; then android_platform_tools="$android_sdk"/tools # SDK Tools < r8 + else + if ! test -e "$android_sdk"/source.properties ; then + AC_MSG_ERROR([The path in --with-android-sdk isn't valid (source.properties hasn't been found).]) + fi + + # Minimum Android SDK API Level we require. + android_min_api_level=13 + + # Get the api level from "$android_sdk"/source.properties. + android_api_level=`$AWK -F = '$1 == "AndroidVersion.ApiLevel" {print $2}' "$android_sdk"/source.properties` + + if test -z "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: no AndroidVersion.ApiLevel field has been found in source.properties.]) + fi + + if ! test "$android_api_level" -eq "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: the found android api value isn't a number! (found $android_api_level)]) + fi + + if test $android_api_level -lt $android_min_api_level ; then + AC_MSG_ERROR([The given Android SDK provides API level $android_api_level ($android_min_api_level or higher required).]) + fi fi if test -z "$android_toolchain" ; then From 39417fd21da7d06b38830bde1190cee1c9400ac8 Mon Sep 17 00:00:00 2001 From: Steve Fink Date: Thu, 8 Sep 2011 11:25:06 -0700 Subject: [PATCH 27/71] Bug 684713 - Match full function name when giving JS shell help messages (r=cdleary) --HG-- extra : rebase_source : 20c5e3748e7918cc19c13c09d732cc8560188762 --- js/src/shell/js.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index 5be368ebca6..fd6fa356965 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -4527,6 +4527,9 @@ Help(JSContext *cx, uintN argc, jsval *vp) const char *p = strchr(msg, '('); JS_ASSERT(p); + if (size_t(p - msg) != str->length()) + continue; + if (strncmp(funcName.ptr(), msg, p - msg) == 0) { if (!did_header) { did_header = 1; From ae443afef2d7cdf35a4ad82e98fdfd80002e592a Mon Sep 17 00:00:00 2001 From: Steve Fink Date: Wed, 7 Sep 2011 17:25:25 -0700 Subject: [PATCH 28/71] Bug 686571 - Check for jit->pcLengths before using (r=bhackett) --- js/src/methodjit/PolyIC.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/js/src/methodjit/PolyIC.cpp b/js/src/methodjit/PolyIC.cpp index 992205fd1c5..63363d82881 100644 --- a/js/src/methodjit/PolyIC.cpp +++ b/js/src/methodjit/PolyIC.cpp @@ -2224,13 +2224,14 @@ inline uint32 frameCountersOffset(JSContext *cx) LookupStatus BaseIC::disable(JSContext *cx, const char *reason, void *stub) { - if (cx->hasRunOption(JSOPTION_PCCOUNT)) { + JITScript *jit = cx->fp()->jit(); + if (jit->pcLengths) { uint32 offset = frameCountersOffset(cx); - cx->fp()->jit()->pcLengths[offset].picsLength = 0; + jit->pcLengths[offset].picsLength = 0; } spew(cx, "disabled", reason); - Repatcher repatcher(cx->fp()->jit()); + Repatcher repatcher(jit); repatcher.relink(slowPathCall, FunctionPtr(stub)); return Lookup_Uncacheable; } @@ -2238,9 +2239,10 @@ BaseIC::disable(JSContext *cx, const char *reason, void *stub) void BaseIC::updatePCCounters(JSContext *cx, Assembler &masm) { - if (cx->hasRunOption(JSOPTION_PCCOUNT)) { + JITScript *jit = cx->fp()->jit(); + if (jit->pcLengths) { uint32 offset = frameCountersOffset(cx); - cx->fp()->jit()->pcLengths[offset].picsLength += masm.size(); + jit->pcLengths[offset].picsLength += masm.size(); } } From 64e4b9a1b20d81999567945f68fcfbbb6f69f031 Mon Sep 17 00:00:00 2001 From: Steve Fink Date: Wed, 7 Sep 2011 16:58:28 -0700 Subject: [PATCH 29/71] Bug 686571 - Add options javascript.options.pccounts.content and javascript.options.pccounts.chrome for controlling JSOPTION_PCCOUNTS (r=dmandelin) --- dom/base/nsJSEnvironment.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dom/base/nsJSEnvironment.cpp b/dom/base/nsJSEnvironment.cpp index 5ac2e0805b1..2ce9b50a7a2 100644 --- a/dom/base/nsJSEnvironment.cpp +++ b/dom/base/nsJSEnvironment.cpp @@ -916,6 +916,8 @@ static const char js_profiling_content_str[] = JS_OPTIONS_DOT_STR "jitprofiling static const char js_profiling_chrome_str[] = JS_OPTIONS_DOT_STR "jitprofiling.chrome"; static const char js_methodjit_always_str[] = JS_OPTIONS_DOT_STR "methodjit_always"; static const char js_typeinfer_str[] = JS_OPTIONS_DOT_STR "typeinference"; +static const char js_pccounts_content_str[] = JS_OPTIONS_DOT_STR "pccounts.content"; +static const char js_pccounts_chrome_str[] = JS_OPTIONS_DOT_STR "pccounts.chrome"; static const char js_memlog_option_str[] = JS_OPTIONS_DOT_STR "mem.log"; int @@ -947,6 +949,9 @@ nsJSContext::JSOptionChangedCallback(const char *pref, void *data) PRBool useProfiling = Preferences::GetBool(chromeWindow ? js_profiling_chrome_str : js_profiling_content_str); + PRBool usePCCounts = Preferences::GetBool(chromeWindow ? + js_pccounts_chrome_str : + js_pccounts_content_str); PRBool useMethodJITAlways = Preferences::GetBool(js_methodjit_always_str); PRBool useTypeInference = !chromeWindow && Preferences::GetBool(js_typeinfer_str); nsCOMPtr xr = do_GetService(XULRUNTIME_SERVICE_CONTRACTID); @@ -957,6 +962,7 @@ nsJSContext::JSOptionChangedCallback(const char *pref, void *data) useTraceJIT = PR_FALSE; useMethodJIT = PR_FALSE; useProfiling = PR_FALSE; + usePCCounts = PR_FALSE; useTypeInference = PR_FALSE; useMethodJITAlways = PR_TRUE; } @@ -977,6 +983,11 @@ nsJSContext::JSOptionChangedCallback(const char *pref, void *data) else newDefaultJSOptions &= ~JSOPTION_PROFILING; + if (usePCCounts) + newDefaultJSOptions |= JSOPTION_PCCOUNT; + else + newDefaultJSOptions &= ~JSOPTION_PCCOUNT; + if (useMethodJITAlways) newDefaultJSOptions |= JSOPTION_METHODJIT_ALWAYS; else From 4223d10c3d95a5b14239e7c3458d1ab726bc1f7e Mon Sep 17 00:00:00 2001 From: Alex Vincent Date: Fri, 9 Sep 2011 15:11:00 -0700 Subject: [PATCH 30/71] Bug 684465 - Add Reflect.parse support to xpcshell, r=jorendorff, bz --- js/src/xpconnect/shell/xpcshell.cpp | 5 ++ .../tests/unit/test_reflect_parse.js | 59 +++++++++++++++++++ js/src/xpconnect/tests/unit/xpcshell.ini | 1 + 3 files changed, 65 insertions(+) create mode 100644 js/src/xpconnect/tests/unit/test_reflect_parse.js diff --git a/js/src/xpconnect/shell/xpcshell.cpp b/js/src/xpconnect/shell/xpcshell.cpp index ec26d2d6f12..93f00d942d8 100644 --- a/js/src/xpconnect/shell/xpcshell.cpp +++ b/js/src/xpconnect/shell/xpcshell.cpp @@ -1968,6 +1968,11 @@ main(int argc, char **argv, char **envp) return 1; } + if (!JS_InitReflect(cx, glob)) { + JS_EndRequest(cx); + return 1; + } + if (!JS_DefineFunctions(cx, glob, glob_functions) || !JS_DefineProfilingFunctions(cx, glob)) { JS_EndRequest(cx); diff --git a/js/src/xpconnect/tests/unit/test_reflect_parse.js b/js/src/xpconnect/tests/unit/test_reflect_parse.js new file mode 100644 index 00000000000..6eddff5fc93 --- /dev/null +++ b/js/src/xpconnect/tests/unit/test_reflect_parse.js @@ -0,0 +1,59 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Test Reflect.parse in xpcshell. + * + * The Initial Developer of the Original Code is + * Alexander J. Vincent . + * Portions created by the Initial Developer are Copyright (C) 2011 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* +({ + loc:{start:{line:1, column:0}, end:{line:1, column:12}, source:null}, + type:"Program", + body:[ + { + loc:{start:{line:1, column:0}, end:{line:1, column:12}, source:null}, + type:"ExpressionStatement", + expression:{ + loc:{start:{line:1, column:0}, end:{line:1, column:12}, source:null}, + type:"Literal", + value:"use strict" + } + } + ] +}) +*/ + +function run_test() { + // Reflect.parse is better tested in js shell; this basically tests its presence. + var parseData = Reflect.parse('"use strict"'); + do_check_eq(parseData.body[0].expression.value, "use strict"); +} diff --git a/js/src/xpconnect/tests/unit/xpcshell.ini b/js/src/xpconnect/tests/unit/xpcshell.ini index cd04a912f44..105fb948765 100644 --- a/js/src/xpconnect/tests/unit/xpcshell.ini +++ b/js/src/xpconnect/tests/unit/xpcshell.ini @@ -14,6 +14,7 @@ tail = [test_file.js] [test_import.js] [test_js_weak_references.js] +[test_reflect_parse.js] [test_localeCompare.js] # Bug 676965: test fails consistently on Android fail-if = os == "android" From 9cfbcccfc046ed0120de123b92d26eabf1b03798 Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Mon, 12 Sep 2011 13:10:46 +0100 Subject: [PATCH 31/71] bug 686190 - ensure glyph buffer is flushed when necessary during synthetic bolding. r=jdaggett --- gfx/thebes/gfxFont.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gfx/thebes/gfxFont.cpp b/gfx/thebes/gfxFont.cpp index 85b869f35f2..4378551c2b7 100644 --- a/gfx/thebes/gfxFont.cpp +++ b/gfx/thebes/gfxFont.cpp @@ -1111,10 +1111,10 @@ struct GlyphBuffer { void Flush(cairo_t *aCR, PRBool aDrawToPath, PRBool aReverse, PRBool aFinish = PR_FALSE) { - // Ensure there's enough room for at least two glyphs in the - // buffer (because we may allocate two glyphs between flushes) - if (!aFinish && mNumGlyphs + 2 <= GLYPH_BUFFER_SIZE) + // Ensure there's enough room for a glyph to be added to the buffer + if (!aFinish && mNumGlyphs < GLYPH_BUFFER_SIZE) { return; + } if (aReverse) { for (PRUint32 i = 0; i < mNumGlyphs/2; ++i) { @@ -1222,6 +1222,7 @@ gfxFont::Draw(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aEnd, } glyph->x = ToDeviceUnits(glyphX, devUnitsPerAppUnit); glyph->y = ToDeviceUnits(y, devUnitsPerAppUnit); + glyphs.Flush(cr, aDrawToPath, isRTL); // synthetic bolding by multi-striking with 1-pixel offsets // at least once, more if there's room (large font sizes) @@ -1237,10 +1238,9 @@ gfxFont::Draw(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aEnd, devUnitsPerAppUnit); doubleglyph->y = glyph->y; strikeOffset += synBoldOnePixelOffset; + glyphs.Flush(cr, aDrawToPath, isRTL); } while (--strikeCount > 0); } - - glyphs.Flush(cr, aDrawToPath, isRTL); } else { PRUint32 glyphCount = glyphData->GetGlyphCount(); if (glyphCount > 0) { @@ -1275,6 +1275,7 @@ gfxFont::Draw(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aEnd, } glyph->x = ToDeviceUnits(glyphX, devUnitsPerAppUnit); glyph->y = ToDeviceUnits(y + details->mYOffset, devUnitsPerAppUnit); + glyphs.Flush(cr, aDrawToPath, isRTL); if (IsSyntheticBold()) { double strikeOffset = synBoldOnePixelOffset; @@ -1289,10 +1290,9 @@ gfxFont::Draw(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aEnd, devUnitsPerAppUnit); doubleglyph->y = glyph->y; strikeOffset += synBoldOnePixelOffset; + glyphs.Flush(cr, aDrawToPath, isRTL); } while (--strikeCount > 0); } - - glyphs.Flush(cr, aDrawToPath, isRTL); } x += direction*advance; } From 5ab8028e6f515cde19aa4533d9e5e2e22db98e69 Mon Sep 17 00:00:00 2001 From: Mounir Lamouri Date: Sun, 11 Sep 2011 11:21:09 -0700 Subject: [PATCH 32/71] Bug 675201 - Attempt to wait for focus in the test before issuing keyboard events; r=ehsan --- layout/generic/test/test_bug632379.xul | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/layout/generic/test/test_bug632379.xul b/layout/generic/test/test_bug632379.xul index b1d60e832b1..b023ce862bc 100644 --- a/layout/generic/test/test_bug632379.xul +++ b/layout/generic/test/test_bug632379.xul @@ -198,8 +198,7 @@ function openSubmenu() synthesizeKey("5", {}); } -SimpleTest.waitForExplicitFinish(); -addLoadEvent(doTest); +SimpleTest.waitForFocus(doTest); ]]> From 330628b719d9b081c566bb1fc4a0e7a4f2c97dbf Mon Sep 17 00:00:00 2001 From: Olli Pettay Date: Sun, 11 Sep 2011 15:45:39 -0700 Subject: [PATCH 33/71] Bug 685798 - Node.parentElement, r=bz --- content/base/public/nsINode.h | 11 ++++++ content/base/src/nsDOMAttribute.cpp | 7 ++++ content/base/src/nsDocument.cpp | 7 ++++ content/base/src/nsGenericElement.cpp | 8 ++++ content/base/test/test_bug685798.html | 45 ++++++++++++++++++++++ dom/interfaces/core/nsIDOMNode.idl | 3 +- js/src/xpconnect/src/dom_quickstubs.qsconf | 5 +++ 7 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 content/base/test/test_bug685798.html diff --git a/content/base/public/nsINode.h b/content/base/public/nsINode.h index bf7713e9166..63189d5c0df 100644 --- a/content/base/public/nsINode.h +++ b/content/base/public/nsINode.h @@ -55,6 +55,7 @@ class nsIContent; class nsIDocument; class nsIDOMEvent; class nsIDOMNode; +class nsIDOMElement; class nsIDOMNodeList; class nsINodeList; class nsIPresShell; @@ -707,6 +708,15 @@ public: { return mParent; } + + /** + * Get the parent nsINode for this node if it is an Element. + * @return the parent node + */ + nsINode* GetElementParent() const + { + return mParent && mParent->IsElement() ? mParent : nsnull; + } /** * See nsIDOMEventTarget @@ -1283,6 +1293,7 @@ protected: #endif nsresult GetParentNode(nsIDOMNode** aParentNode); + nsresult GetParentElement(nsIDOMElement** aParentElement); nsresult GetChildNodes(nsIDOMNodeList** aChildNodes); nsresult GetFirstChild(nsIDOMNode** aFirstChild); nsresult GetLastChild(nsIDOMNode** aLastChild); diff --git a/content/base/src/nsDOMAttribute.cpp b/content/base/src/nsDOMAttribute.cpp index 9b41ceaeee7..daf5b1201ad 100644 --- a/content/base/src/nsDOMAttribute.cpp +++ b/content/base/src/nsDOMAttribute.cpp @@ -363,6 +363,13 @@ nsDOMAttribute::GetParentNode(nsIDOMNode** aParentNode) return NS_OK; } +NS_IMETHODIMP +nsDOMAttribute::GetParentElement(nsIDOMElement** aParentElement) +{ + *aParentElement = nsnull; + return NS_OK; +} + NS_IMETHODIMP nsDOMAttribute::GetChildNodes(nsIDOMNodeList** aChildNodes) { diff --git a/content/base/src/nsDocument.cpp b/content/base/src/nsDocument.cpp index 506b49acbe9..3cde0977fed 100644 --- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -5669,6 +5669,13 @@ nsDocument::GetParentNode(nsIDOMNode** aParentNode) return NS_OK; } +NS_IMETHODIMP +nsDocument::GetParentElement(nsIDOMElement** aParentElement) +{ + *aParentElement = nsnull; + return NS_OK; +} + NS_IMETHODIMP nsDocument::GetChildNodes(nsIDOMNodeList** aChildNodes) { diff --git a/content/base/src/nsGenericElement.cpp b/content/base/src/nsGenericElement.cpp index 353c4f5c545..48790b8c1a1 100644 --- a/content/base/src/nsGenericElement.cpp +++ b/content/base/src/nsGenericElement.cpp @@ -434,6 +434,14 @@ nsINode::GetParentNode(nsIDOMNode** aParentNode) return parent ? CallQueryInterface(parent, aParentNode) : NS_OK; } +nsresult +nsINode::GetParentElement(nsIDOMElement** aParentElement) +{ + *aParentElement = nsnull; + nsINode* parent = GetElementParent(); + return parent ? CallQueryInterface(parent, aParentElement) : NS_OK; +} + nsresult nsINode::GetChildNodes(nsIDOMNodeList** aChildNodes) { diff --git a/content/base/test/test_bug685798.html b/content/base/test/test_bug685798.html new file mode 100644 index 00000000000..2dcff211256 --- /dev/null +++ b/content/base/test/test_bug685798.html @@ -0,0 +1,45 @@ + + + + + Test for Bug 685798 + + + + +Mozilla Bug 685798 +

+ +
+
+
+ + diff --git a/dom/interfaces/core/nsIDOMNode.idl b/dom/interfaces/core/nsIDOMNode.idl index 17c27a3e46f..89b5a5fdb9f 100644 --- a/dom/interfaces/core/nsIDOMNode.idl +++ b/dom/interfaces/core/nsIDOMNode.idl @@ -52,7 +52,7 @@ interface nsIDOMUserDataHandler; * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html */ -[scriptable, uuid(af9b19f7-7c88-4d16-9a3a-97390f824c58)] +[scriptable, uuid(45e7ac3c-27d9-49bc-b3a3-dfc573f6f649)] interface nsIDOMNode : nsISupports { const unsigned short ELEMENT_NODE = 1; @@ -74,6 +74,7 @@ interface nsIDOMNode : nsISupports // raises(DOMException) on retrieval readonly attribute unsigned short nodeType; readonly attribute nsIDOMNode parentNode; + readonly attribute nsIDOMElement parentElement; readonly attribute nsIDOMNodeList childNodes; readonly attribute nsIDOMNode firstChild; readonly attribute nsIDOMNode lastChild; diff --git a/js/src/xpconnect/src/dom_quickstubs.qsconf b/js/src/xpconnect/src/dom_quickstubs.qsconf index 5cd451c3a86..7b957083cea 100644 --- a/js/src/xpconnect/src/dom_quickstubs.qsconf +++ b/js/src/xpconnect/src/dom_quickstubs.qsconf @@ -597,6 +597,11 @@ customMethodCalls = { 'code': ' nsINode *result = self->GetNodeParent();', 'canFail': False }, + 'nsIDOMNode_GetParentElement': { + 'thisType': 'nsINode', + 'code': ' nsINode *result = self->GetElementParent();', + 'canFail': False + }, 'nsIDOMNode_InsertBefore': { 'thisType': 'nsINode', 'arg0Type': 'nsINode', From 00f708389bcc4e83753903263925bbe10c3ffbc0 Mon Sep 17 00:00:00 2001 From: Olli Pettay Date: Sun, 11 Sep 2011 16:05:19 -0700 Subject: [PATCH 34/71] Bug 685798 - Node.parentElement, r=bz --- content/base/test/Makefile.in | 1 + dom/interfaces/core/nsIDOMAttr.idl | 2 +- dom/interfaces/core/nsIDOMCDATASection.idl | 2 +- dom/interfaces/core/nsIDOMCharacterData.idl | 2 +- dom/interfaces/core/nsIDOMComment.idl | 2 +- dom/interfaces/core/nsIDOMDocument.idl | 2 +- .../core/nsIDOMDocumentFragment.idl | 2 +- dom/interfaces/core/nsIDOMDocumentType.idl | 2 +- dom/interfaces/core/nsIDOMElement.idl | 2 +- dom/interfaces/core/nsIDOMNode.idl | 2 +- .../core/nsIDOMProcessingInstruction.idl | 2 +- dom/interfaces/core/nsIDOMText.idl | 2 +- dom/interfaces/core/nsIDOMXMLDocument.idl | 2 +- .../html/nsIDOMHTMLAnchorElement.idl | 2 +- .../html/nsIDOMHTMLAppletElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLAreaElement.idl | 2 +- .../html/nsIDOMHTMLAudioElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLBRElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLBaseElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLBodyElement.idl | 2 +- .../html/nsIDOMHTMLButtonElement.idl | 2 +- .../html/nsIDOMHTMLCanvasElement.idl | 2 +- .../html/nsIDOMHTMLCommandElement.idl | 2 +- .../html/nsIDOMHTMLDListElement.idl | 2 +- .../html/nsIDOMHTMLDataListElement.idl | 2 +- .../html/nsIDOMHTMLDirectoryElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLDivElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLDocument.idl | 2 +- dom/interfaces/html/nsIDOMHTMLElement.idl | 2 +- .../html/nsIDOMHTMLEmbedElement.idl | 2 +- .../html/nsIDOMHTMLFieldSetElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLFontElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLFormElement.idl | 2 +- .../html/nsIDOMHTMLFrameElement.idl | 2 +- .../html/nsIDOMHTMLFrameSetElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLHRElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLHeadElement.idl | 2 +- .../html/nsIDOMHTMLHeadingElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLHtmlElement.idl | 2 +- .../html/nsIDOMHTMLIFrameElement.idl | 2 +- .../html/nsIDOMHTMLImageElement.idl | 2 +- .../html/nsIDOMHTMLInputElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLLIElement.idl | 2 +- .../html/nsIDOMHTMLLabelElement.idl | 2 +- .../html/nsIDOMHTMLLegendElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLLinkElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLMapElement.idl | 2 +- .../html/nsIDOMHTMLMediaElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLMenuElement.idl | 2 +- .../html/nsIDOMHTMLMenuItemElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLMetaElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLModElement.idl | 2 +- .../html/nsIDOMHTMLOListElement.idl | 2 +- .../html/nsIDOMHTMLObjectElement.idl | 2 +- .../html/nsIDOMHTMLOptGroupElement.idl | 2 +- .../html/nsIDOMHTMLOptionElement.idl | 2 +- .../html/nsIDOMHTMLOutputElement.idl | 2 +- .../html/nsIDOMHTMLParagraphElement.idl | 2 +- .../html/nsIDOMHTMLParamElement.idl | 2 +- dom/interfaces/html/nsIDOMHTMLPreElement.idl | 2 +- .../html/nsIDOMHTMLProgressElement.idl | 2 +- .../html/nsIDOMHTMLQuoteElement.idl | 2 +- .../html/nsIDOMHTMLScriptElement.idl | 2 +- .../html/nsIDOMHTMLSelectElement.idl | 2 +- .../html/nsIDOMHTMLSourceElement.idl | 2 +- .../html/nsIDOMHTMLStyleElement.idl | 2 +- .../html/nsIDOMHTMLTableCaptionElem.idl | 2 +- .../html/nsIDOMHTMLTableCellElement.idl | 2 +- .../html/nsIDOMHTMLTableColElement.idl | 2 +- .../html/nsIDOMHTMLTableElement.idl | 2 +- .../html/nsIDOMHTMLTableRowElement.idl | 2 +- .../html/nsIDOMHTMLTableSectionElem.idl | 2 +- .../html/nsIDOMHTMLTextAreaElement.idl | 2 +- .../html/nsIDOMHTMLTitleElement.idl | 2 +- .../html/nsIDOMHTMLUListElement.idl | 2 +- .../html/nsIDOMHTMLUnknownElement.idl | 2 +- .../html/nsIDOMHTMLVideoElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGAElement.idl | 2 +- .../svg/nsIDOMSVGAltGlyphElement.idl | 2 +- .../svg/nsIDOMSVGAnimateElement.idl | 2 +- .../svg/nsIDOMSVGAnimateMotionElement.idl | 2 +- .../svg/nsIDOMSVGAnimateTransformElement.idl | 2 +- .../svg/nsIDOMSVGAnimationElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGCircleElement.idl | 2 +- .../svg/nsIDOMSVGClipPathElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGDefsElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGDescElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGDocument.idl | 2 +- dom/interfaces/svg/nsIDOMSVGElement.idl | 2 +- .../svg/nsIDOMSVGEllipseElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGFilterElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGFilters.idl | 52 +++++++++---------- .../svg/nsIDOMSVGForeignObjectElem.idl | 2 +- dom/interfaces/svg/nsIDOMSVGGElement.idl | 2 +- .../svg/nsIDOMSVGGradientElement.idl | 6 +-- dom/interfaces/svg/nsIDOMSVGImageElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGLineElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGMarkerElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGMaskElement.idl | 2 +- .../svg/nsIDOMSVGMetadataElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGMpathElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGPathElement.idl | 2 +- .../svg/nsIDOMSVGPatternElement.idl | 2 +- .../svg/nsIDOMSVGPolygonElement.idl | 2 +- .../svg/nsIDOMSVGPolylineElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGRectElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGSVGElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGScriptElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGSetElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGStopElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGStyleElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGSwitchElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGSymbolElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGTSpanElement.idl | 2 +- .../svg/nsIDOMSVGTextContentElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGTextElement.idl | 2 +- .../svg/nsIDOMSVGTextPathElement.idl | 2 +- .../svg/nsIDOMSVGTextPositionElem.idl | 2 +- dom/interfaces/svg/nsIDOMSVGTitleElement.idl | 2 +- dom/interfaces/svg/nsIDOMSVGUseElement.idl | 2 +- dom/interfaces/xpath/nsIDOMXPathNamespace.idl | 2 +- dom/interfaces/xul/nsIDOMXULButtonElement.idl | 2 +- .../xul/nsIDOMXULCheckboxElement.idl | 2 +- .../xul/nsIDOMXULContainerElement.idl | 4 +- .../xul/nsIDOMXULControlElement.idl | 2 +- .../xul/nsIDOMXULDescriptionElement.idl | 2 +- dom/interfaces/xul/nsIDOMXULImageElement.idl | 2 +- dom/interfaces/xul/nsIDOMXULLabelElement.idl | 2 +- .../xul/nsIDOMXULLabeledControlEl.idl | 2 +- .../xul/nsIDOMXULMenuListElement.idl | 2 +- .../xul/nsIDOMXULMultSelectCntrlEl.idl | 2 +- dom/interfaces/xul/nsIDOMXULPopupElement.idl | 2 +- dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl | 2 +- .../xul/nsIDOMXULSelectCntrlItemEl.idl | 2 +- .../xul/nsIDOMXULTextboxElement.idl | 2 +- rdf/base/idl/xulstubs.idl | 4 +- 136 files changed, 165 insertions(+), 164 deletions(-) diff --git a/content/base/test/Makefile.in b/content/base/test/Makefile.in index 8059ac0b8ac..6aa5b7b22b1 100644 --- a/content/base/test/Makefile.in +++ b/content/base/test/Makefile.in @@ -509,6 +509,7 @@ _TEST_FILES2 = \ test_bug682592.html \ bug682592-subframe.html \ bug682592-subframe-ref.html \ + test_bug685798.html \ $(NULL) _CHROME_FILES = \ diff --git a/dom/interfaces/core/nsIDOMAttr.idl b/dom/interfaces/core/nsIDOMAttr.idl index a95f1a3a57e..c7fef2935a3 100644 --- a/dom/interfaces/core/nsIDOMAttr.idl +++ b/dom/interfaces/core/nsIDOMAttr.idl @@ -48,7 +48,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(6bdedbc5-681e-4570-a3dc-3685ed8d6e1e)] +[scriptable, uuid(03da4bc9-1b9a-41dc-a1a4-32414d48d704)] interface nsIDOMAttr : nsIDOMNode { readonly attribute DOMString name; diff --git a/dom/interfaces/core/nsIDOMCDATASection.idl b/dom/interfaces/core/nsIDOMCDATASection.idl index 028c4a022ed..fe239ffbe23 100644 --- a/dom/interfaces/core/nsIDOMCDATASection.idl +++ b/dom/interfaces/core/nsIDOMCDATASection.idl @@ -49,7 +49,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(f1eea89d-8af3-4c2a-90df-6c3a75cb5005)] +[scriptable, uuid(08a05c75-23de-4937-a45b-89bdcbe4f467)] interface nsIDOMCDATASection : nsIDOMText { }; diff --git a/dom/interfaces/core/nsIDOMCharacterData.idl b/dom/interfaces/core/nsIDOMCharacterData.idl index 1e0f253d6ed..3277bd4fbf2 100644 --- a/dom/interfaces/core/nsIDOMCharacterData.idl +++ b/dom/interfaces/core/nsIDOMCharacterData.idl @@ -47,7 +47,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(6ce64178-d600-4e5e-a33a-5bde69f05bd5)] +[scriptable, uuid(cb75c251-afc7-444f-b2d6-b9635555f3ed)] interface nsIDOMCharacterData : nsIDOMNode { attribute DOMString data; diff --git a/dom/interfaces/core/nsIDOMComment.idl b/dom/interfaces/core/nsIDOMComment.idl index b07dc510fd2..94ce667bba9 100644 --- a/dom/interfaces/core/nsIDOMComment.idl +++ b/dom/interfaces/core/nsIDOMComment.idl @@ -48,7 +48,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(eaf04950-d409-41a0-a99d-2e4e43c1e33d)] +[scriptable, uuid(cea49a35-dac9-4c4d-9830-4660abb3b6bc)] interface nsIDOMComment : nsIDOMCharacterData { }; diff --git a/dom/interfaces/core/nsIDOMDocument.idl b/dom/interfaces/core/nsIDOMDocument.idl index 6b32b29c534..20062205bf8 100644 --- a/dom/interfaces/core/nsIDOMDocument.idl +++ b/dom/interfaces/core/nsIDOMDocument.idl @@ -63,7 +63,7 @@ interface nsIDOMCaretPosition; * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html */ -[scriptable, uuid(903493d3-72b6-4416-b930-fbfc17ef1d87)] +[scriptable, uuid(48ef69c6-844f-41ba-af66-17b338177a8b)] interface nsIDOMDocument : nsIDOMNode { readonly attribute nsIDOMDocumentType doctype; diff --git a/dom/interfaces/core/nsIDOMDocumentFragment.idl b/dom/interfaces/core/nsIDOMDocumentFragment.idl index e97d4f3e137..bbf17475171 100644 --- a/dom/interfaces/core/nsIDOMDocumentFragment.idl +++ b/dom/interfaces/core/nsIDOMDocumentFragment.idl @@ -48,7 +48,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(06376ec5-7c91-45ad-a346-30a06a125935)] +[scriptable, uuid(4a15eb0c-d5bc-4902-9d50-21b12cab47e7)] interface nsIDOMDocumentFragment : nsIDOMNode { }; diff --git a/dom/interfaces/core/nsIDOMDocumentType.idl b/dom/interfaces/core/nsIDOMDocumentType.idl index 21dc761a363..cb1e1064ca9 100644 --- a/dom/interfaces/core/nsIDOMDocumentType.idl +++ b/dom/interfaces/core/nsIDOMDocumentType.idl @@ -49,7 +49,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(bfd028d4-fbbd-4d69-8899-dbee1778dde2)] +[scriptable, uuid(ac5fd4c5-6c5d-4dfc-878c-7d661aa676de)] interface nsIDOMDocumentType : nsIDOMNode { readonly attribute DOMString name; diff --git a/dom/interfaces/core/nsIDOMElement.idl b/dom/interfaces/core/nsIDOMElement.idl index 0e2148ae6f2..1325e95b495 100644 --- a/dom/interfaces/core/nsIDOMElement.idl +++ b/dom/interfaces/core/nsIDOMElement.idl @@ -47,7 +47,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(f220e259-5c41-4cca-a38b-7267ffa874aa)] +[scriptable, uuid(56aaaf03-f8f1-4c06-9cb5-f3e33a39e5c3)] interface nsIDOMElement : nsIDOMNode { readonly attribute DOMString tagName; diff --git a/dom/interfaces/core/nsIDOMNode.idl b/dom/interfaces/core/nsIDOMNode.idl index 89b5a5fdb9f..f60c40cc72b 100644 --- a/dom/interfaces/core/nsIDOMNode.idl +++ b/dom/interfaces/core/nsIDOMNode.idl @@ -52,7 +52,7 @@ interface nsIDOMUserDataHandler; * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html */ -[scriptable, uuid(45e7ac3c-27d9-49bc-b3a3-dfc573f6f649)] +[scriptable, uuid(c8ac3f81-63e1-4c31-8543-70a656642789)] interface nsIDOMNode : nsISupports { const unsigned short ELEMENT_NODE = 1; diff --git a/dom/interfaces/core/nsIDOMProcessingInstruction.idl b/dom/interfaces/core/nsIDOMProcessingInstruction.idl index 9d8a27d9879..28da98d53e4 100644 --- a/dom/interfaces/core/nsIDOMProcessingInstruction.idl +++ b/dom/interfaces/core/nsIDOMProcessingInstruction.idl @@ -48,7 +48,7 @@ * http://www.w3.org/TR/DOM-Level-2-Core/ */ -[scriptable, uuid(1c3118cc-4d21-40cc-96c4-9d46facee5d1)] +[scriptable, uuid(5964f639-1183-487d-a87d-4c93111eae85)] interface nsIDOMProcessingInstruction : nsIDOMNode { readonly attribute DOMString target; diff --git a/dom/interfaces/core/nsIDOMText.idl b/dom/interfaces/core/nsIDOMText.idl index 7b55e068d55..76a803ff0d6 100644 --- a/dom/interfaces/core/nsIDOMText.idl +++ b/dom/interfaces/core/nsIDOMText.idl @@ -47,7 +47,7 @@ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html */ -[scriptable, uuid(04a1ec2b-491f-4a80-8db4-694c37e31a6f)] +[scriptable, uuid(92b0df87-78a1-4e3b-a23c-d0c5bb2b83f9)] interface nsIDOMText : nsIDOMCharacterData { nsIDOMText splitText(in unsigned long offset) diff --git a/dom/interfaces/core/nsIDOMXMLDocument.idl b/dom/interfaces/core/nsIDOMXMLDocument.idl index 30483673b5f..8637d09e056 100644 --- a/dom/interfaces/core/nsIDOMXMLDocument.idl +++ b/dom/interfaces/core/nsIDOMXMLDocument.idl @@ -38,7 +38,7 @@ #include "nsIDOMDocument.idl" -[scriptable, uuid(f97b36ff-425f-4c87-b6dc-fcfcfb4d5c77)] +[scriptable, uuid(e788e37b-9a89-4b3e-9593-c598e50695eb)] interface nsIDOMXMLDocument : nsIDOMDocument { // DOM Level 3 Load & Save, DocumentLS diff --git a/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl b/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl index a002862d3ba..f1f9f8eb600 100644 --- a/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(768bfb39-f0ce-4f17-bad7-f0f722dc293a)] +[scriptable, uuid(dfcf9a0b-2bc4-465b-b007-9c0e26aabc17)] interface nsIDOMHTMLAnchorElement : nsIDOMHTMLElement { attribute DOMString href; diff --git a/dom/interfaces/html/nsIDOMHTMLAppletElement.idl b/dom/interfaces/html/nsIDOMHTMLAppletElement.idl index 2cc64403e5e..359529061e4 100644 --- a/dom/interfaces/html/nsIDOMHTMLAppletElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLAppletElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(1840a15d-618e-4e22-a53e-56a3624b8ae3)] +[scriptable, uuid(fe7107a3-d8ea-4ef5-a5b0-c358767ca243)] interface nsIDOMHTMLAppletElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLAreaElement.idl b/dom/interfaces/html/nsIDOMHTMLAreaElement.idl index 7f353c70d6d..0d177ae45cc 100644 --- a/dom/interfaces/html/nsIDOMHTMLAreaElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLAreaElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(eeae849e-d9f6-4e66-a838-44deb9594bc1)] +[scriptable, uuid(59e6d277-5468-4ff2-bc98-adecaf4e0aa8)] interface nsIDOMHTMLAreaElement : nsIDOMHTMLElement { attribute DOMString alt; diff --git a/dom/interfaces/html/nsIDOMHTMLAudioElement.idl b/dom/interfaces/html/nsIDOMHTMLAudioElement.idl index a0f44339e58..3d04a9e25ea 100644 --- a/dom/interfaces/html/nsIDOMHTMLAudioElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLAudioElement.idl @@ -52,7 +52,7 @@ * @status UNDER_DEVELOPMENT */ -[scriptable, uuid(f0d4977c-9632-4fab-bc9b-91c250a6ef96)] +[scriptable, uuid(4b832a46-8c9d-4dda-aaa3-8ebeece2b13a)] interface nsIDOMHTMLAudioElement : nsIDOMHTMLMediaElement { // Setup the audio stream for writing diff --git a/dom/interfaces/html/nsIDOMHTMLBRElement.idl b/dom/interfaces/html/nsIDOMHTMLBRElement.idl index e88623b56c6..43aa2cb7324 100644 --- a/dom/interfaces/html/nsIDOMHTMLBRElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLBRElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(e8252870-aa63-4eaf-9d59-5e5ea014fdf3)] +[scriptable, uuid(a348b00a-7e0e-4f61-97f8-9798d1c73971)] interface nsIDOMHTMLBRElement : nsIDOMHTMLElement { attribute DOMString clear; diff --git a/dom/interfaces/html/nsIDOMHTMLBaseElement.idl b/dom/interfaces/html/nsIDOMHTMLBaseElement.idl index 34997891275..ba335502d75 100644 --- a/dom/interfaces/html/nsIDOMHTMLBaseElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLBaseElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(84ee3ce6-ea9c-4443-93a2-359c259ef218)] +[scriptable, uuid(7549715a-0931-4fbd-a0b9-5a99f7a8d7f1)] interface nsIDOMHTMLBaseElement : nsIDOMHTMLElement { attribute DOMString href; diff --git a/dom/interfaces/html/nsIDOMHTMLBodyElement.idl b/dom/interfaces/html/nsIDOMHTMLBodyElement.idl index 8b5f234eef8..69f431d0bcb 100644 --- a/dom/interfaces/html/nsIDOMHTMLBodyElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLBodyElement.idl @@ -54,7 +54,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(9569e420-137a-4c7e-a880-288a81f78308)] +[scriptable, uuid(6954f803-fc81-4300-bcad-e0854ef9a142)] interface nsIDOMHTMLBodyElement : nsIDOMHTMLElement { attribute DOMString aLink; diff --git a/dom/interfaces/html/nsIDOMHTMLButtonElement.idl b/dom/interfaces/html/nsIDOMHTMLButtonElement.idl index b12b18eb352..446a442f77e 100644 --- a/dom/interfaces/html/nsIDOMHTMLButtonElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLButtonElement.idl @@ -52,7 +52,7 @@ interface nsIDOMValidityState; -[scriptable, uuid(7a40902e-d0ce-41f2-bc46-e247e9662ea8)] +[scriptable, uuid(a7740abf-dbef-4a5e-a8a8-be5809c5d851)] interface nsIDOMHTMLButtonElement : nsIDOMHTMLElement { attribute boolean autofocus; diff --git a/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl b/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl index 92058282255..0f521d033c8 100644 --- a/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl @@ -55,7 +55,7 @@ interface nsIDOMFile; interface nsIVariant; -[scriptable, uuid(010d8e6f-86ba-47ad-a04f-1a4d75f1caf8)] +[scriptable, uuid(b00ad90f-b83a-400d-87b8-704503a65061)] interface nsIDOMHTMLCanvasElement : nsIDOMHTMLElement { attribute unsigned long width; diff --git a/dom/interfaces/html/nsIDOMHTMLCommandElement.idl b/dom/interfaces/html/nsIDOMHTMLCommandElement.idl index 3b5ebbd5e01..faf0578140e 100644 --- a/dom/interfaces/html/nsIDOMHTMLCommandElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLCommandElement.idl @@ -46,7 +46,7 @@ * @status UNDER_DEVELOPMENT */ -[scriptable, uuid(df4a19b4-81f1-412e-a971-fcbe7312a9b6)] +[scriptable, uuid(c09f7b23-199c-4e5e-a8c1-48640725b8a2)] interface nsIDOMHTMLCommandElement : nsIDOMHTMLElement { attribute DOMString type; diff --git a/dom/interfaces/html/nsIDOMHTMLDListElement.idl b/dom/interfaces/html/nsIDOMHTMLDListElement.idl index bca93a895e6..92b3e96b1b4 100644 --- a/dom/interfaces/html/nsIDOMHTMLDListElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLDListElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(8c2e26d3-8ed4-4e13-abc8-46d7d2f7d300)] +[scriptable, uuid(fe0a4ba1-99d4-4a22-87ad-f9f5e5ebc0b4)] interface nsIDOMHTMLDListElement : nsIDOMHTMLElement { attribute boolean compact; diff --git a/dom/interfaces/html/nsIDOMHTMLDataListElement.idl b/dom/interfaces/html/nsIDOMHTMLDataListElement.idl index 82e634c5baa..a7d02303679 100644 --- a/dom/interfaces/html/nsIDOMHTMLDataListElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLDataListElement.idl @@ -49,7 +49,7 @@ interface nsIDOMHTMLCollection; -[scriptable, uuid(11dacc1f-4abc-44a5-9c57-c0c3e833e387)] +[scriptable, uuid(0ed2f7db-83ed-44a9-aeca-4995d0a39898)] interface nsIDOMHTMLDataListElement : nsIDOMHTMLElement { readonly attribute nsIDOMHTMLCollection options; diff --git a/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl b/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl index bf50289e543..94595e0ef3c 100644 --- a/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(3531a90c-cd39-4619-abad-71a961a58c54)] +[scriptable, uuid(a7ce62d2-7b08-4289-a044-2aa568f03c75)] interface nsIDOMHTMLDirectoryElement : nsIDOMHTMLElement { attribute boolean compact; diff --git a/dom/interfaces/html/nsIDOMHTMLDivElement.idl b/dom/interfaces/html/nsIDOMHTMLDivElement.idl index 214795b0f3d..e039585393a 100644 --- a/dom/interfaces/html/nsIDOMHTMLDivElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLDivElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(616223f7-014d-4805-b524-ad6cf8536ac0)] +[scriptable, uuid(2a2bbe83-9faf-460b-8fbe-e37630c6ca7f)] interface nsIDOMHTMLDivElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLDocument.idl b/dom/interfaces/html/nsIDOMHTMLDocument.idl index 07e8b010426..202b78d4830 100644 --- a/dom/interfaces/html/nsIDOMHTMLDocument.idl +++ b/dom/interfaces/html/nsIDOMHTMLDocument.idl @@ -47,7 +47,7 @@ */ interface nsISelection; -[scriptable, uuid(efe95e19-f5df-4349-89fb-804ba016f0a2)] +[scriptable, uuid(7587ce39-e939-4b86-838d-a1d04e4e04c0)] interface nsIDOMHTMLDocument : nsIDOMDocument { readonly attribute DOMString URL; diff --git a/dom/interfaces/html/nsIDOMHTMLElement.idl b/dom/interfaces/html/nsIDOMHTMLElement.idl index 4c590f51813..8d61a2b9c1b 100644 --- a/dom/interfaces/html/nsIDOMHTMLElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLElement.idl @@ -51,7 +51,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(c6e10ab6-ecf4-48e4-aeaa-37724307dfd5)] +[scriptable, uuid(6ecb115c-8a7b-495b-958e-2ef5d8a50244)] interface nsIDOMHTMLElement : nsIDOMElement { attribute DOMString id; diff --git a/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl b/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl index 872cfc4f9af..909de42ec58 100644 --- a/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl @@ -47,7 +47,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/#the-embed-element */ -[scriptable, uuid(dec16079-b0e7-46b9-aafa-c7f0ebc9abc1)] +[scriptable, uuid(b93fec38-9436-49c2-95ec-77cf1de8c38f)] interface nsIDOMHTMLEmbedElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl b/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl index edab4b7a471..9f92c8e84a7 100644 --- a/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl @@ -52,7 +52,7 @@ interface nsIDOMValidityState; -[scriptable, uuid(c989a733-40a6-4712-b0f0-944dd5ec4344)] +[scriptable, uuid(95fce971-83b5-4f03-9dfd-4ef07306fa2a)] interface nsIDOMHTMLFieldSetElement : nsIDOMHTMLElement { attribute boolean disabled; diff --git a/dom/interfaces/html/nsIDOMHTMLFontElement.idl b/dom/interfaces/html/nsIDOMHTMLFontElement.idl index b8a8b574950..f80ccf6df27 100644 --- a/dom/interfaces/html/nsIDOMHTMLFontElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLFontElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(99875201-4f50-4e8a-a58e-dd39b9ff51e1)] +[scriptable, uuid(e6b3c397-8227-4de2-bd7f-cd59aef8af9b)] interface nsIDOMHTMLFontElement : nsIDOMHTMLElement { attribute DOMString color; diff --git a/dom/interfaces/html/nsIDOMHTMLFormElement.idl b/dom/interfaces/html/nsIDOMHTMLFormElement.idl index ab7b78eefd6..3719078809a 100644 --- a/dom/interfaces/html/nsIDOMHTMLFormElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLFormElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(b7892cbf-a23b-460a-817a-798d490b12df)] +[scriptable, uuid(7b859d90-6b01-4208-8922-7999653c7491)] interface nsIDOMHTMLFormElement : nsIDOMHTMLElement { attribute DOMString acceptCharset; diff --git a/dom/interfaces/html/nsIDOMHTMLFrameElement.idl b/dom/interfaces/html/nsIDOMHTMLFrameElement.idl index 3fc3d6e5ca0..b6443fd254e 100644 --- a/dom/interfaces/html/nsIDOMHTMLFrameElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLFrameElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(e3f42587-847f-4743-8891-490b2066493d)] +[scriptable, uuid(c5e51cd2-f862-4440-90da-dee5bf84cc2e)] interface nsIDOMHTMLFrameElement : nsIDOMHTMLElement { attribute DOMString frameBorder; diff --git a/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl b/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl index a1af32dc3b1..0a81a58e3bf 100644 --- a/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl @@ -54,7 +54,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(d6872633-0f1c-4110-bf49-88713a3cad86)] +[scriptable, uuid(0d6d7deb-4e8b-40fc-acf0-5f0f862d20e6)] interface nsIDOMHTMLFrameSetElement : nsIDOMHTMLElement { attribute DOMString cols; diff --git a/dom/interfaces/html/nsIDOMHTMLHRElement.idl b/dom/interfaces/html/nsIDOMHTMLHRElement.idl index 1ca57c67b10..bde42d95f4b 100644 --- a/dom/interfaces/html/nsIDOMHTMLHRElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLHRElement.idl @@ -51,7 +51,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(32342e24-b209-4f50-8518-f7af339d4ae2)] +[scriptable, uuid(48d708c2-48ef-42c3-9101-8b2a68e42ace)] interface nsIDOMHTMLHRElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLHeadElement.idl b/dom/interfaces/html/nsIDOMHTMLHeadElement.idl index d3eb5c47c71..51d16df92a3 100644 --- a/dom/interfaces/html/nsIDOMHTMLHeadElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLHeadElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(1be0672a-edfd-49b8-81e3-e68641029133)] +[scriptable, uuid(5e62e47c-264e-47b4-aa8c-84a1d37238b9)] interface nsIDOMHTMLHeadElement : nsIDOMHTMLElement { }; diff --git a/dom/interfaces/html/nsIDOMHTMLHeadingElement.idl b/dom/interfaces/html/nsIDOMHTMLHeadingElement.idl index 94e58ca5109..62025442e7b 100644 --- a/dom/interfaces/html/nsIDOMHTMLHeadingElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLHeadingElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(0515a456-2545-4865-9a5b-f744a8e16101)] +[scriptable, uuid(c8fe0b12-e8c2-45ab-9831-fae7c54ba4cb)] interface nsIDOMHTMLHeadingElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl b/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl index 162330f2441..6466fd8d45a 100644 --- a/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(a8500f4c-3314-4049-bb79-f782663e7273)] +[scriptable, uuid(eaee35a4-12af-4db2-8177-131ee690baa0)] interface nsIDOMHTMLHtmlElement : nsIDOMHTMLElement { attribute DOMString version; diff --git a/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl b/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl index e355858d2c2..77b18c4922f 100644 --- a/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(31969911-36fb-42ee-9a00-018c3ff78cfb)] +[scriptable, uuid(1c4174d0-8e24-407a-b527-fb78c23c801f)] interface nsIDOMHTMLIFrameElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLImageElement.idl b/dom/interfaces/html/nsIDOMHTMLImageElement.idl index c03d0016961..92b3b3c808e 100644 --- a/dom/interfaces/html/nsIDOMHTMLImageElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLImageElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(ce760602-0528-493d-966d-65d4ee52347d)] +[scriptable, uuid(db167ea6-b7f6-4eb3-aa34-705f436f8525)] interface nsIDOMHTMLImageElement : nsIDOMHTMLElement { attribute DOMString alt; diff --git a/dom/interfaces/html/nsIDOMHTMLInputElement.idl b/dom/interfaces/html/nsIDOMHTMLInputElement.idl index a17f2258cdf..798fcc3fc92 100644 --- a/dom/interfaces/html/nsIDOMHTMLInputElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLInputElement.idl @@ -54,7 +54,7 @@ interface nsIDOMValidityState; * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(66819eba-89b5-4db4-8d27-6368c70761e8)] +[scriptable, uuid(90fa1822-deca-4732-bc50-0b5393ffd129)] interface nsIDOMHTMLInputElement : nsIDOMHTMLElement { attribute DOMString accept; diff --git a/dom/interfaces/html/nsIDOMHTMLLIElement.idl b/dom/interfaces/html/nsIDOMHTMLLIElement.idl index c7c26e2533c..ca30c6e750d 100644 --- a/dom/interfaces/html/nsIDOMHTMLLIElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLLIElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(9c31bd99-1412-49a2-954c-6c1be575decc)] +[scriptable, uuid(cfc33c89-1a7e-4798-a09a-73d28073c1f7)] interface nsIDOMHTMLLIElement : nsIDOMHTMLElement { attribute DOMString type; diff --git a/dom/interfaces/html/nsIDOMHTMLLabelElement.idl b/dom/interfaces/html/nsIDOMHTMLLabelElement.idl index 84387050b06..999131568e2 100644 --- a/dom/interfaces/html/nsIDOMHTMLLabelElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLLabelElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(0b4f3766-e6e8-4578-9d4e-f1fb4861c956)] +[scriptable, uuid(3581e396-92ba-4696-83b4-e633de8fec00)] interface nsIDOMHTMLLabelElement : nsIDOMHTMLElement { readonly attribute nsIDOMHTMLFormElement form; diff --git a/dom/interfaces/html/nsIDOMHTMLLegendElement.idl b/dom/interfaces/html/nsIDOMHTMLLegendElement.idl index 15580bfb3bf..34fe47a0266 100644 --- a/dom/interfaces/html/nsIDOMHTMLLegendElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLLegendElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(d84fcdd0-5962-42aa-ab83-dc92321553aa)] +[scriptable, uuid(e32bab6d-2640-47df-8053-803bb29c69ec)] interface nsIDOMHTMLLegendElement : nsIDOMHTMLElement { readonly attribute nsIDOMHTMLFormElement form; diff --git a/dom/interfaces/html/nsIDOMHTMLLinkElement.idl b/dom/interfaces/html/nsIDOMHTMLLinkElement.idl index 26923fc163b..cb28b5005ca 100644 --- a/dom/interfaces/html/nsIDOMHTMLLinkElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLLinkElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(b60dc7dd-30d1-40aa-a306-02a2ebb30f12)] +[scriptable, uuid(442dddcc-cdc3-4385-946d-9d6b8b4eb927)] interface nsIDOMHTMLLinkElement : nsIDOMHTMLElement { attribute boolean disabled; diff --git a/dom/interfaces/html/nsIDOMHTMLMapElement.idl b/dom/interfaces/html/nsIDOMHTMLMapElement.idl index 9536cfaffcf..18e00dec0c4 100644 --- a/dom/interfaces/html/nsIDOMHTMLMapElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLMapElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(1fe0dac9-564d-4f20-9933-e77bef7853cc)] +[scriptable, uuid(0ca121ce-2e78-4c13-8fd3-fea07a1a9225)] interface nsIDOMHTMLMapElement : nsIDOMHTMLElement { readonly attribute nsIDOMHTMLCollection areas; diff --git a/dom/interfaces/html/nsIDOMHTMLMediaElement.idl b/dom/interfaces/html/nsIDOMHTMLMediaElement.idl index 6cabee0c69e..ea8e4d4c505 100644 --- a/dom/interfaces/html/nsIDOMHTMLMediaElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLMediaElement.idl @@ -57,7 +57,7 @@ #endif %} -[scriptable, uuid(16b81ded-30cb-427d-831d-1635dc68d346)] +[scriptable, uuid(1b38c0a1-e532-41f1-9ec8-c76236d42cb7)] interface nsIDOMHTMLMediaElement : nsIDOMHTMLElement { // error state diff --git a/dom/interfaces/html/nsIDOMHTMLMenuElement.idl b/dom/interfaces/html/nsIDOMHTMLMenuElement.idl index 55e0c6f1424..9be02ef84b3 100644 --- a/dom/interfaces/html/nsIDOMHTMLMenuElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLMenuElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(43aa6818-f67f-420c-a400-59a2668e9fe5)] +[scriptable, uuid(a9dce2dd-e46a-4e34-ab54-84ed2b4ea338)] interface nsIDOMHTMLMenuElement : nsIDOMHTMLElement { attribute boolean compact; diff --git a/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl b/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl index 7152c412ec7..0e01ee965d2 100644 --- a/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl @@ -43,7 +43,7 @@ * @status UNDER_DEVELOPMENT */ -[scriptable, uuid(613f28ee-01f5-42dc-8224-161f85f0f20b)] +[scriptable, uuid(eb28f8a2-047c-4317-bb96-a8c3b8b2047f)] interface nsIDOMHTMLMenuItemElement : nsIDOMHTMLCommandElement { }; diff --git a/dom/interfaces/html/nsIDOMHTMLMetaElement.idl b/dom/interfaces/html/nsIDOMHTMLMetaElement.idl index d26be13219d..4845867f236 100644 --- a/dom/interfaces/html/nsIDOMHTMLMetaElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLMetaElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(43232acb-397c-46ce-8cd7-7fb2c286e851)] +[scriptable, uuid(9f576967-dfaf-4651-920c-3890bde7629a)] interface nsIDOMHTMLMetaElement : nsIDOMHTMLElement { attribute DOMString content; diff --git a/dom/interfaces/html/nsIDOMHTMLModElement.idl b/dom/interfaces/html/nsIDOMHTMLModElement.idl index 2dccacf6e64..201cf4deb4c 100644 --- a/dom/interfaces/html/nsIDOMHTMLModElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLModElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(9ee75a83-0acb-42e4-8fe7-dac88fcec547)] +[scriptable, uuid(19d1a727-9a87-4f3a-985b-15fc7eb99634)] interface nsIDOMHTMLModElement : nsIDOMHTMLElement { attribute DOMString cite; diff --git a/dom/interfaces/html/nsIDOMHTMLOListElement.idl b/dom/interfaces/html/nsIDOMHTMLOListElement.idl index e9635612a74..32e73e10d58 100644 --- a/dom/interfaces/html/nsIDOMHTMLOListElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLOListElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(e0bc10a7-46c7-4d6a-99a7-621827594efe)] +[scriptable, uuid(c162aed0-002d-438b-8fe4-c25043be33f3)] interface nsIDOMHTMLOListElement : nsIDOMHTMLElement { attribute boolean compact; diff --git a/dom/interfaces/html/nsIDOMHTMLObjectElement.idl b/dom/interfaces/html/nsIDOMHTMLObjectElement.idl index 7431d44f301..702b73daaa2 100644 --- a/dom/interfaces/html/nsIDOMHTMLObjectElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLObjectElement.idl @@ -52,7 +52,7 @@ interface nsIDOMValidityState; -[scriptable, uuid(700d3c7b-cbc2-4ab4-9aa3-fedd0b09fe89)] +[scriptable, uuid(f4778b38-f925-4c30-8c4d-9d73e28d74f0)] interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement { readonly attribute nsIDOMHTMLFormElement form; diff --git a/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl b/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl index c8f7fbd8ed6..4ab57ada432 100644 --- a/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(98694f29-5a2a-4da3-8a0f-3351bafe1fea)] +[scriptable, uuid(4cfc7664-e974-4f80-bb71-5a9878324ff3)] interface nsIDOMHTMLOptGroupElement : nsIDOMHTMLElement { attribute boolean disabled; diff --git a/dom/interfaces/html/nsIDOMHTMLOptionElement.idl b/dom/interfaces/html/nsIDOMHTMLOptionElement.idl index dac91801e60..f44643e7603 100644 --- a/dom/interfaces/html/nsIDOMHTMLOptionElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLOptionElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(f289fdb9-fe0f-41d3-bbdb-5c4e21f0a4d2)] +[scriptable, uuid(a36a1710-7684-4fb7-a401-ccbf442064c1)] interface nsIDOMHTMLOptionElement : nsIDOMHTMLElement { attribute boolean disabled; diff --git a/dom/interfaces/html/nsIDOMHTMLOutputElement.idl b/dom/interfaces/html/nsIDOMHTMLOutputElement.idl index 7ed1f427956..51131174547 100644 --- a/dom/interfaces/html/nsIDOMHTMLOutputElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLOutputElement.idl @@ -50,7 +50,7 @@ interface nsIDOMDOMSettableTokenList; interface nsIDOMValidityState; -[scriptable, uuid(546ce012-e7ce-4490-8530-75f2b1b135b6)] +[scriptable, uuid(a930fee7-dd3a-4d57-9ea7-79cfba343fde)] interface nsIDOMHTMLOutputElement : nsIDOMHTMLElement { readonly attribute nsIDOMDOMSettableTokenList htmlFor; diff --git a/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl b/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl index 14d1f3291f2..76a5a76de97 100644 --- a/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(7a324f4d-c264-4978-9d0c-5fdaac33a3ee)] +[scriptable, uuid(fcc41020-196a-49c4-a73b-b38cbe7c0a8b)] interface nsIDOMHTMLParagraphElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLParamElement.idl b/dom/interfaces/html/nsIDOMHTMLParamElement.idl index 13fa876af3c..e7c02b21239 100644 --- a/dom/interfaces/html/nsIDOMHTMLParamElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLParamElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(20ac93e9-4ac8-40b0-a1f3-38948f6ca6ab)] +[scriptable, uuid(e7e2ac93-7a44-4c9d-bf4a-4b7231b6e9a8)] interface nsIDOMHTMLParamElement : nsIDOMHTMLElement { attribute DOMString name; diff --git a/dom/interfaces/html/nsIDOMHTMLPreElement.idl b/dom/interfaces/html/nsIDOMHTMLPreElement.idl index feb9d29bd6c..848c39afbf6 100644 --- a/dom/interfaces/html/nsIDOMHTMLPreElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLPreElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(3459e9d4-40a0-4b55-a018-db287561feab)] +[scriptable, uuid(ae2ae9b9-86f1-4230-88dc-3317bcb8a375)] interface nsIDOMHTMLPreElement : nsIDOMHTMLElement { attribute long width; diff --git a/dom/interfaces/html/nsIDOMHTMLProgressElement.idl b/dom/interfaces/html/nsIDOMHTMLProgressElement.idl index dcf8cf5ced7..9b557daa739 100644 --- a/dom/interfaces/html/nsIDOMHTMLProgressElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLProgressElement.idl @@ -47,7 +47,7 @@ * @status UNDER_DEVELOPMENT */ -[scriptable, uuid(d14250f5-3176-4244-8085-1d0a532ce44c)] +[scriptable, uuid(80f0f2f7-d1f0-457f-b80f-f6d78c8efafc)] interface nsIDOMHTMLProgressElement : nsIDOMHTMLElement { attribute double value; diff --git a/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl b/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl index 755abb9b66a..50d5b6c718b 100644 --- a/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(c9c87e61-dc16-47b9-acdd-641dd220557b)] +[scriptable, uuid(6b53a7c3-8c6e-4a7d-80ac-5241ce8b62f6)] interface nsIDOMHTMLQuoteElement : nsIDOMHTMLElement { attribute DOMString cite; diff --git a/dom/interfaces/html/nsIDOMHTMLScriptElement.idl b/dom/interfaces/html/nsIDOMHTMLScriptElement.idl index b1b7dc21766..93b7603e93a 100644 --- a/dom/interfaces/html/nsIDOMHTMLScriptElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLScriptElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(c623ecc4-381b-4fa7-9016-a29f0a06230b)] +[scriptable, uuid(9956c866-08da-45f6-bf9e-6b5d09ce879d)] interface nsIDOMHTMLScriptElement : nsIDOMHTMLElement { attribute DOMString src; diff --git a/dom/interfaces/html/nsIDOMHTMLSelectElement.idl b/dom/interfaces/html/nsIDOMHTMLSelectElement.idl index 75db82ea0ab..47e57d3b5d2 100644 --- a/dom/interfaces/html/nsIDOMHTMLSelectElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLSelectElement.idl @@ -53,7 +53,7 @@ interface nsIDOMValidityState; -[scriptable, uuid(069bc0d8-d16d-406a-8555-2f84384c9b3b)] +[scriptable, uuid(f6e68b8c-58cf-49dd-8d70-de8768ac5bac)] interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement { attribute boolean autofocus; diff --git a/dom/interfaces/html/nsIDOMHTMLSourceElement.idl b/dom/interfaces/html/nsIDOMHTMLSourceElement.idl index 2cbc4cc962a..497412e263d 100644 --- a/dom/interfaces/html/nsIDOMHTMLSourceElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLSourceElement.idl @@ -48,7 +48,7 @@ * @status UNDER_DEVELOPMENT */ -[scriptable, uuid(ee69ccd4-5216-46cc-bfb4-b612d197ce29)] +[scriptable, uuid(d2c8c680-d3e7-4306-bced-4cddcbae4485)] interface nsIDOMHTMLSourceElement : nsIDOMHTMLElement { attribute DOMString src; diff --git a/dom/interfaces/html/nsIDOMHTMLStyleElement.idl b/dom/interfaces/html/nsIDOMHTMLStyleElement.idl index dde80866294..79c3fa07bea 100644 --- a/dom/interfaces/html/nsIDOMHTMLStyleElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLStyleElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(675aff34-07c5-491f-b92f-ccaf616ef8b3)] +[scriptable, uuid(f456b94c-d1e5-454e-99f1-30099d91c965)] interface nsIDOMHTMLStyleElement : nsIDOMHTMLElement { attribute boolean disabled; diff --git a/dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl b/dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl index c96189b26b2..ef9f4361a16 100644 --- a/dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl +++ b/dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(0e843cc7-ff12-49b5-8c8d-939dc5b66b6b)] +[scriptable, uuid(2e8ef4c4-b34b-48ad-937b-9c9a219fa19f)] interface nsIDOMHTMLTableCaptionElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl b/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl index bda89aa35dc..1ad2fb73c31 100644 --- a/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(042957a7-8680-4ed4-9a45-40108e73701b)] +[scriptable, uuid(a3a038e3-9c6e-4a27-bdec-8bfcb968fd94)] interface nsIDOMHTMLTableCellElement : nsIDOMHTMLElement { readonly attribute long cellIndex; diff --git a/dom/interfaces/html/nsIDOMHTMLTableColElement.idl b/dom/interfaces/html/nsIDOMHTMLTableColElement.idl index 1c31b721e3b..2eea8cdf2ea 100644 --- a/dom/interfaces/html/nsIDOMHTMLTableColElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLTableColElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(b0c8daa0-6b74-4436-b1ca-2de5d6d3fe33)] +[scriptable, uuid(1baa218e-f772-492c-a286-7c3680e221b3)] interface nsIDOMHTMLTableColElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLTableElement.idl b/dom/interfaces/html/nsIDOMHTMLTableElement.idl index 24f191663c1..5bdb0362a4e 100644 --- a/dom/interfaces/html/nsIDOMHTMLTableElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLTableElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(1927df94-db16-4e28-a491-4279eccc539d)] +[scriptable, uuid(b5211d09-aeec-4dca-a676-c7d4376ab115)] interface nsIDOMHTMLTableElement : nsIDOMHTMLElement { // Modified in DOM Level 2: diff --git a/dom/interfaces/html/nsIDOMHTMLTableRowElement.idl b/dom/interfaces/html/nsIDOMHTMLTableRowElement.idl index e2ae3832d70..4be59868ff9 100644 --- a/dom/interfaces/html/nsIDOMHTMLTableRowElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLTableRowElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(0f614ba0-5ee1-494b-ade8-14c29f416798)] +[scriptable, uuid(637b44fe-229c-4a72-a9e9-ccdb265821ed)] interface nsIDOMHTMLTableRowElement : nsIDOMHTMLElement { // Modified in DOM Level 2: diff --git a/dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl b/dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl index fe56be6990e..0dceec8918f 100644 --- a/dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl +++ b/dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(76400ad3-725a-45c1-bb98-5a6cdb91af11)] +[scriptable, uuid(698f916c-329e-4aa4-8007-0e1ea708fd8d)] interface nsIDOMHTMLTableSectionElement : nsIDOMHTMLElement { attribute DOMString align; diff --git a/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl b/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl index 412307aa1fc..dddfacc8a90 100644 --- a/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl @@ -53,7 +53,7 @@ interface nsIDOMValidityState; * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(43e99aee-e41f-4935-a87d-f2dbafdbfddb)] +[scriptable, uuid(3fa5ddd0-060e-4de7-835d-0c02cb3f6e79)] interface nsIDOMHTMLTextAreaElement : nsIDOMHTMLElement { attribute boolean autofocus; diff --git a/dom/interfaces/html/nsIDOMHTMLTitleElement.idl b/dom/interfaces/html/nsIDOMHTMLTitleElement.idl index 334211fd362..645938e18b0 100644 --- a/dom/interfaces/html/nsIDOMHTMLTitleElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLTitleElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(487748c0-31c0-4985-93c6-588b64f8ed2d)] +[scriptable, uuid(77e6df52-a4b5-4113-b293-fbceb1be718d)] interface nsIDOMHTMLTitleElement : nsIDOMHTMLElement { attribute DOMString text; diff --git a/dom/interfaces/html/nsIDOMHTMLUListElement.idl b/dom/interfaces/html/nsIDOMHTMLUListElement.idl index 991ba71bde5..bbc8b0ee41e 100644 --- a/dom/interfaces/html/nsIDOMHTMLUListElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLUListElement.idl @@ -50,7 +50,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(49610fd6-bf9e-4a13-beb3-09ac74540077)] +[scriptable, uuid(8a64c035-b4aa-4b6c-b907-eba752e754e3)] interface nsIDOMHTMLUListElement : nsIDOMHTMLElement { attribute boolean compact; diff --git a/dom/interfaces/html/nsIDOMHTMLUnknownElement.idl b/dom/interfaces/html/nsIDOMHTMLUnknownElement.idl index 0cce80d395b..ee6a392cc44 100644 --- a/dom/interfaces/html/nsIDOMHTMLUnknownElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLUnknownElement.idl @@ -43,7 +43,7 @@ * * @see */ -[scriptable, uuid(9d094117-9937-4ae4-a325-1761d7a9f3bc)] +[scriptable, uuid(45dfc97e-4ade-41be-b83e-5074003c042c)] interface nsIDOMHTMLUnknownElement : nsIDOMHTMLElement { }; diff --git a/dom/interfaces/html/nsIDOMHTMLVideoElement.idl b/dom/interfaces/html/nsIDOMHTMLVideoElement.idl index ac0f5d07e79..0fe32753565 100644 --- a/dom/interfaces/html/nsIDOMHTMLVideoElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLVideoElement.idl @@ -48,7 +48,7 @@ * @status UNDER_DEVELOPMENT */ -[scriptable, uuid(00c757ec-db7b-477e-95cd-b2a03b0f8634)] +[scriptable, uuid(bebdbca4-05be-480a-bfb9-949fc7ff793f)] interface nsIDOMHTMLVideoElement : nsIDOMHTMLMediaElement { attribute long width; diff --git a/dom/interfaces/svg/nsIDOMSVGAElement.idl b/dom/interfaces/svg/nsIDOMSVGAElement.idl index 8a7e9c5dab7..9aabf729431 100644 --- a/dom/interfaces/svg/nsIDOMSVGAElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGAElement.idl @@ -44,7 +44,7 @@ interface nsIDOMSVGAnimatedString; -[scriptable, uuid(4b1c2d6b-71c2-4dd0-96fc-84c1872786ce)] +[scriptable, uuid(139491ec-3bc2-490e-bce6-ec1b1b5aeaf9)] interface nsIDOMSVGAElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl b/dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl index 50d0446fabd..05e430e71a8 100644 --- a/dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl @@ -35,7 +35,7 @@ #include "nsIDOMSVGTextPositionElem.idl" -[scriptable, uuid(f624c6ea-ced6-404a-b8a0-5f67a4d86bce)] +[scriptable, uuid(9cfd33f4-0720-4e9f-977e-7a1fe72d23c9)] interface nsIDOMSVGAltGlyphElement : nsIDOMSVGTextPositioningElement /* The SVG DOM makes use of multiple interface inheritance. diff --git a/dom/interfaces/svg/nsIDOMSVGAnimateElement.idl b/dom/interfaces/svg/nsIDOMSVGAnimateElement.idl index b2748fb3f9b..5dba07ad7e5 100644 --- a/dom/interfaces/svg/nsIDOMSVGAnimateElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGAnimateElement.idl @@ -37,5 +37,5 @@ #include "nsIDOMSVGAnimationElement.idl" -[scriptable, uuid(0c4297e8-68d0-471d-a933-64132ccc5b97)] +[scriptable, uuid(fb2484e8-3d50-471b-87dd-3aa70a436b71)] interface nsIDOMSVGAnimateElement : nsIDOMSVGAnimationElement {}; diff --git a/dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl b/dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl index 0dafb46a6bc..34e9b957522 100644 --- a/dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl @@ -37,5 +37,5 @@ #include "nsIDOMSVGAnimationElement.idl" -[scriptable, uuid(8ac8b152-a44f-4456-bda5-b004f8148a93)] +[scriptable, uuid(2216f319-1bea-489c-b025-2e1f5217f0cd)] interface nsIDOMSVGAnimateMotionElement : nsIDOMSVGAnimationElement { }; diff --git a/dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl b/dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl index 319b6b51495..f2db95948e4 100644 --- a/dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl @@ -37,5 +37,5 @@ #include "nsIDOMSVGAnimationElement.idl" -[scriptable, uuid(735e0f75-c6aa-4aee-bcd2-46426d6ac90c)] +[scriptable, uuid(381c61a0-3af4-46be-99c4-db5253efccd9)] interface nsIDOMSVGAnimateTransformElement : nsIDOMSVGAnimationElement {}; diff --git a/dom/interfaces/svg/nsIDOMSVGAnimationElement.idl b/dom/interfaces/svg/nsIDOMSVGAnimationElement.idl index e35d3d75e0f..c41aeee88dd 100644 --- a/dom/interfaces/svg/nsIDOMSVGAnimationElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGAnimationElement.idl @@ -37,7 +37,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(4e04c285-80c2-42a2-979f-3786ba42acf5)] +[scriptable, uuid(ed76a4bc-7817-4724-b89c-1a06ca36dc08)] interface nsIDOMSVGAnimationElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGCircleElement.idl b/dom/interfaces/svg/nsIDOMSVGCircleElement.idl index 1b6ba6fed6b..ce5cefd09fa 100644 --- a/dom/interfaces/svg/nsIDOMSVGCircleElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGCircleElement.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(db2ba352-d0b2-49fd-859e-64624ad557bc)] +[scriptable, uuid(eea07241-beed-442e-ba0d-9a8f534a70e8)] interface nsIDOMSVGCircleElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGClipPathElement.idl b/dom/interfaces/svg/nsIDOMSVGClipPathElement.idl index 1be13735326..3d1ff0f5824 100644 --- a/dom/interfaces/svg/nsIDOMSVGClipPathElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGClipPathElement.idl @@ -47,7 +47,7 @@ interface nsIDOMSVGAnimatedEnumeration; -[scriptable, uuid(3dd19de9-deee-4105-9c5c-c51c68b31326)] +[scriptable, uuid(91147786-14f3-4567-b926-7e69e0228c03)] interface nsIDOMSVGClipPathElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGDefsElement.idl b/dom/interfaces/svg/nsIDOMSVGDefsElement.idl index 1934be2257f..8bba7ec3476 100644 --- a/dom/interfaces/svg/nsIDOMSVGDefsElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGDefsElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(649d4045-57d0-4937-a19b-e9d52e306a2b)] +[scriptable, uuid(26d55016-c8a7-428b-ad39-61d1597b5df7)] interface nsIDOMSVGDefsElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGDescElement.idl b/dom/interfaces/svg/nsIDOMSVGDescElement.idl index e7748520689..2402c20126c 100644 --- a/dom/interfaces/svg/nsIDOMSVGDescElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGDescElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(6c867f82-13b5-4237-a653-d4a21d5d3d0b)] +[scriptable, uuid(ade2ccfe-2858-46ed-b8a4-bc302d226c5c)] interface nsIDOMSVGDescElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGDocument.idl b/dom/interfaces/svg/nsIDOMSVGDocument.idl index fafc04bf2de..c5f001bfba7 100644 --- a/dom/interfaces/svg/nsIDOMSVGDocument.idl +++ b/dom/interfaces/svg/nsIDOMSVGDocument.idl @@ -39,7 +39,7 @@ interface nsIDOMSVGSVGElement; -[scriptable, uuid(880e6976-844c-4614-99db-a580790231eb)] +[scriptable, uuid(4ac55dee-ce7f-465d-a27c-ecc293ae35db)] interface nsIDOMSVGDocument : nsIDOMDocument { readonly attribute DOMString domain; diff --git a/dom/interfaces/svg/nsIDOMSVGElement.idl b/dom/interfaces/svg/nsIDOMSVGElement.idl index 7b77ebfe05d..073ac95c8e3 100644 --- a/dom/interfaces/svg/nsIDOMSVGElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGElement.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGSVGElement; -[scriptable, uuid(c358d048-be72-4d39-93dc-0e85b8c9f07b)] +[scriptable, uuid(aee43575-391a-4b3f-81ce-7283d228a6c3)] interface nsIDOMSVGElement : nsIDOMElement { attribute DOMString id; diff --git a/dom/interfaces/svg/nsIDOMSVGEllipseElement.idl b/dom/interfaces/svg/nsIDOMSVGEllipseElement.idl index 2c557eecebe..49356b7480d 100644 --- a/dom/interfaces/svg/nsIDOMSVGEllipseElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGEllipseElement.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(2e1af4ae-5d46-4b0c-8d69-624eca05c831)] +[scriptable, uuid(ffe5fe9f-0dbd-457a-898a-bc0b0d0de923)] interface nsIDOMSVGEllipseElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGFilterElement.idl b/dom/interfaces/svg/nsIDOMSVGFilterElement.idl index 8939941e64e..085293e5bbf 100644 --- a/dom/interfaces/svg/nsIDOMSVGFilterElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGFilterElement.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGAnimatedLength; interface nsIDOMSVGAnimatedEnumeration; interface nsIDOMSVGAnimatedInteger; -[scriptable, uuid(56606fdd-9b9e-4b91-a34a-9504af3139dd)] +[scriptable, uuid(65f0b91a-13c3-44a8-aa97-6d80c788c5af)] interface nsIDOMSVGFilterElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGFilters.idl b/dom/interfaces/svg/nsIDOMSVGFilters.idl index d5089ffe053..e74f5a3e081 100644 --- a/dom/interfaces/svg/nsIDOMSVGFilters.idl +++ b/dom/interfaces/svg/nsIDOMSVGFilters.idl @@ -45,7 +45,7 @@ interface nsIDOMSVGAnimatedNumberList; interface nsIDOMSVGAnimatedInteger; interface nsIDOMSVGAnimatedBoolean; -[scriptable, uuid(8ec9c323-10dd-45ef-a301-4ecb9ec414dd)] +[scriptable, uuid(e5ed442b-a208-41cd-8494-9670d9a19023)] interface nsIDOMSVGFilterPrimitiveStandardAttributes : nsIDOMSVGElement { readonly attribute nsIDOMSVGAnimatedLength x; @@ -55,7 +55,7 @@ interface nsIDOMSVGFilterPrimitiveStandardAttributes : nsIDOMSVGElement readonly attribute nsIDOMSVGAnimatedString result; }; -[scriptable, uuid(1644ea2b-8fdb-492d-a858-850b7bb570ed)] +[scriptable, uuid(e3538ea5-625d-485e-a902-ea6b60d47047)] interface nsIDOMSVGFEBlendElement : nsIDOMSVGFilterPrimitiveStandardAttributes { const unsigned short SVG_MODE_UNKNOWN = 0; @@ -70,7 +70,7 @@ interface nsIDOMSVGFEBlendElement : nsIDOMSVGFilterPrimitiveStandardAttributes readonly attribute nsIDOMSVGAnimatedEnumeration mode; }; -[scriptable, uuid(94d552df-87ea-4eaf-8618-5de29a7a9dbe)] +[scriptable, uuid(67415934-e859-4408-aec7-e3bccf3a85c5)] interface nsIDOMSVGFEColorMatrixElement : nsIDOMSVGFilterPrimitiveStandardAttributes { // Color Matrix Types @@ -85,13 +85,13 @@ interface nsIDOMSVGFEColorMatrixElement : nsIDOMSVGFilterPrimitiveStandardAttrib readonly attribute nsIDOMSVGAnimatedNumberList values; }; -[scriptable, uuid(2871a5c9-d4e5-420c-910c-c98fc2e8cad1)] +[scriptable, uuid(75159f44-2f78-4d4d-8136-a6c23070f187)] interface nsIDOMSVGFEComponentTransferElement : nsIDOMSVGFilterPrimitiveStandardAttributes { readonly attribute nsIDOMSVGAnimatedString in1; }; -[scriptable, uuid(1620e78a-cb9d-44ad-99f3-732168a403e6)] +[scriptable, uuid(819d470b-9d0d-40c6-8379-acaa026bdbac)] interface nsIDOMSVGComponentTransferFunctionElement : nsIDOMSVGElement { // Component Transfer Types @@ -111,7 +111,7 @@ interface nsIDOMSVGComponentTransferFunctionElement : nsIDOMSVGElement readonly attribute nsIDOMSVGAnimatedNumber offset; }; -[scriptable, uuid(12c63fba-b0f9-41ee-ad57-573650ebde89)] +[scriptable, uuid(5566215e-fbbd-4a65-975b-32f900ff593e)] interface nsIDOMSVGFECompositeElement : nsIDOMSVGFilterPrimitiveStandardAttributes { // Operator Types @@ -135,27 +135,27 @@ interface nsIDOMSVGFECompositeElement : nsIDOMSVGFilterPrimitiveStandardAttribut }; -[scriptable, uuid(f13456d1-04b9-45cb-9fbf-fc733d6a0279)] +[scriptable, uuid(652da357-e3e3-4398-bc08-8dedd24fafba)] interface nsIDOMSVGFEFuncRElement : nsIDOMSVGComponentTransferFunctionElement { }; -[scriptable, uuid(05709de9-e3a9-43c1-a820-585c3f4694be)] +[scriptable, uuid(d525c67b-0b22-4037-936c-477d0cba2279)] interface nsIDOMSVGFEFuncGElement : nsIDOMSVGComponentTransferFunctionElement { }; -[scriptable, uuid(7ed53e92-f831-4e5c-bdd4-ab769e27587e)] +[scriptable, uuid(157a90f8-018e-4f6c-afed-4083f1062643)] interface nsIDOMSVGFEFuncBElement : nsIDOMSVGComponentTransferFunctionElement { }; -[scriptable, uuid(30893867-f167-4238-bec2-fb0a65cdf779)] +[scriptable, uuid(8b3f860a-3cdc-4495-87fe-99adb5845a91)] interface nsIDOMSVGFEFuncAElement : nsIDOMSVGComponentTransferFunctionElement { }; -[scriptable, uuid(66a74ea4-5504-4a8b-9c3a-b0438615f15e)] +[scriptable, uuid(c0dba6ef-014a-4b90-9f57-f6b52a624738)] interface nsIDOMSVGFEGaussianBlurElement : nsIDOMSVGFilterPrimitiveStandardAttributes { readonly attribute nsIDOMSVGAnimatedString in1; @@ -165,35 +165,35 @@ interface nsIDOMSVGFEGaussianBlurElement : nsIDOMSVGFilterPrimitiveStandardAttri void setStdDeviation ( in float stdDeviationX, in float stdDeviationY ); }; -[scriptable, uuid(9932eb32-dee0-4848-b0a5-a6c0dfd21182)] +[scriptable, uuid(147077be-9b75-487f-9c6a-b941d797dc6d)] interface nsIDOMSVGFEMergeElement : nsIDOMSVGFilterPrimitiveStandardAttributes { }; -[scriptable, uuid(695a89c2-8eab-4ddd-94e7-509bf2a4f6e8)] +[scriptable, uuid(ca45efa5-f3d5-4160-ae5e-8c6a6c80b308)] interface nsIDOMSVGFEMergeNodeElement : nsIDOMSVGElement { readonly attribute nsIDOMSVGAnimatedString in1; }; -[scriptable, uuid(15acdbf5-6203-4167-b7c1-c746f5dd2478)] +[scriptable, uuid(5ce4bdf0-6ef5-41b8-8be6-d936c88dfbb5)] interface nsIDOMSVGFEOffsetElement : nsIDOMSVGFilterPrimitiveStandardAttributes { readonly attribute nsIDOMSVGAnimatedString in1; readonly attribute nsIDOMSVGAnimatedNumber dx; readonly attribute nsIDOMSVGAnimatedNumber dy; }; -[scriptable, uuid(cf267d0d-813a-4c67-be8e-e65937afba21)] +[scriptable, uuid(74c74158-4feb-4a8a-8c6e-f986dd46ae97)] interface nsIDOMSVGFEFloodElement : nsIDOMSVGFilterPrimitiveStandardAttributes { }; -[scriptable, uuid(380da0f2-f2f5-457e-a79d-7fab3da1eefb)] +[scriptable, uuid(40b9b789-b852-4297-8fc7-f9e9f1be1cbc)] interface nsIDOMSVGFETileElement : nsIDOMSVGFilterPrimitiveStandardAttributes { readonly attribute nsIDOMSVGAnimatedString in1; }; -[scriptable, uuid(20d41b65-e433-4742-b9e1-08238b139285)] +[scriptable, uuid(6afc9962-fcba-4300-9dde-89faad74f2e9)] interface nsIDOMSVGFETurbulenceElement : nsIDOMSVGFilterPrimitiveStandardAttributes { // Turbulence Types @@ -213,7 +213,7 @@ interface nsIDOMSVGFETurbulenceElement : nsIDOMSVGFilterPrimitiveStandardAttribu readonly attribute nsIDOMSVGAnimatedEnumeration type; }; -[scriptable, uuid(83508db0-be38-4929-8e91-7cfddb921f4a)] +[scriptable, uuid(1aa777de-4dbb-4cf7-820e-46b2bbadeaa2)] interface nsIDOMSVGFEMorphologyElement : nsIDOMSVGFilterPrimitiveStandardAttributes { // Operator Types @@ -229,7 +229,7 @@ interface nsIDOMSVGFEMorphologyElement : nsIDOMSVGFilterPrimitiveStandardAttribu void setRadius ( in float rx, in float ry ); }; -[scriptable, uuid(5232e1f6-6845-4c29-9677-93852228ab2f)] +[scriptable, uuid(db6b7ac9-1511-452c-8575-8d87b995c97f)] interface nsIDOMSVGFEConvolveMatrixElement : nsIDOMSVGFilterPrimitiveStandardAttributes { // Edge Mode Values @@ -252,7 +252,7 @@ interface nsIDOMSVGFEConvolveMatrixElement : nsIDOMSVGFilterPrimitiveStandardAtt readonly attribute nsIDOMSVGAnimatedBoolean preserveAlpha; }; -[scriptable, uuid(3834f5f7-bb9b-4ba4-9de5-6b12bca6fb46)] +[scriptable, uuid(ab84cbd9-bb0f-447b-a3a5-0a149bed151d)] interface nsIDOMSVGFEDiffuseLightingElement : nsIDOMSVGFilterPrimitiveStandardAttributes { readonly attribute nsIDOMSVGAnimatedString in1; @@ -262,7 +262,7 @@ interface nsIDOMSVGFEDiffuseLightingElement : nsIDOMSVGFilterPrimitiveStandardA readonly attribute nsIDOMSVGAnimatedNumber kernelUnitLengthY; }; -[scriptable, uuid(3e60f5df-f77a-4fe2-bcad-881865cfc21f)] +[scriptable, uuid(088715b7-7592-47d1-a838-d4b98d349554)] interface nsIDOMSVGFESpecularLightingElement : nsIDOMSVGFilterPrimitiveStandardAttributes { readonly attribute nsIDOMSVGAnimatedString in1; @@ -273,20 +273,20 @@ interface nsIDOMSVGFESpecularLightingElement : nsIDOMSVGFilterPrimitiveStandardA readonly attribute nsIDOMSVGAnimatedNumber kernelUnitLengthY; }; -[scriptable, uuid(02141672-7f2c-412a-a7d7-4caa194842e9)] +[scriptable, uuid(2a3d954d-bc5a-4732-8f72-5030dae9de48)] interface nsIDOMSVGFEDistantLightElement : nsIDOMSVGElement { readonly attribute nsIDOMSVGAnimatedNumber azimuth; readonly attribute nsIDOMSVGAnimatedNumber elevation; }; -[scriptable, uuid(557f128a-026b-4fa8-a44c-605df7bfd62e)] +[scriptable, uuid(b225e777-d585-4a15-a40d-856d9d3afcfd)] interface nsIDOMSVGFEPointLightElement : nsIDOMSVGElement { readonly attribute nsIDOMSVGAnimatedNumber x; readonly attribute nsIDOMSVGAnimatedNumber y; readonly attribute nsIDOMSVGAnimatedNumber z; }; -[scriptable, uuid(5515dd05-3d9d-4d6c-8460-a04aaf5afe15)] +[scriptable, uuid(d7a342bf-ad29-46d0-bc50-43d4ee1202a9)] interface nsIDOMSVGFESpotLightElement : nsIDOMSVGElement { readonly attribute nsIDOMSVGAnimatedNumber x; readonly attribute nsIDOMSVGAnimatedNumber y; @@ -298,7 +298,7 @@ interface nsIDOMSVGFESpotLightElement : nsIDOMSVGElement { readonly attribute nsIDOMSVGAnimatedNumber limitingConeAngle; }; -[scriptable, uuid(d36089cf-ade0-48e8-9540-40ee35838f88)] +[scriptable, uuid(4ffbfc41-92e8-467e-b63e-8a998f31a5e6)] interface nsIDOMSVGFEImageElement : nsIDOMSVGFilterPrimitiveStandardAttributes /* nsIDOMSVGURIReference, @@ -308,7 +308,7 @@ interface nsIDOMSVGFEImageElement : nsIDOMSVGFilterPrimitiveStandardAttributes { }; -[scriptable, uuid(821533e9-9da9-4ea4-8d53-5fb9170fa952)] +[scriptable, uuid(bdda2dda-14d1-4c97-a1d6-95558d50d902)] interface nsIDOMSVGFEDisplacementMapElement : nsIDOMSVGFilterPrimitiveStandardAttributes { // Channel Selectors diff --git a/dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl b/dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl index f6b415df8f9..3863c6244d1 100644 --- a/dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl +++ b/dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(a093460b-e3d0-4914-aa60-a4b31aa53276)] +[scriptable, uuid(e8560e00-3833-4afd-aee9-13dae48ccb25)] interface nsIDOMSVGForeignObjectElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGGElement.idl b/dom/interfaces/svg/nsIDOMSVGGElement.idl index 831d957a9b1..16797e3c300 100644 --- a/dom/interfaces/svg/nsIDOMSVGGElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGGElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(86317234-cf55-4ff0-8fed-de48557ae82e)] +[scriptable, uuid(3bc7b279-d21a-4d04-acb0-d68331924a8c)] interface nsIDOMSVGGElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGGradientElement.idl b/dom/interfaces/svg/nsIDOMSVGGradientElement.idl index bf584cb10ca..f555bddada0 100644 --- a/dom/interfaces/svg/nsIDOMSVGGradientElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGGradientElement.idl @@ -50,7 +50,7 @@ interface nsIDOMSVGAnimatedEnumeration; interface nsIDOMSVGAnimatedTransformList; -[scriptable, uuid(8114186f-29ef-4642-b4e2-762f331661e5)] +[scriptable, uuid(5b227fb5-1f03-4490-bafe-a3c3037e3165)] interface nsIDOMSVGGradientElement : nsIDOMSVGElement /* @@ -88,7 +88,7 @@ interface nsIDOMSVGGradientElement // Linear gradient interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(44e59baf-4ca5-48af-9749-69b30be11917)] +[scriptable, uuid(d6a1bf9f-80e8-4110-9dcd-50ecf0c3f120)] interface nsIDOMSVGLinearGradientElement : nsIDOMSVGGradientElement { @@ -110,7 +110,7 @@ interface nsIDOMSVGLinearGradientElement // Radial gradient interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(67d79c33-76b6-421a-a7ff-bb6793a4fd46)] +[scriptable, uuid(e2bedf79-8eed-4884-9c16-c0efe03dc087)] interface nsIDOMSVGRadialGradientElement : nsIDOMSVGGradientElement { diff --git a/dom/interfaces/svg/nsIDOMSVGImageElement.idl b/dom/interfaces/svg/nsIDOMSVGImageElement.idl index 12293bf8b27..dcddb6ea47a 100644 --- a/dom/interfaces/svg/nsIDOMSVGImageElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGImageElement.idl @@ -41,7 +41,7 @@ interface nsIDOMSVGAnimatedLength; interface nsIDOMSVGAnimatedPreserveAspectRatio; -[scriptable, uuid(aaf4a4a5-7016-47ca-b61d-47ec9152fc14)] +[scriptable, uuid(5898ffca-d692-46ca-ae23-3c8bd2c86f89)] interface nsIDOMSVGImageElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGLineElement.idl b/dom/interfaces/svg/nsIDOMSVGLineElement.idl index acc1727b45b..6993121c649 100644 --- a/dom/interfaces/svg/nsIDOMSVGLineElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGLineElement.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(edee1921-78ca-49b7-94f8-261942bf320d)] +[scriptable, uuid(c0642946-2144-4d4d-a0ff-07fffb4e69be)] interface nsIDOMSVGLineElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGMarkerElement.idl b/dom/interfaces/svg/nsIDOMSVGMarkerElement.idl index 1fbbf3bc8fc..637cad64a93 100644 --- a/dom/interfaces/svg/nsIDOMSVGMarkerElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGMarkerElement.idl @@ -51,7 +51,7 @@ interface nsIDOMSVGMatrix; * */ -[scriptable, uuid(12e79be1-eac1-49b8-b644-d617445ae2b1)] +[scriptable, uuid(7e1bea71-de48-4cba-850f-9bfb13d9a5ed)] interface nsIDOMSVGMarkerElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGMaskElement.idl b/dom/interfaces/svg/nsIDOMSVGMaskElement.idl index cce1a452047..80ffac508aa 100644 --- a/dom/interfaces/svg/nsIDOMSVGMaskElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGMaskElement.idl @@ -39,7 +39,7 @@ interface nsIDOMSVGAnimatedLength; interface nsIDOMSVGAnimatedEnumeration; -[scriptable, uuid(9ec463fe-84d5-404b-9078-2e693e183b48)] +[scriptable, uuid(00e0d565-8af2-4e68-a582-e71b5143b96f)] interface nsIDOMSVGMaskElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGMetadataElement.idl b/dom/interfaces/svg/nsIDOMSVGMetadataElement.idl index 91edbe9e582..87c88334b9a 100644 --- a/dom/interfaces/svg/nsIDOMSVGMetadataElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGMetadataElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(a772c8e6-2755-4864-b249-b4a03c7554b4)] +[scriptable, uuid(f7db9b55-68f6-44c6-89f0-d1190117bf56)] interface nsIDOMSVGMetadataElement : nsIDOMSVGElement { diff --git a/dom/interfaces/svg/nsIDOMSVGMpathElement.idl b/dom/interfaces/svg/nsIDOMSVGMpathElement.idl index 16b5cce6306..96bf50ea0e7 100644 --- a/dom/interfaces/svg/nsIDOMSVGMpathElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGMpathElement.idl @@ -43,7 +43,7 @@ * http://www.w3.org/TR/SVG/animate.html#mpathElement */ -[scriptable, uuid(39b7550c-26f7-475b-9ac5-a013935d0e60)] +[scriptable, uuid(4e082ca3-3b06-4996-9e91-dca422f98473)] interface nsIDOMSVGMpathElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGPathElement.idl b/dom/interfaces/svg/nsIDOMSVGPathElement.idl index a736e1ff805..bfdd0af4c13 100644 --- a/dom/interfaces/svg/nsIDOMSVGPathElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGPathElement.idl @@ -60,7 +60,7 @@ interface nsIDOMSVGPathSegCurvetoCubicSmoothRel; interface nsIDOMSVGPathSegCurvetoQuadraticSmoothAbs; interface nsIDOMSVGPathSegCurvetoQuadraticSmoothRel; -[scriptable, uuid(d1a8894f-9fb1-43e8-b0a0-f8e4a416a505)] +[scriptable, uuid(bb09822e-c8a7-4a76-b282-b9609a8c5bdd)] interface nsIDOMSVGPathElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGPatternElement.idl b/dom/interfaces/svg/nsIDOMSVGPatternElement.idl index d9061bb6489..538cb5a60f3 100644 --- a/dom/interfaces/svg/nsIDOMSVGPatternElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGPatternElement.idl @@ -51,7 +51,7 @@ interface nsIDOMSVGAnimatedEnumeration; interface nsIDOMSVGAnimatedTransformList; interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(962bbf20-7925-4e24-9ae5-ce3a5a39a191)] +[scriptable, uuid(43f2f26b-0831-441d-b3c7-29f6234fc26a)] interface nsIDOMSVGPatternElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGPolygonElement.idl b/dom/interfaces/svg/nsIDOMSVGPolygonElement.idl index 36552e3d314..78e47bd6f9e 100644 --- a/dom/interfaces/svg/nsIDOMSVGPolygonElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGPolygonElement.idl @@ -39,7 +39,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(4d43668c-de35-4da7-a565-a5f929ae30af)] +[scriptable, uuid(13df3abe-8ce8-4c54-ad62-a18f62126793)] interface nsIDOMSVGPolygonElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGPolylineElement.idl b/dom/interfaces/svg/nsIDOMSVGPolylineElement.idl index d21f788885b..39bc676b87b 100644 --- a/dom/interfaces/svg/nsIDOMSVGPolylineElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGPolylineElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(3f1c450e-3125-4098-9b4c-69d6befd8abf)] +[scriptable, uuid(805ed2e7-3c94-421a-aa6b-14c21dc1ecd3)] interface nsIDOMSVGPolylineElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGRectElement.idl b/dom/interfaces/svg/nsIDOMSVGRectElement.idl index 4e1ee29666d..b42bac1d130 100644 --- a/dom/interfaces/svg/nsIDOMSVGRectElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGRectElement.idl @@ -40,7 +40,7 @@ interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(6b4696b6-dd54-4a13-9291-f58f1f1d5567)] +[scriptable, uuid(c9979c6e-cd30-4e67-b8cc-50cd21a1c518)] interface nsIDOMSVGRectElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGSVGElement.idl b/dom/interfaces/svg/nsIDOMSVGSVGElement.idl index 4ec15f9b151..0f9a07d0988 100644 --- a/dom/interfaces/svg/nsIDOMSVGSVGElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGSVGElement.idl @@ -55,7 +55,7 @@ interface nsIDOMSVGTransform; #endif %} -[scriptable, uuid(aecf2c1a-065e-432f-9aeb-c3715246281e)] +[scriptable, uuid(4de866e9-f937-41ab-bb78-4b50584437e4)] interface nsIDOMSVGSVGElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGScriptElement.idl b/dom/interfaces/svg/nsIDOMSVGScriptElement.idl index b50c020dca2..f1696e29db1 100644 --- a/dom/interfaces/svg/nsIDOMSVGScriptElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGScriptElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(26525c48-f1fa-453b-b19a-6586b2d88e1d)] +[scriptable, uuid(84d1d020-0a2b-403e-8b81-fa51af1c3d52)] interface nsIDOMSVGScriptElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGSetElement.idl b/dom/interfaces/svg/nsIDOMSVGSetElement.idl index 61621b9b455..d95b5921357 100644 --- a/dom/interfaces/svg/nsIDOMSVGSetElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGSetElement.idl @@ -37,5 +37,5 @@ #include "nsIDOMSVGAnimationElement.idl" -[scriptable, uuid(b6c27cdc-4d8b-4343-8ccb-3b68adb1052a)] +[scriptable, uuid(5d6ccb41-3bac-4842-96a1-8150091acb05)] interface nsIDOMSVGSetElement : nsIDOMSVGAnimationElement {}; diff --git a/dom/interfaces/svg/nsIDOMSVGStopElement.idl b/dom/interfaces/svg/nsIDOMSVGStopElement.idl index 1accc69186a..4f3bb29593c 100644 --- a/dom/interfaces/svg/nsIDOMSVGStopElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGStopElement.idl @@ -49,7 +49,7 @@ interface nsIDOMSVGAnimatedNumber; -[scriptable, uuid(5e345b97-b718-4deb-a879-bbeb27ba7497)] +[scriptable, uuid(296682ac-e8e6-40c5-a8d0-31b904ec1b13)] interface nsIDOMSVGStopElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGStyleElement.idl b/dom/interfaces/svg/nsIDOMSVGStyleElement.idl index 0b1b99dd0d3..0762cca15e7 100644 --- a/dom/interfaces/svg/nsIDOMSVGStyleElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGStyleElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(2ce28aa9-3b6c-4eb6-a42a-4c00dd7406f3)] +[scriptable, uuid(9ce8621b-b838-4d9a-8a74-59df65a62cf3)] interface nsIDOMSVGStyleElement : nsIDOMSVGElement { diff --git a/dom/interfaces/svg/nsIDOMSVGSwitchElement.idl b/dom/interfaces/svg/nsIDOMSVGSwitchElement.idl index 48030d93c7c..17432e33e39 100644 --- a/dom/interfaces/svg/nsIDOMSVGSwitchElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGSwitchElement.idl @@ -36,7 +36,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(fb52b73c-3908-44c7-a390-2d40f8e8499c)] +[scriptable, uuid(dd194cc5-1319-4b54-ac1d-87e41092b278)] interface nsIDOMSVGSwitchElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGSymbolElement.idl b/dom/interfaces/svg/nsIDOMSVGSymbolElement.idl index 3a790211dfc..dc104b144e4 100644 --- a/dom/interfaces/svg/nsIDOMSVGSymbolElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGSymbolElement.idl @@ -36,7 +36,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(0e272bde-2660-49c9-a2d3-4652346e0ff6)] +[scriptable, uuid(baa7b70f-badd-40eb-8c68-2376a09e8ad9)] interface nsIDOMSVGSymbolElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGTSpanElement.idl b/dom/interfaces/svg/nsIDOMSVGTSpanElement.idl index 1df7066de47..90fe518be87 100644 --- a/dom/interfaces/svg/nsIDOMSVGTSpanElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGTSpanElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGTextPositionElem.idl" -[scriptable, uuid(99131b84-1858-4fbf-826e-35d5135ce6c3)] +[scriptable, uuid(129c1e5d-8ff2-4c65-b2f7-a09e209fb0ac)] interface nsIDOMSVGTSpanElement : nsIDOMSVGTextPositioningElement { }; diff --git a/dom/interfaces/svg/nsIDOMSVGTextContentElement.idl b/dom/interfaces/svg/nsIDOMSVGTextContentElement.idl index 1f2c06960d7..0f8439fe97f 100644 --- a/dom/interfaces/svg/nsIDOMSVGTextContentElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGTextContentElement.idl @@ -44,7 +44,7 @@ interface nsIDOMSVGPoint; interface nsIDOMSVGRect; -[scriptable, uuid(2dc007ee-b5f4-44e7-a516-9512d88f6347)] +[scriptable, uuid(0a719b38-d8ea-4b62-83d9-ed9d76dbe111)] interface nsIDOMSVGTextContentElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGTextElement.idl b/dom/interfaces/svg/nsIDOMSVGTextElement.idl index d4d884c1901..6d530063050 100644 --- a/dom/interfaces/svg/nsIDOMSVGTextElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGTextElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGTextPositionElem.idl" -[scriptable, uuid(774d0445-e3c9-46c4-a1ac-347a6d34a308)] +[scriptable, uuid(96a1df7f-856e-4671-97cf-7264c60f0271)] interface nsIDOMSVGTextElement : nsIDOMSVGTextPositioningElement /* The SVG DOM makes use of multiple interface inheritance. diff --git a/dom/interfaces/svg/nsIDOMSVGTextPathElement.idl b/dom/interfaces/svg/nsIDOMSVGTextPathElement.idl index cb44279c6c1..1facfa80194 100644 --- a/dom/interfaces/svg/nsIDOMSVGTextPathElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGTextPathElement.idl @@ -39,7 +39,7 @@ interface nsIDOMSVGAnimatedLength; interface nsIDOMSVGAnimatedEnumeration; -[scriptable, uuid(55c2dbe7-c3e2-4e45-aeb1-b81802ceec48)] +[scriptable, uuid(fcea5b44-d1c4-49a6-9f90-477c61029e5e)] interface nsIDOMSVGTextPathElement : nsIDOMSVGTextContentElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl b/dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl index d5b316ee8f1..361abc1d7f2 100644 --- a/dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl +++ b/dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl @@ -41,7 +41,7 @@ interface nsIDOMSVGAnimatedLengthList; interface nsIDOMSVGAnimatedNumberList; -[scriptable, uuid(92b911b3-d822-4805-b6a3-7a698f88e720)] +[scriptable, uuid(9e91bf1d-c1ae-468d-9053-fa683e713beb)] interface nsIDOMSVGTextPositioningElement : nsIDOMSVGTextContentElement { readonly attribute nsIDOMSVGAnimatedLengthList x; diff --git a/dom/interfaces/svg/nsIDOMSVGTitleElement.idl b/dom/interfaces/svg/nsIDOMSVGTitleElement.idl index 3a006330e4b..b6cc9e2d606 100644 --- a/dom/interfaces/svg/nsIDOMSVGTitleElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGTitleElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMSVGElement.idl" -[scriptable, uuid(ade32154-08ad-4575-9f15-47840700af90)] +[scriptable, uuid(f9763c34-58d1-4934-997e-cffd59ba9aa8)] interface nsIDOMSVGTitleElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/svg/nsIDOMSVGUseElement.idl b/dom/interfaces/svg/nsIDOMSVGUseElement.idl index caef1638827..c59bff460c3 100644 --- a/dom/interfaces/svg/nsIDOMSVGUseElement.idl +++ b/dom/interfaces/svg/nsIDOMSVGUseElement.idl @@ -38,7 +38,7 @@ interface nsIDOMSVGAnimatedLength; -[scriptable, uuid(686a8d0b-e0d7-4443-970e-22e22018f4f1)] +[scriptable, uuid(f6c4180c-2a97-4d71-abdd-7a291b57daed)] interface nsIDOMSVGUseElement : nsIDOMSVGElement /* diff --git a/dom/interfaces/xpath/nsIDOMXPathNamespace.idl b/dom/interfaces/xpath/nsIDOMXPathNamespace.idl index 9c559ec9cc2..52bef815bf1 100644 --- a/dom/interfaces/xpath/nsIDOMXPathNamespace.idl +++ b/dom/interfaces/xpath/nsIDOMXPathNamespace.idl @@ -42,7 +42,7 @@ #include "nsIDOMNode.idl" -[scriptable, uuid(978f4c11-3b29-40af-8c29-a4e0689f2776)] +[scriptable, uuid(47836446-3c3d-440f-99f6-984d8a2f2e04)] interface nsIDOMXPathNamespace : nsIDOMNode { // XPathNodeType diff --git a/dom/interfaces/xul/nsIDOMXULButtonElement.idl b/dom/interfaces/xul/nsIDOMXULButtonElement.idl index 5c961d02575..6071478d55d 100644 --- a/dom/interfaces/xul/nsIDOMXULButtonElement.idl +++ b/dom/interfaces/xul/nsIDOMXULButtonElement.idl @@ -38,7 +38,7 @@ #include "nsIDOMXULLabeledControlEl.idl" -[scriptable, uuid(761e4742-e1c2-4d0d-91fe-cc11c4e6b1ad)] +[scriptable, uuid(ebf2741a-9e4a-4c40-82da-886c46f8632f)] interface nsIDOMXULButtonElement : nsIDOMXULLabeledControlElement { const short CHECKSTATE_UNCHECKED = 0; const short CHECKSTATE_CHECKED = 1; diff --git a/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl b/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl index 13ee81782d9..f1801dc5d1c 100644 --- a/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl +++ b/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl @@ -40,7 +40,7 @@ #include "nsIDOMElement.idl" #include "nsIDOMXULLabeledControlEl.idl" -[scriptable, uuid(6713cd76-65ef-4883-bb58-31b2e400bb78)] +[scriptable, uuid(f678191a-9d88-4567-a45e-8835883cb9a7)] interface nsIDOMXULCheckboxElement : nsIDOMXULLabeledControlElement { const short CHECKSTATE_UNCHECKED = 0; const short CHECKSTATE_CHECKED = 1; diff --git a/dom/interfaces/xul/nsIDOMXULContainerElement.idl b/dom/interfaces/xul/nsIDOMXULContainerElement.idl index d4cacee3520..2b257370d25 100644 --- a/dom/interfaces/xul/nsIDOMXULContainerElement.idl +++ b/dom/interfaces/xul/nsIDOMXULContainerElement.idl @@ -39,7 +39,7 @@ #include "nsIDOMXULElement.idl" interface nsIDOMXULContainerElement; -[scriptable, uuid(608d604f-79b4-4fe0-8a2c-49a007496642)] +[scriptable, uuid(e5457dc5-878b-4587-9b90-428303408df4)] interface nsIDOMXULContainerItemElement : nsIDOMXULElement { /** @@ -48,7 +48,7 @@ interface nsIDOMXULContainerItemElement : nsIDOMXULElement readonly attribute nsIDOMXULContainerElement parentContainer; }; -[scriptable, uuid(73acdda3-c6a5-4a89-a01a-0f776eba870d)] +[scriptable, uuid(1ab35621-3a7f-4aa8-b9b8-222dea0b0536)] interface nsIDOMXULContainerElement : nsIDOMXULContainerItemElement { /** diff --git a/dom/interfaces/xul/nsIDOMXULControlElement.idl b/dom/interfaces/xul/nsIDOMXULControlElement.idl index d9c85ab7a4c..f500532caa0 100644 --- a/dom/interfaces/xul/nsIDOMXULControlElement.idl +++ b/dom/interfaces/xul/nsIDOMXULControlElement.idl @@ -42,7 +42,7 @@ interface nsIControllers; -[scriptable, uuid(eb90ef16-4d66-4fbe-941d-814a183a0e88)] +[scriptable, uuid(73c5fcd3-9404-4458-a158-44fc3a32bc1c)] interface nsIDOMXULControlElement : nsIDOMXULElement { attribute boolean disabled; attribute long tabIndex; diff --git a/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl b/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl index a4046425095..aacb70e213b 100644 --- a/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl +++ b/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl @@ -40,7 +40,7 @@ #include "nsIDOMXULElement.idl" -[scriptable, uuid(de87d3ef-8780-40e9-8af1-593bc7a24d77)] +[scriptable, uuid(46ea9e4b-c253-4fec-aac7-8bb840a7237c)] interface nsIDOMXULDescriptionElement : nsIDOMXULElement { attribute boolean disabled; attribute boolean crop; diff --git a/dom/interfaces/xul/nsIDOMXULImageElement.idl b/dom/interfaces/xul/nsIDOMXULImageElement.idl index 88e5cf49c07..7b1651483e5 100644 --- a/dom/interfaces/xul/nsIDOMXULImageElement.idl +++ b/dom/interfaces/xul/nsIDOMXULImageElement.idl @@ -37,7 +37,7 @@ #include "nsIDOMElement.idl" #include "nsIDOMXULElement.idl" -[scriptable, uuid(02faa23e-71f3-436a-8a13-9dc709af9997)] +[scriptable, uuid(b2affc89-de29-4b79-a88d-3dcf462ce120)] interface nsIDOMXULImageElement : nsIDOMXULElement { attribute DOMString src; }; diff --git a/dom/interfaces/xul/nsIDOMXULLabelElement.idl b/dom/interfaces/xul/nsIDOMXULLabelElement.idl index b842233613b..c188ca2280b 100644 --- a/dom/interfaces/xul/nsIDOMXULLabelElement.idl +++ b/dom/interfaces/xul/nsIDOMXULLabelElement.idl @@ -39,7 +39,7 @@ #include "nsIDOMXULDescriptionElement.idl" -[scriptable, uuid(db431786-d23a-4ee2-a8b4-f952c6f2fa6e)] +[scriptable, uuid(0f36a6e1-714e-49fa-80d2-9777a6e8682b)] interface nsIDOMXULLabelElement : nsIDOMXULDescriptionElement { attribute DOMString accessKey; attribute DOMString control; diff --git a/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl b/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl index 0bd97ef717b..73eaeaeac4c 100644 --- a/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl +++ b/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl @@ -40,7 +40,7 @@ #include "nsIDOMElement.idl" #include "nsIDOMXULControlElement.idl" -[scriptable, uuid(bbdbd28d-dc31-4933-be99-de33569ed7d9)] +[scriptable, uuid(6134f667-5832-4a0e-a81d-bec5d1fe723f)] interface nsIDOMXULLabeledControlElement : nsIDOMXULControlElement { attribute DOMString crop; attribute DOMString image; diff --git a/dom/interfaces/xul/nsIDOMXULMenuListElement.idl b/dom/interfaces/xul/nsIDOMXULMenuListElement.idl index 9feede8588a..8dcf4073f08 100644 --- a/dom/interfaces/xul/nsIDOMXULMenuListElement.idl +++ b/dom/interfaces/xul/nsIDOMXULMenuListElement.idl @@ -40,7 +40,7 @@ #include "nsIDOMXULSelectCntrlEl.idl" interface nsIDOMXULTextBoxElement; -[scriptable, uuid(8be387a6-ac10-4cd9-acac-bd61c78e7513)] +[scriptable, uuid(17d51428-e177-4cba-895a-7a005790f119)] interface nsIDOMXULMenuListElement : nsIDOMXULSelectControlElement { attribute boolean editable; attribute boolean open; diff --git a/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl b/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl index c684260a39e..0c5dba043ae 100644 --- a/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl +++ b/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl @@ -39,7 +39,7 @@ #include "nsIDOMXULSelectCntrlEl.idl" -[scriptable, uuid(a197ad4e-127d-477a-a069-400b3b32fee9)] +[scriptable, uuid(71629b83-3523-4184-960a-876fc3b452aa)] interface nsIDOMXULMultiSelectControlElement : nsIDOMXULSelectControlElement { attribute DOMString selType; diff --git a/dom/interfaces/xul/nsIDOMXULPopupElement.idl b/dom/interfaces/xul/nsIDOMXULPopupElement.idl index bb24c6213a7..b1025583b8b 100644 --- a/dom/interfaces/xul/nsIDOMXULPopupElement.idl +++ b/dom/interfaces/xul/nsIDOMXULPopupElement.idl @@ -39,7 +39,7 @@ #include "nsIDOMElement.idl" #include "nsIDOMXULElement.idl" -[scriptable, uuid(d647cb9a-aa67-4549-9219-b0345fcefe67)] +[scriptable, uuid(1d2d498a-3e3b-45dd-a55a-e707ae4c6e89)] interface nsIDOMXULPopupElement : nsIDOMXULElement { const unsigned short BEFORE_START = 1; const unsigned short BEFORE_END = 2; diff --git a/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl b/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl index 419d25c429b..0fbd4cba0a9 100644 --- a/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl +++ b/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl @@ -39,7 +39,7 @@ #include "nsIDOMXULControlElement.idl" interface nsIDOMXULSelectControlItemElement; -[scriptable, uuid(919D9808-8937-4CEC-9390-91225EB8864B)] +[scriptable, uuid(d38dba00-7cb7-4349-a857-7172f8a5c07a)] interface nsIDOMXULSelectControlElement : nsIDOMXULControlElement { attribute nsIDOMXULSelectControlItemElement selectedItem; attribute long selectedIndex; diff --git a/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl b/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl index a625b66ad48..edc2304830e 100644 --- a/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl +++ b/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl @@ -39,7 +39,7 @@ #include "nsIDOMXULElement.idl" interface nsIDOMXULSelectControlElement; -[scriptable, uuid(79585939-115c-4727-9743-a42baf7173b0)] +[scriptable, uuid(4fb442d0-fc50-476c-bd56-efa215188b72)] interface nsIDOMXULSelectControlItemElement : nsIDOMXULElement { attribute boolean disabled; attribute DOMString crop; diff --git a/dom/interfaces/xul/nsIDOMXULTextboxElement.idl b/dom/interfaces/xul/nsIDOMXULTextboxElement.idl index 8c44ced6f88..dc39bb56e84 100644 --- a/dom/interfaces/xul/nsIDOMXULTextboxElement.idl +++ b/dom/interfaces/xul/nsIDOMXULTextboxElement.idl @@ -39,7 +39,7 @@ #include "nsIDOMXULLabeledControlEl.idl" interface nsIDOMHTMLInputElement; -[scriptable, uuid(806a706e-2bae-4aec-a53e-5432eb4a7025)] +[scriptable, uuid(741d87d2-2495-4a5c-9460-1e7d1128586d)] interface nsIDOMXULTextBoxElement : nsIDOMXULControlElement { // inputField may be any type of editable field, such as an diff --git a/rdf/base/idl/xulstubs.idl b/rdf/base/idl/xulstubs.idl index b6a8b7c284a..fb29aba937f 100644 --- a/rdf/base/idl/xulstubs.idl +++ b/rdf/base/idl/xulstubs.idl @@ -46,10 +46,10 @@ #include "domstubs.idl" -[scriptable, uuid(0574ed81-c088-11d2-96ed-00104b7b7deb)] +[scriptable, uuid(f28b7d89-5724-4cc5-9eba-5b61d65f1db5)] interface nsIDOMXULElement : nsIDOMElement {}; -[scriptable, uuid(a6cf90ec-15b3-11d2-932e-00805f8add32)] +[scriptable, uuid(543d62b9-39b4-4c8e-8629-1e6a58b94304)] interface nsIDOMXULTreeElement : nsIDOMXULElement {}; [scriptable, uuid(f3c50361-14fe-11d3-bf87-00105a1b0627)] From 1d6c8e0ad44c5dddff827004465699002a59c29e Mon Sep 17 00:00:00 2001 From: Kailas Date: Mon, 12 Sep 2011 10:24:02 -0400 Subject: [PATCH 35/71] Bug 680812 - Excessive space between "280" and "KB" in download dialog; r=dolske --- .../chrome/mozapps/downloads/unknownContentType.properties | 4 ++-- toolkit/mozapps/downloads/nsHelperAppDlg.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties b/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties index 6dc7b82938b..f0aa26851ec 100644 --- a/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties +++ b/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties @@ -50,8 +50,8 @@ selectDownloadDir=Select Download Folder unknownAccept.label=Save File unknownCancel.label=Cancel fileType=%S file -# LOCALIZATION NOTE (fileSizeWithType): first %S is type, second %S is size, and third %S is unit -fileSizeWithType=%1S (%2S %3S) +# LOCALIZATION NOTE (orderedFileSizeWithType): first %S is type, second %S is size, and third %S is unit +orderedFileSizeWithType=%1$S (%2$S %3$S) # LOCALIZATION NOTE (wpsDefaultOS2): OS/2 only, WPS refers to the Workplace Shell and should probably not be translated wpsDefaultOS2=WPS Default diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js index d88b1208d72..62be13dd997 100644 --- a/toolkit/mozapps/downloads/nsHelperAppDlg.js +++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js @@ -616,7 +616,7 @@ nsUnknownContentTypeDialog.prototype = { let [size, unit] = DownloadUtils. convertByteUnits(this.mLauncher.contentLength); type.value = this.dialogElement("strings") - .getFormattedString("fileSizeWithType", + .getFormattedString("orderedFileSizeWithType", [typeString, size, unit]); } else { From a9d2e20602872ede811187f24ae12d9f91a66eda Mon Sep 17 00:00:00 2001 From: Michal Novotny Date: Mon, 12 Sep 2011 18:00:15 +0200 Subject: [PATCH 36/71] Bug 477578 - uppercase selected HTTP methods (CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, TRACE and TRACK) and make other methods case sensitive --- netwerk/protocol/http/HttpBaseChannel.cpp | 27 ++++++++---- netwerk/protocol/http/HttpChannelChild.cpp | 2 +- netwerk/protocol/http/HttpChannelParent.cpp | 4 +- netwerk/protocol/http/HttpChannelParent.h | 2 +- netwerk/protocol/http/PHttpChannel.ipdl | 3 +- netwerk/protocol/http/nsHttp.cpp | 24 ++++++++++ netwerk/protocol/http/nsHttp.h | 7 +++ netwerk/protocol/http/nsHttpAtomList.h | 49 ++++++++++++++------- netwerk/protocol/http/nsHttpChannel.cpp | 6 ++- netwerk/protocol/http/nsHttpHandler.cpp | 2 + netwerk/protocol/http/nsHttpRequestHead.cpp | 2 +- netwerk/protocol/http/nsHttpRequestHead.h | 6 +-- netwerk/test/unit/test_bug477578.js | 42 ++++++++++++++++++ netwerk/test/unit/xpcshell.ini | 1 + 14 files changed, 140 insertions(+), 37 deletions(-) create mode 100644 netwerk/test/unit/test_bug477578.js diff --git a/netwerk/protocol/http/HttpBaseChannel.cpp b/netwerk/protocol/http/HttpBaseChannel.cpp index b6807982987..ea6e8b21136 100644 --- a/netwerk/protocol/http/HttpBaseChannel.cpp +++ b/netwerk/protocol/http/HttpBaseChannel.cpp @@ -776,7 +776,7 @@ HttpBaseChannel::nsContentEncodings::PrepareForNext(void) NS_IMETHODIMP HttpBaseChannel::GetRequestMethod(nsACString& aMethod) { - aMethod = mRequestHead.Method(); + mRequestHead.Method()->ToUTF8String(aMethod); return NS_OK; } @@ -785,16 +785,27 @@ HttpBaseChannel::SetRequestMethod(const nsACString& aMethod) { ENSURE_CALLED_BEFORE_ASYNC_OPEN(); - const nsCString& flatMethod = PromiseFlatCString(aMethod); + nsCAutoString upperCaseMethod; + ToUpperCase(aMethod, upperCaseMethod); // Method names are restricted to valid HTTP tokens. - if (!nsHttp::IsValidToken(flatMethod)) + if (!nsHttp::IsValidToken(upperCaseMethod)) return NS_ERROR_INVALID_ARG; - nsHttpAtom atom = nsHttp::ResolveAtom(flatMethod.get()); - if (!atom) - return NS_ERROR_FAILURE; + nsCOMPtr atom = do_GetAtom(upperCaseMethod); + // We've changed method names to case sensitive in bug 477578. Some + // methods are kept case insensitive to keep backward compatibility and + // to satisfy XMLHttpRequest specification which demands it. +#define HTTP_METHOD_ATOM(name_, value_) +#define HTTP_CASE_INSENSITIVE_METHOD_ATOM(name_, value_) \ + if (nsHttp::name_ == atom) {} else +#include "nsHttpAtomList.h" +#undef HTTP_CASE_INSENSITIVE_METHOD_ATOM +#undef HTTP_METHOD_ATOM + { // upper case atom doesn't match any case insensitive atom + atom = do_GetAtom(aMethod); + } mRequestHead.SetMethod(atom); return NS_OK; } @@ -1543,7 +1554,7 @@ HttpBaseChannel::SetupReplacementChannel(nsIURI *newURI, PRInt64 len = clen ? nsCRT::atoll(clen) : -1; uploadChannel2->ExplicitSetUploadStream( mUploadStream, nsDependentCString(ctype), len, - nsDependentCString(mRequestHead.Method()), + nsAtomCString(mRequestHead.Method()), mUploadStreamHasHeaders); } else { if (mUploadStreamHasHeaders) { @@ -1570,7 +1581,7 @@ HttpBaseChannel::SetupReplacementChannel(nsIURI *newURI, // we set the upload stream above. This means SetRequestMethod() will // be called twice if ExplicitSetUploadStream() gets called above. - httpChannel->SetRequestMethod(nsDependentCString(mRequestHead.Method())); + httpChannel->SetRequestMethod(nsAtomCString(mRequestHead.Method())); } // convey the referrer if one was used for this channel to the next one if (mReferrer) diff --git a/netwerk/protocol/http/HttpChannelChild.cpp b/netwerk/protocol/http/HttpChannelChild.cpp index 4b9f27c9dbd..da6f0c6cea1 100644 --- a/netwerk/protocol/http/HttpChannelChild.cpp +++ b/netwerk/protocol/http/HttpChannelChild.cpp @@ -1072,7 +1072,7 @@ HttpChannelChild::AsyncOpen(nsIStreamListener *listener, nsISupports *aContext) SendAsyncOpen(IPC::URI(mURI), IPC::URI(mOriginalURI), IPC::URI(mDocumentURI), IPC::URI(mReferrer), mLoadFlags, - mRequestHeaders, mRequestHead.Method(), + mRequestHeaders, nsAtomCString(mRequestHead.Method()), IPC::InputStream(mUploadStream), mUploadStreamHasHeaders, mPriority, mRedirectionLimit, mAllowPipelining, mForceAllowThirdPartyCookie, mSendResumeAt, diff --git a/netwerk/protocol/http/HttpChannelParent.cpp b/netwerk/protocol/http/HttpChannelParent.cpp index 4b01e10829f..4b00af3a6eb 100644 --- a/netwerk/protocol/http/HttpChannelParent.cpp +++ b/netwerk/protocol/http/HttpChannelParent.cpp @@ -132,7 +132,7 @@ HttpChannelParent::RecvAsyncOpen(const IPC::URI& aURI, const IPC::URI& aReferrerURI, const PRUint32& loadFlags, const RequestHeaderTuples& requestHeaders, - const nsHttpAtom& requestMethod, + const nsCString& requestMethod, const IPC::InputStream& uploadStream, const PRBool& uploadStreamHasHeaders, const PRUint16& priority, @@ -190,7 +190,7 @@ HttpChannelParent::RecvAsyncOpen(const IPC::URI& aURI, httpChan->SetNotificationCallbacks(channelListener); - httpChan->SetRequestMethod(nsDependentCString(requestMethod.get())); + httpChan->SetRequestMethod(requestMethod); nsCOMPtr stream(uploadStream); if (stream) { diff --git a/netwerk/protocol/http/HttpChannelParent.h b/netwerk/protocol/http/HttpChannelParent.h index 377ce877970..43b2682fc6e 100644 --- a/netwerk/protocol/http/HttpChannelParent.h +++ b/netwerk/protocol/http/HttpChannelParent.h @@ -86,7 +86,7 @@ protected: const IPC::URI& referrerUri, const PRUint32& loadFlags, const RequestHeaderTuples& requestHeaders, - const nsHttpAtom& requestMethod, + const nsCString& requestMethod, const IPC::InputStream& uploadStream, const PRBool& uploadStreamHasHeaders, const PRUint16& priority, diff --git a/netwerk/protocol/http/PHttpChannel.ipdl b/netwerk/protocol/http/PHttpChannel.ipdl index 70c79e315df..083c617fac1 100644 --- a/netwerk/protocol/http/PHttpChannel.ipdl +++ b/netwerk/protocol/http/PHttpChannel.ipdl @@ -47,7 +47,6 @@ include "prio.h"; using RequestHeaderTuples; using nsHttpResponseHead; -using nsHttpAtom; using IPC::URI; using IPC::InputStream; using PRNetAddr; @@ -70,7 +69,7 @@ parent: URI referrer, PRUint32 loadFlags, RequestHeaderTuples requestHeaders, - nsHttpAtom requestMethod, + nsCString requestMethod, InputStream uploadStream, PRBool uploadStreamHasHeaders, PRUint16 priority, diff --git a/netwerk/protocol/http/nsHttp.cpp b/netwerk/protocol/http/nsHttp.cpp index ca32c3e2abc..04ca507c226 100644 --- a/netwerk/protocol/http/nsHttp.cpp +++ b/netwerk/protocol/http/nsHttp.cpp @@ -42,6 +42,7 @@ #include "mozilla/Mutex.h" #include "nsCRT.h" #include "prbit.h" +#include "nsStaticAtom.h" #if defined(PR_LOGGING) PRLogModuleInfo *gHttpLog = nsnull; @@ -60,6 +61,23 @@ enum { }; #undef HTTP_ATOM +// define all method atoms +#define HTTP_METHOD_ATOM(name_, value_) nsIAtom* nsHttp::name_; +#include "nsHttpAtomList.h" +#undef HTTP_METHOD_ATOM + +#define HTTP_METHOD_ATOM(name_, value_) \ + NS_STATIC_ATOM_BUFFER(name_##_buffer, value_) +#include "nsHttpAtomList.h" +#undef HTTP_METHOD_ATOM + +static const nsStaticAtom methodAtomsInfo[] = { +#define HTTP_METHOD_ATOM(name_, value_) \ + NS_STATIC_ATOM(name_##_buffer, &nsHttp::name_), +#include "nsHttpAtomList.h" +#undef HTTP_METHOD_ATOM +}; + using namespace mozilla; // we keep a linked list of atoms allocated on the heap for easy clean up when @@ -184,6 +202,12 @@ nsHttp::DestroyAtomTable() } } +void +nsHttp::CreateMethodAtoms() +{ + NS_RegisterStaticAtoms(methodAtomsInfo, NS_ARRAY_LENGTH(methodAtomsInfo)); +} + // this function may be called from multiple threads nsHttpAtom nsHttp::ResolveAtom(const char *str) diff --git a/netwerk/protocol/http/nsHttp.h b/netwerk/protocol/http/nsHttp.h index 05e0a95b265..07391219d6d 100644 --- a/netwerk/protocol/http/nsHttp.h +++ b/netwerk/protocol/http/nsHttp.h @@ -67,6 +67,7 @@ #include "nsPromiseFlatString.h" #include "nsURLHelper.h" #include "netCore.h" +#include "nsIAtom.h" #if defined(PR_LOGGING) // @@ -164,6 +165,8 @@ struct nsHttp static nsresult CreateAtomTable(); static void DestroyAtomTable(); + static void CreateMethodAtoms(); + // will dynamically add atoms to the table if they don't already exist static nsHttpAtom ResolveAtom(const char *); static nsHttpAtom ResolveAtom(const nsACString &s) @@ -215,6 +218,10 @@ struct nsHttp #define HTTP_ATOM(_name, _value) static nsHttpAtom _name; #include "nsHttpAtomList.h" #undef HTTP_ATOM + +#define HTTP_METHOD_ATOM(_name, _value) static nsIAtom* _name; +#include "nsHttpAtomList.h" +#undef HTTP_METHOD_ATOM }; //----------------------------------------------------------------------------- diff --git a/netwerk/protocol/http/nsHttpAtomList.h b/netwerk/protocol/http/nsHttpAtomList.h index ddf4bde0490..a97ec660ed9 100644 --- a/netwerk/protocol/http/nsHttpAtomList.h +++ b/netwerk/protocol/http/nsHttpAtomList.h @@ -50,6 +50,7 @@ The second argument to HTTP_ATOM is the string value of the atom. ******/ +#if defined(HTTP_ATOM) HTTP_ATOM(Accept, "Accept") HTTP_ATOM(Accept_Encoding, "Accept-Encoding") HTTP_ATOM(Accept_Language, "Accept-Language") @@ -123,26 +124,40 @@ HTTP_ATOM(Vary, "Vary") HTTP_ATOM(Version, "Version") HTTP_ATOM(WWW_Authenticate, "WWW-Authenticate") HTTP_ATOM(Warning, "Warning") +#endif // methods are atoms too. // // Note: winnt.h defines DELETE macro, so we'll just keep the methods mixedcase // even though they're normally written all uppercase. -- darin -HTTP_ATOM(Connect, "CONNECT") -HTTP_ATOM(Copy, "COPY") -HTTP_ATOM(Delete, "DELETE") -HTTP_ATOM(Get, "GET") -HTTP_ATOM(Head, "HEAD") -HTTP_ATOM(Index, "INDEX") -HTTP_ATOM(Lock, "LOCK") -HTTP_ATOM(M_Post, "M-POST") -HTTP_ATOM(Mkcol, "MKCOL") -HTTP_ATOM(Move, "MOVE") -HTTP_ATOM(Options, "OPTIONS") -HTTP_ATOM(Post, "POST") -HTTP_ATOM(Propfind, "PROPFIND") -HTTP_ATOM(Proppatch, "PROPPATCH") -HTTP_ATOM(Put, "PUT") -HTTP_ATOM(Trace, "TRACE") -HTTP_ATOM(Unlock, "UNLOCK") +#if defined(HTTP_METHOD_ATOM) + +#if !defined(HTTP_CASE_INSENSITIVE_METHOD_ATOM) +#define HTTP_CASE_INSENSITIVE_METHOD_ATOM HTTP_METHOD_ATOM +#define UNDEF_HTTP_CASE_INSENSITIVE_METHOD_ATOM +#endif +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Connect, "CONNECT") +HTTP_METHOD_ATOM (Copy, "COPY") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Delete, "DELETE") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Get, "GET") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Head, "HEAD") +HTTP_METHOD_ATOM (Index, "INDEX") +HTTP_METHOD_ATOM (Lock, "LOCK") +HTTP_METHOD_ATOM (M_Post, "M-POST") +HTTP_METHOD_ATOM (Mkcol, "MKCOL") +HTTP_METHOD_ATOM (Move, "MOVE") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Options, "OPTIONS") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Post, "POST") +HTTP_METHOD_ATOM (Propfind, "PROPFIND") +HTTP_METHOD_ATOM (Proppatch, "PROPPATCH") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Put, "PUT") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Trace, "TRACE") +HTTP_CASE_INSENSITIVE_METHOD_ATOM(Track, "TRACK") +HTTP_METHOD_ATOM (Unlock, "UNLOCK") +#if defined(UNDEF_HTTP_CASE_INSENSITIVE_METHOD_ATOM) +#undef UNDEF_HTTP_CASE_INSENSITIVE_METHOD_ATOM +#undef HTTP_CASE_INSENSITIVE_METHOD_ATOM +#endif + +#endif diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp index 6cc90a9e9eb..bf0c6591191 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp @@ -2412,7 +2412,9 @@ nsHttpChannel::CheckCache() rv = mCacheEntry->GetMetaDataElement("request-method", getter_Copies(buf)); NS_ENSURE_SUCCESS(rv, rv); - nsHttpAtom method = nsHttp::ResolveAtom(buf); + nsCOMPtr method = do_GetAtom(buf); + NS_ENSURE_TRUE(method, NS_ERROR_OUT_OF_MEMORY); + if (method == nsHttp::Head) { // The cached response does not contain an entity. We can only reuse // the response if the current request is also HEAD. @@ -2981,7 +2983,7 @@ nsHttpChannel::AddCacheEntryHeaders(nsICacheEntryDescriptor *entry) // Store the HTTP request method with the cache entry so we can distinguish // for example GET and HEAD responses. rv = entry->SetMetaDataElement("request-method", - mRequestHead.Method().get()); + nsAtomCString(mRequestHead.Method()).get()); if (NS_FAILED(rv)) return rv; // Store the HTTP authorization scheme used if any... diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp index b9fb1b28218..c734a25423a 100644 --- a/netwerk/protocol/http/nsHttpHandler.cpp +++ b/netwerk/protocol/http/nsHttpHandler.cpp @@ -238,6 +238,8 @@ nsHttpHandler::Init() if (NS_FAILED(rv)) return rv; + nsHttp::CreateMethodAtoms(); + mIOService = do_GetService(NS_IOSERVICE_CONTRACTID, &rv); if (NS_FAILED(rv)) { NS_WARNING("unable to continue without io service"); diff --git a/netwerk/protocol/http/nsHttpRequestHead.cpp b/netwerk/protocol/http/nsHttpRequestHead.cpp index 1ed95515220..ff5a2540788 100644 --- a/netwerk/protocol/http/nsHttpRequestHead.cpp +++ b/netwerk/protocol/http/nsHttpRequestHead.cpp @@ -47,7 +47,7 @@ nsHttpRequestHead::Flatten(nsACString &buf, PRBool pruneProxyHeaders) { // note: the first append is intentional. - buf.Append(mMethod.get()); + buf.Append(nsAtomCString(mMethod)); buf.Append(' '); buf.Append(mRequestURI); buf.AppendLiteral(" HTTP/"); diff --git a/netwerk/protocol/http/nsHttpRequestHead.h b/netwerk/protocol/http/nsHttpRequestHead.h index 168b9f314e7..aa796204d04 100644 --- a/netwerk/protocol/http/nsHttpRequestHead.h +++ b/netwerk/protocol/http/nsHttpRequestHead.h @@ -55,12 +55,12 @@ public: nsHttpRequestHead() : mMethod(nsHttp::Get), mVersion(NS_HTTP_VERSION_1_1) {} ~nsHttpRequestHead() {} - void SetMethod(nsHttpAtom method) { mMethod = method; } + void SetMethod(nsIAtom *method) { mMethod = method; } void SetVersion(nsHttpVersion version) { mVersion = version; } void SetRequestURI(const nsCSubstring &s) { mRequestURI = s; } nsHttpHeaderArray &Headers() { return mHeaders; } - nsHttpAtom Method() { return mMethod; } + nsIAtom *Method() { return mMethod; } nsHttpVersion Version() { return mVersion; } const nsCSubstring &RequestURI() { return mRequestURI; } @@ -77,7 +77,7 @@ public: private: nsHttpHeaderArray mHeaders; - nsHttpAtom mMethod; + nsCOMPtr mMethod; nsHttpVersion mVersion; nsCString mRequestURI; }; diff --git a/netwerk/test/unit/test_bug477578.js b/netwerk/test/unit/test_bug477578.js new file mode 100644 index 00000000000..afd692acbbd --- /dev/null +++ b/netwerk/test/unit/test_bug477578.js @@ -0,0 +1,42 @@ +const Cc = Components.classes; +const Ci = Components.interfaces; + +const testMethods = [ + ["get", "GET"], + ["post", "POST"], + ["head", "HEAD"], + ["put", "PUT"], + ["delete", "DELETE"], + ["connect", "CONNECT"], + ["options", "OPTIONS"], + ["trace", "TRACE"], + ["track", "TRACK"], + ["copy", "copy"], + ["index", "index"], + ["lock", "lock"], + ["m-post", "m-post"], + ["mkcol", "mkcol"], + ["move", "move"], + ["propfind", "propfind"], + ["proppatch", "proppatch"], + ["unlock", "unlock"], + ["link", "link"], + ["foo", "foo"], + ["foO", "foO"], + ["fOo", "fOo"], + ["Foo", "Foo"] +] + +function run_test() { + var ios = + Cc["@mozilla.org/network/io-service;1"]. + getService(Ci.nsIIOService); + + var chan = ios.newChannel("http://localhost/", null, null) + .QueryInterface(Components.interfaces.nsIHttpChannel); + + for (var i = 0; i < testMethods.length; i++) { + chan.requestMethod = testMethods[i][0]; + do_check_eq(chan.requestMethod, testMethods[i][1]); + } +} diff --git a/netwerk/test/unit/xpcshell.ini b/netwerk/test/unit/xpcshell.ini index b2c032f6936..3b644e50459 100644 --- a/netwerk/test/unit/xpcshell.ini +++ b/netwerk/test/unit/xpcshell.ini @@ -44,6 +44,7 @@ skip-if = os == "android" skip-if = os == "android" [test_bug468594.js] [test_bug470716.js] +[test_bug477578.js] [test_bug479413.js] [test_bug479485.js] [test_bug482601.js] From 568117449510d66a6b537eb9bdbec57804867c00 Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Mon, 12 Sep 2011 09:08:07 -0700 Subject: [PATCH 37/71] Bug 685154 - Cleanup nsIFrame::GetParentStyleContextFrame and related code. r=roc Make nsIFrame::GetParentStyleContextFrame return the frame directly instead of indirectly through an out parameter. Remove the unused nsPresContext parameter. --- layout/base/nsCSSFrameConstructor.cpp | 15 ++---- layout/base/nsFrameManager.cpp | 25 ++++------ layout/generic/nsFrame.cpp | 69 ++++++++------------------ layout/generic/nsFrame.h | 24 ++++----- layout/generic/nsIFrame.h | 16 ++---- layout/generic/nsPlaceholderFrame.cpp | 11 ++-- layout/generic/nsPlaceholderFrame.h | 5 +- layout/tables/nsTableColGroupFrame.cpp | 5 +- layout/tables/nsTableFrame.cpp | 13 ++--- layout/tables/nsTableFrame.h | 4 +- layout/tables/nsTableOuterFrame.cpp | 30 ++++------- layout/tables/nsTableOuterFrame.h | 9 ++-- 12 files changed, 75 insertions(+), 151 deletions(-) diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp index 90ae7202e94..8d0cb90c81f 100644 --- a/layout/base/nsCSSFrameConstructor.cpp +++ b/layout/base/nsCSSFrameConstructor.cpp @@ -2479,9 +2479,9 @@ nsCSSFrameConstructor::ConstructDocElementFrame(Element* aDocEle // Figure out which frame has the main style for the document element, // assigning it to mRootElementStyleFrame. // Backgrounds should be propagated from that frame to the viewport. - PRBool isChild; - contentFrame->GetParentStyleContextFrame(state.mPresContext, - &mRootElementStyleFrame, &isChild); + mRootElementStyleFrame = contentFrame->GetParentStyleContextFrame(); + bool isChild = mRootElementStyleFrame && + mRootElementStyleFrame->GetParent() == contentFrame; if (!isChild) { mRootElementStyleFrame = mRootElementFrame; } @@ -5788,13 +5788,8 @@ nsCSSFrameConstructor::IsValidSibling(nsIFrame* aSibling, // if we haven't already, construct a style context to find the display type of aContent if (UNSET_DISPLAY == aDisplay) { nsRefPtr styleContext; - nsIFrame* styleParent; - PRBool providerIsChild; - if (NS_FAILED(aSibling-> - GetParentStyleContextFrame(aSibling->PresContext(), - &styleParent, - &providerIsChild)) || - !styleParent) { + nsIFrame* styleParent = aSibling->GetParentStyleContextFrame(); + if (!styleParent) { NS_NOTREACHED("Shouldn't happen"); return PR_FALSE; } diff --git a/layout/base/nsFrameManager.cpp b/layout/base/nsFrameManager.cpp index f749c186d11..c99b27b1450 100644 --- a/layout/base/nsFrameManager.cpp +++ b/layout/base/nsFrameManager.cpp @@ -268,7 +268,7 @@ nsFrameManager::Destroy() // Placeholder frame functions nsPlaceholderFrame* -nsFrameManager::GetPlaceholderFrameFor(nsIFrame* aFrame) +nsFrameManager::GetPlaceholderFrameFor(nsIFrame* aFrame) { NS_PRECONDITION(aFrame, "null param unexpected"); @@ -587,10 +587,7 @@ VerifyContextParent(nsPresContext* aPresContext, nsIFrame* aFrame, // as the parent context instead of asking the frame // get the parent context from the frame (indirectly) - nsIFrame* providerFrame = nsnull; - PRBool providerIsChild; - aFrame->GetParentStyleContextFrame(aPresContext, - &providerFrame, &providerIsChild); + nsIFrame* providerFrame = aFrame->GetParentStyleContextFrame(); if (providerFrame) aParentContext = providerFrame->GetStyleContext(); // aParentContext could still be null @@ -808,13 +805,11 @@ nsFrameManager::ReparentStyleContext(nsIFrame* aFrame) // XXXbz can oldContext really ever be null? if (oldContext) { nsRefPtr newContext; - nsIFrame* providerFrame = nsnull; - PRBool providerIsChild = PR_FALSE; - nsIFrame* providerChild = nsnull; - aFrame->GetParentStyleContextFrame(GetPresContext(), &providerFrame, - &providerIsChild); + nsIFrame* providerFrame = aFrame->GetParentStyleContextFrame(); + bool isChild = providerFrame && providerFrame->GetParent() == aFrame; nsStyleContext* newParentContext = nsnull; - if (providerIsChild) { + nsIFrame* providerChild = nsnull; + if (isChild) { ReparentStyleContext(providerFrame); newParentContext = providerFrame->GetStyleContext(); providerChild = providerFrame; @@ -1107,11 +1102,9 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext, nsIFrame* resolvedChild = nsnull; // Get the frame providing the parent style context. If it is a // child, then resolve the provider first. - nsIFrame* providerFrame = nsnull; - PRBool providerIsChild = PR_FALSE; - aFrame->GetParentStyleContextFrame(aPresContext, - &providerFrame, &providerIsChild); - if (!providerIsChild) { + nsIFrame* providerFrame = aFrame->GetParentStyleContextFrame(); + bool isChild = providerFrame && providerFrame->GetParent() == aFrame; + if (!isChild) { if (providerFrame) parentContext = providerFrame->GetStyleContext(); else diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index 7a4744a30be..cdf7758dd1c 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -6520,15 +6520,6 @@ nsFrame::ConsiderChildOverflow(nsOverflowAreas& aOverflowAreas, } } -NS_IMETHODIMP -nsFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) -{ - return DoGetParentStyleContextFrame(aPresContext, aProviderFrame, aIsChild); -} - - /** * This function takes a "special" frame and _if_ that frame is an anonymous * block created by an ib split it returns the block's preceding inline. This @@ -6575,26 +6566,22 @@ GetIBSpecialSiblingForAnonymousBlock(nsIFrame* aFrame) * Also skip anonymous scrolled-content parents; inherit directly from the * outer scroll frame. */ -static nsresult -GetCorrectedParent(nsPresContext* aPresContext, nsIFrame* aFrame, - nsIFrame** aSpecialParent) +static nsIFrame* +GetCorrectedParent(const nsIFrame* aFrame) { nsIFrame *parent = aFrame->GetParent(); if (!parent) { - *aSpecialParent = nsnull; - } else { - nsIAtom* pseudo = aFrame->GetStyleContext()->GetPseudo(); - // Outer tables are always anon boxes; if we're in here for an outer - // table, that actually means its the _inner_ table that wants to - // know its parent. So get the pseudo of the inner in that case. - if (pseudo == nsCSSAnonBoxes::tableOuter) { - pseudo = aFrame->GetFirstPrincipalChild() - ->GetStyleContext()->GetPseudo(); - } - *aSpecialParent = nsFrame::CorrectStyleParentFrame(parent, pseudo); + return nsnull; } - return NS_OK; + // Outer tables are always anon boxes; if we're in here for an outer + // table, that actually means its the _inner_ table that wants to + // know its parent. So get the pseudo of the inner in that case. + nsIAtom* pseudo = aFrame->GetStyleContext()->GetPseudo(); + if (pseudo == nsCSSAnonBoxes::tableOuter) { + pseudo = aFrame->GetFirstPrincipalChild()->GetStyleContext()->GetPseudo(); + } + return nsFrame::CorrectStyleParentFrame(parent, pseudo); } /* static */ @@ -6659,17 +6646,13 @@ nsFrame::CorrectStyleParentFrame(nsIFrame* aProspectiveParent, return nsnull; } -nsresult -nsFrame::DoGetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) +nsIFrame* +nsFrame::DoGetParentStyleContextFrame() { - *aIsChild = PR_FALSE; - *aProviderFrame = nsnull; if (mContent && !mContent->GetParent() && !GetStyleContext()->GetPseudo()) { // we're a frame for the root. We have no style context parent. - return NS_OK; + return nsnull; } if (!(mState & NS_FRAME_OUT_OF_FLOW)) { @@ -6679,17 +6662,16 @@ nsFrame::DoGetParentStyleContextFrame(nsPresContext* aPresContext, * inline. We can get to it using GetIBSpecialSiblingForAnonymousBlock. */ if (mState & NS_FRAME_IS_SPECIAL) { - *aProviderFrame = GetIBSpecialSiblingForAnonymousBlock(this); - - if (*aProviderFrame) { - return NS_OK; + nsIFrame* specialSibling = GetIBSpecialSiblingForAnonymousBlock(this); + if (specialSibling) { + return specialSibling; } } // If this frame is one of the blocks that split an inline, we must // return the "special" inline parent, i.e., the parent that this // frame would have if we didn't mangle the frame structure. - return GetCorrectedParent(aPresContext, this, aProviderFrame); + return GetCorrectedParent(this); } // For out-of-flow frames, we must resolve underneath the @@ -6701,22 +6683,15 @@ nsFrame::DoGetParentStyleContextFrame(nsPresContext* aPresContext, // have placeholders. Use their first-in-flow's placeholder. oofFrame = oofFrame->GetFirstInFlow(); } - nsIFrame *placeholder = - aPresContext->FrameManager()->GetPlaceholderFrameFor(oofFrame); + nsIFrame* placeholder = oofFrame->PresContext()->FrameManager()-> + GetPlaceholderFrameFor(oofFrame); if (!placeholder) { NS_NOTREACHED("no placeholder frame for out-of-flow frame"); - GetCorrectedParent(aPresContext, this, aProviderFrame); - return NS_ERROR_FAILURE; + return GetCorrectedParent(this); } - return static_cast(placeholder)-> - GetParentStyleContextFrame(aPresContext, aProviderFrame, aIsChild); + return placeholder->GetParentStyleContextFrame(); } -//----------------------------------------------------------------------------------- - - - - void nsFrame::GetLastLeaf(nsPresContext* aPresContext, nsIFrame **aFrame) { diff --git a/layout/generic/nsFrame.h b/layout/generic/nsFrame.h index 27d516022f1..5e15177187d 100644 --- a/layout/generic/nsFrame.h +++ b/layout/generic/nsFrame.h @@ -268,9 +268,18 @@ public: virtual already_AddRefed CreateAccessible(); #endif - NS_IMETHOD GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild); + virtual nsIFrame* GetParentStyleContextFrame() { + return DoGetParentStyleContextFrame(); + } + + /** + * Do the work for getting the parent style context frame so that + * other frame's |GetParentStyleContextFrame| methods can call this + * method on *another* frame. (This function handles out-of-flow + * frames by using the frame manager's placeholder map and it also + * handles block-within-inline and generated content wrappers.) + */ + nsIFrame* DoGetParentStyleContextFrame(); virtual PRBool IsEmpty(); virtual PRBool IsSelfEmpty(); @@ -399,15 +408,6 @@ public: nsHTMLReflowMetrics& aMetrics, nsReflowStatus& aStatus); - // Do the work for getting the parent style context frame so that - // other frame's |GetParentStyleContextFrame| methods can call this - // method on *another* frame. (This function handles out-of-flow - // frames by using the frame manager's placeholder map and it also - // handles block-within-inline and generated content wrappers.) - nsresult DoGetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild); - // Incorporate the child overflow areas into aOverflowAreas. // If the child does not have a overflow, use the child area. void ConsiderChildOverflow(nsOverflowAreas& aOverflowAreas, diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h index bbb7b98c222..557d2bbda90 100644 --- a/layout/generic/nsIFrame.h +++ b/layout/generic/nsIFrame.h @@ -2396,19 +2396,11 @@ public: * this frame returns a child frame, then the child frame must be sure * to return a grandparent or higher! * - * @param aPresContext: PresContext - * @param aProviderFrame: The frame whose style context should be the - * parent of this frame's style context. Null - * is permitted, and means that this frame's - * style context should be the root of the - * style context tree. - * @param aIsChild: True if |aProviderFrame| is set to a child - * of this frame; false if it is an ancestor or - * null. + * @return The frame whose style context should be the parent of this frame's + * style context. Null is permitted, and means that this frame's + * style context should be the root of the style context tree. */ - NS_IMETHOD GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) = 0; + virtual nsIFrame* GetParentStyleContextFrame() = 0; /** * Determines whether a frame is visible for painting; diff --git a/layout/generic/nsPlaceholderFrame.cpp b/layout/generic/nsPlaceholderFrame.cpp index 9b5a1f9c691..7c3789775f8 100644 --- a/layout/generic/nsPlaceholderFrame.cpp +++ b/layout/generic/nsPlaceholderFrame.cpp @@ -191,20 +191,15 @@ nsPlaceholderFrame::CanContinueTextRun() const return mOutOfFlowFrame->CanContinueTextRun(); } -NS_IMETHODIMP -nsPlaceholderFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) +nsIFrame* +nsPlaceholderFrame::GetParentStyleContextFrame() { NS_PRECONDITION(GetParent(), "How can we not have a parent here?"); - *aIsChild = PR_FALSE; // Lie about our pseudo so we can step out of all anon boxes and // pseudo-elements. The other option would be to reimplement the // {ib} split gunk here. - *aProviderFrame = - CorrectStyleParentFrame(GetParent(), nsGkAtoms::placeholderFrame); - return NS_OK; + return CorrectStyleParentFrame(GetParent(), nsGkAtoms::placeholderFrame); } diff --git a/layout/generic/nsPlaceholderFrame.h b/layout/generic/nsPlaceholderFrame.h index a76fd70a1f0..f6a30f2252a 100644 --- a/layout/generic/nsPlaceholderFrame.h +++ b/layout/generic/nsPlaceholderFrame.h @@ -174,9 +174,8 @@ public: } #endif - NS_IMETHOD GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild); + virtual nsIFrame* GetParentStyleContextFrame(); + /** * @return the out-of-flow for aFrame if aFrame is a placeholder; otherwise * aFrame diff --git a/layout/tables/nsTableColGroupFrame.cpp b/layout/tables/nsTableColGroupFrame.cpp index bb452858eda..04962c4e3a6 100644 --- a/layout/tables/nsTableColGroupFrame.cpp +++ b/layout/tables/nsTableColGroupFrame.cpp @@ -336,10 +336,7 @@ nsTableColGroupFrame::RemoveFrame(ChildListID aListID, nsTableColFrame* nextCol; while (col && col->GetColType() == eColAnonymousCol) { #ifdef DEBUG - nsIFrame* providerFrame; - PRBool isChild; - colFrame->GetParentStyleContextFrame(PresContext(), &providerFrame, - &isChild); + nsIFrame* providerFrame = colFrame->GetParentStyleContextFrame(); if (colFrame->GetStyleContext()->GetParent() == providerFrame->GetStyleContext()) { NS_ASSERTION(col->GetStyleContext() == colFrame->GetStyleContext() && diff --git a/layout/tables/nsTableFrame.cpp b/layout/tables/nsTableFrame.cpp index 3a6fee2d6e2..0d020cc01ad 100644 --- a/layout/tables/nsTableFrame.cpp +++ b/layout/tables/nsTableFrame.cpp @@ -161,10 +161,8 @@ struct BCPropertyData BCPixelSize mRightCellBorderWidth; }; -NS_IMETHODIMP -nsTableFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) +nsIFrame* +nsTableFrame::GetParentStyleContextFrame() { // Since our parent, the table outer frame, returned this frame, we // must return whatever our parent would normally have returned. @@ -172,13 +170,10 @@ nsTableFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, NS_PRECONDITION(mParent, "table constructed without outer table"); if (!mContent->GetParent() && !GetStyleContext()->GetPseudo()) { // We're the root. We have no style context parent. - *aIsChild = PR_FALSE; - *aProviderFrame = nsnull; - return NS_OK; + return nsnull; } - return static_cast(mParent)-> - DoGetParentStyleContextFrame(aPresContext, aProviderFrame, aIsChild); + return static_cast(GetParent())->DoGetParentStyleContextFrame(); } diff --git a/layout/tables/nsTableFrame.h b/layout/tables/nsTableFrame.h index 35f93035508..8e9b4202e7d 100644 --- a/layout/tables/nsTableFrame.h +++ b/layout/tables/nsTableFrame.h @@ -349,9 +349,7 @@ public: nsFrameList& GetColGroups(); - NS_IMETHOD GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild); + virtual nsIFrame* GetParentStyleContextFrame(); /** * Get the "type" of the frame diff --git a/layout/tables/nsTableOuterFrame.cpp b/layout/tables/nsTableOuterFrame.cpp index 3df79d2d839..b62d4649903 100644 --- a/layout/tables/nsTableOuterFrame.cpp +++ b/layout/tables/nsTableOuterFrame.cpp @@ -117,10 +117,8 @@ nsTableCaptionFrame::ComputeAutoSize(nsRenderingContext *aRenderingContext, return result; } -NS_IMETHODIMP -nsTableCaptionFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) +nsIFrame* +nsTableCaptionFrame::GetParentStyleContextFrame() { NS_PRECONDITION(mContent->GetParent(), "How could we not have a parent here?"); @@ -131,17 +129,13 @@ nsTableCaptionFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, if (outerFrame && outerFrame->GetType() == nsGkAtoms::tableOuterFrame) { nsIFrame* innerFrame = outerFrame->GetFirstPrincipalChild(); if (innerFrame) { - *aProviderFrame = - nsFrame::CorrectStyleParentFrame(innerFrame, - GetStyleContext()->GetPseudo()); - *aIsChild = PR_FALSE; - return NS_OK; + return nsFrame::CorrectStyleParentFrame(innerFrame, + GetStyleContext()->GetPseudo()); } } NS_NOTREACHED("Where is our inner table frame?"); - return nsBlockFrame::GetParentStyleContextFrame(aPresContext, aProviderFrame, - aIsChild); + return nsBlockFrame::GetParentStyleContextFrame(); } #ifdef ACCESSIBILITY @@ -405,10 +399,8 @@ nsTableOuterFrame::SetSelected(PRBool aSelected, } } -NS_IMETHODIMP -nsTableOuterFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild) +nsIFrame* +nsTableOuterFrame::GetParentStyleContextFrame() { // The table outer frame and the (inner) table frame split the style // data by giving the table frame the style context associated with @@ -421,13 +413,9 @@ nsTableOuterFrame::GetParentStyleContextFrame(nsPresContext* aPresContext, // the outer table's style context is a leaf. if (!mInnerTableFrame) { - *aProviderFrame = this; - *aIsChild = PR_FALSE; - return NS_ERROR_FAILURE; + return this; } - *aProviderFrame = mInnerTableFrame; - *aIsChild = PR_TRUE; - return NS_OK; + return mInnerTableFrame; } // INCREMENTAL REFLOW HELPER FUNCTIONS diff --git a/layout/tables/nsTableOuterFrame.h b/layout/tables/nsTableOuterFrame.h index ecba6304100..b8351b06aff 100644 --- a/layout/tables/nsTableOuterFrame.h +++ b/layout/tables/nsTableOuterFrame.h @@ -59,9 +59,8 @@ public: nsSize aMargin, nsSize aBorder, nsSize aPadding, PRBool aShrinkWrap); - NS_IMETHOD GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild); + virtual nsIFrame* GetParentStyleContextFrame(); + #ifdef ACCESSIBILITY virtual already_AddRefed CreateAccessible(); #endif @@ -169,9 +168,7 @@ public: void SetSelected(PRBool aSelected, SelectionType aType); - NS_IMETHOD GetParentStyleContextFrame(nsPresContext* aPresContext, - nsIFrame** aProviderFrame, - PRBool* aIsChild); + virtual nsIFrame* GetParentStyleContextFrame(); /*---------------- nsITableLayout methods ------------------------*/ From a07de1bbbadb485b68451927108f02ce3dc56947 Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Mon, 12 Sep 2011 09:08:07 -0700 Subject: [PATCH 38/71] Bug 685154 - Cleanup nsIFrame::GetParentStyleContextFrame and related code. r=roc Make nsCSSFrameConstructor::ConstructTable return a null frame if creating the inner table frame fails. Simplify some code since we can now depend on the invariant that a properly created outer table frame always has a non-null inner table frame. --- layout/base/nsCSSFrameConstructor.cpp | 13 +++++---- layout/mathml/nsMathMLmtableFrame.cpp | 8 +++--- layout/tables/nsTableOuterFrame.cpp | 40 ++++++--------------------- 3 files changed, 20 insertions(+), 41 deletions(-) diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp index 8d0cb90c81f..fc2d939f059 100644 --- a/layout/base/nsCSSFrameConstructor.cpp +++ b/layout/base/nsCSSFrameConstructor.cpp @@ -1909,7 +1909,12 @@ nsCSSFrameConstructor::ConstructTable(nsFrameConstructorState& aState, innerFrame = NS_NewMathMLmtableFrame(mPresShell, styleContext); else innerFrame = NS_NewTableFrame(mPresShell, styleContext); - + + if (!innerFrame) { + newFrame->Destroy(); + return NS_ERROR_OUT_OF_MEMORY; + } + InitAndRestoreFrame(aState, content, newFrame, nsnull, innerFrame); // Put the newly created frames into the right child list @@ -6675,10 +6680,8 @@ nsCSSFrameConstructor::ContentAppended(nsIContent* aContainer, if (captionItems.NotEmpty()) { // append the caption to the outer table NS_ASSERTION(nsGkAtoms::tableFrame == frameType, "how did that happen?"); nsIFrame* outerTable = parentFrame->GetParent(); - if (outerTable) { - state.mFrameManager->AppendFrames(outerTable, nsIFrame::kCaptionList, - captionItems); - } + state.mFrameManager->AppendFrames(outerTable, nsIFrame::kCaptionList, + captionItems); } if (frameItems.NotEmpty()) { // append the in-flow kids diff --git a/layout/mathml/nsMathMLmtableFrame.cpp b/layout/mathml/nsMathMLmtableFrame.cpp index 8fc565fad9d..38f8933ca73 100644 --- a/layout/mathml/nsMathMLmtableFrame.cpp +++ b/layout/mathml/nsMathMLmtableFrame.cpp @@ -458,8 +458,8 @@ nsMathMLmtableOuterFrame::AttributeChanged(PRInt32 aNameSpaceID, // mtable is simple and only has one (pseudo) row-group inside our inner-table nsIFrame* tableFrame = mFrames.FirstChild(); - if (!tableFrame || tableFrame->GetType() != nsGkAtoms::tableFrame) - return NS_OK; + NS_ASSERTION(tableFrame && tableFrame->GetType() == nsGkAtoms::tableFrame, + "should always have an inner table frame"); nsIFrame* rgFrame = tableFrame->GetFirstPrincipalChild(); if (!rgFrame || rgFrame->GetType() != nsGkAtoms::tableRowGroupFrame) return NS_OK; @@ -548,8 +548,8 @@ nsMathMLmtableOuterFrame::GetRowFrameAt(nsPresContext* aPresContext, // if our inner table says that the index is valid, find the row now if (0 <= aRowIndex && aRowIndex <= rowCount) { nsIFrame* tableFrame = mFrames.FirstChild(); - if (!tableFrame || tableFrame->GetType() != nsGkAtoms::tableFrame) - return nsnull; + NS_ASSERTION(tableFrame && tableFrame->GetType() == nsGkAtoms::tableFrame, + "should always have an inner table frame"); nsIFrame* rgFrame = tableFrame->GetFirstPrincipalChild(); if (!rgFrame || rgFrame->GetType() != nsGkAtoms::tableRowGroupFrame) return nsnull; diff --git a/layout/tables/nsTableOuterFrame.cpp b/layout/tables/nsTableOuterFrame.cpp index b62d4649903..9332ce97d84 100644 --- a/layout/tables/nsTableOuterFrame.cpp +++ b/layout/tables/nsTableOuterFrame.cpp @@ -244,17 +244,11 @@ nsTableOuterFrame::SetInitialChildList(ChildListID aListID, else { NS_ASSERTION(aListID == kPrincipalList, "wrong childlist"); NS_ASSERTION(mFrames.IsEmpty(), "Frame leak!"); - mInnerTableFrame = nsnull; - if (aChildList.NotEmpty()) { - if (nsGkAtoms::tableFrame == aChildList.FirstChild()->GetType()) { - mInnerTableFrame = (nsTableFrame*)aChildList.FirstChild(); - mFrames.SetFrames(aChildList); - } - else { - NS_ERROR("expected a table frame"); - return NS_ERROR_INVALID_ARG; - } - } + NS_ASSERTION(aChildList.FirstChild() && + nsGkAtoms::tableFrame == aChildList.FirstChild()->GetType(), + "expected a table frame"); + mInnerTableFrame = static_cast(aChildList.FirstChild()); + mFrames.SetFrames(aChildList); } return NS_OK; @@ -394,9 +388,7 @@ nsTableOuterFrame::SetSelected(PRBool aSelected, SelectionType aType) { nsFrame::SetSelected(aSelected, aType); - if (mInnerTableFrame) { - mInnerTableFrame->SetSelected(aSelected, aType); - } + mInnerTableFrame->SetSelected(aSelected, aType); } nsIFrame* @@ -412,9 +404,6 @@ nsTableOuterFrame::GetParentStyleContextFrame() // children of the table inherit directly from the inner table, and // the outer table's style context is a leaf. - if (!mInnerTableFrame) { - return this; - } return mInnerTableFrame; } @@ -429,7 +418,8 @@ nsTableOuterFrame::InitChildReflowState(nsPresContext& aPresContext, nsMargin collapsePadding(0,0,0,0); nsMargin* pCollapseBorder = nsnull; nsMargin* pCollapsePadding = nsnull; - if ((aReflowState.frame == mInnerTableFrame) && (mInnerTableFrame->IsBorderCollapse())) { + if (aReflowState.frame == mInnerTableFrame && + mInnerTableFrame->IsBorderCollapse()) { collapseBorder = mInnerTableFrame->GetIncludedOuterBCBorder(); pCollapseBorder = &collapseBorder; pCollapsePadding = &collapsePadding; @@ -958,12 +948,6 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, DO_GLOBAL_REFLOW_COUNT("nsTableOuterFrame"); DISPLAY_REFLOW(aPresContext, this, aOuterRS, aDesiredSize, aStatus); - // We desperately need an inner table frame, - // if this fails fix the frame constructor - if (mFrames.IsEmpty() || !mInnerTableFrame) { - NS_ERROR("incomplete children"); - return NS_ERROR_FAILURE; - } nsresult rv = NS_OK; PRUint8 captionSide = GetCaptionSide(); @@ -1169,8 +1153,6 @@ nsTableOuterFrame::GetCellDataAt(PRInt32 aRowIndex, PRInt32 aColIndex, PRInt32& aActualRowSpan, PRInt32& aActualColSpan, PRBool& aIsSelected) { - NS_ASSERTION(mInnerTableFrame, "no inner table frame yet?"); - return mInnerTableFrame->GetCellDataAt(aRowIndex, aColIndex, aCell, aStartRowIndex, aStartColIndex, aRowSpan, aColSpan, aActualRowSpan, @@ -1180,8 +1162,6 @@ nsTableOuterFrame::GetCellDataAt(PRInt32 aRowIndex, PRInt32 aColIndex, NS_IMETHODIMP nsTableOuterFrame::GetTableSize(PRInt32& aRowCount, PRInt32& aColCount) { - NS_ASSERTION(mInnerTableFrame, "no inner table frame yet?"); - return mInnerTableFrame->GetTableSize(aRowCount, aColCount); } @@ -1190,8 +1170,6 @@ nsTableOuterFrame::GetIndexByRowAndColumn(PRInt32 aRow, PRInt32 aColumn, PRInt32 *aIndex) { NS_ENSURE_ARG_POINTER(aIndex); - - NS_ASSERTION(mInnerTableFrame, "no inner table frame yet?"); return mInnerTableFrame->GetIndexByRowAndColumn(aRow, aColumn, aIndex); } @@ -1201,8 +1179,6 @@ nsTableOuterFrame::GetRowAndColumnByIndex(PRInt32 aIndex, { NS_ENSURE_ARG_POINTER(aRow); NS_ENSURE_ARG_POINTER(aColumn); - - NS_ASSERTION(mInnerTableFrame, "no inner table frame yet?"); return mInnerTableFrame->GetRowAndColumnByIndex(aIndex, aRow, aColumn); } From 1f48a2e70e1d5363bff5781affc7585f622bf050 Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Mon, 12 Sep 2011 09:08:07 -0700 Subject: [PATCH 39/71] Bug 685901 - Remove the nsTableOuterFrame::mInnerTableFrame and mCaptionFrame members in favor of accessing the child frame lists directly. r=roc --- layout/tables/nsTableOuterFrame.cpp | 150 ++++++++++++++-------------- layout/tables/nsTableOuterFrame.h | 14 +-- 2 files changed, 81 insertions(+), 83 deletions(-) diff --git a/layout/tables/nsTableOuterFrame.cpp b/layout/tables/nsTableOuterFrame.cpp index 9332ce97d84..7ee8adcf11a 100644 --- a/layout/tables/nsTableOuterFrame.cpp +++ b/layout/tables/nsTableOuterFrame.cpp @@ -239,7 +239,6 @@ nsTableOuterFrame::SetInitialChildList(ChildListID aListID, if (kCaptionList == aListID) { // the frame constructor already checked for table-caption display type mCaptionFrames.SetFrames(aChildList); - mCaptionFrame = mCaptionFrames.FirstChild(); } else { NS_ASSERTION(aListID == kPrincipalList, "wrong childlist"); @@ -247,7 +246,6 @@ nsTableOuterFrame::SetInitialChildList(ChildListID aListID, NS_ASSERTION(aChildList.FirstChild() && nsGkAtoms::tableFrame == aChildList.FirstChild()->GetType(), "expected a table frame"); - mInnerTableFrame = static_cast(aChildList.FirstChild()); mFrames.SetFrames(aChildList); } @@ -267,7 +265,6 @@ nsTableOuterFrame::AppendFrames(ChildListID aListID, aFrameList.FirstChild()->GetType() == nsGkAtoms::tableCaptionFrame, "appending non-caption frame to captionList"); mCaptionFrames.AppendFrames(this, aFrameList); - mCaptionFrame = mCaptionFrames.FirstChild(); rv = NS_OK; // Reflow the new caption frame. It's already marked dirty, so @@ -296,7 +293,6 @@ nsTableOuterFrame::InsertFrames(ChildListID aListID, aFrameList.FirstChild()->GetType() == nsGkAtoms::tableCaptionFrame, "inserting non-caption frame into captionList"); mCaptionFrames.InsertFrames(nsnull, aPrevFrame, aFrameList); - mCaptionFrame = mCaptionFrames.FirstChild(); // Reflow the new caption frame. It's already marked dirty, so // just tell the pres shell. @@ -322,12 +318,11 @@ nsTableOuterFrame::RemoveFrame(ChildListID aListID, if (HasSideCaption()) { // The old caption width had an effect on the inner table width so // we're going to need to reflow it. Mark it dirty - mInnerTableFrame->AddStateBits(NS_FRAME_IS_DIRTY); + InnerTableFrame()->AddStateBits(NS_FRAME_IS_DIRTY); } // Remove the frame and destroy it mCaptionFrames.DestroyFrame(aOldFrame); - mCaptionFrame = mCaptionFrames.FirstChild(); PresContext()->PresShell()-> FrameNeedsReflow(this, nsIPresShell::eTreeChange, @@ -348,7 +343,7 @@ nsTableOuterFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, // If there's no caption, take a short cut to avoid having to create // the special display list set and then sort it. - if (!mCaptionFrame) + if (mCaptionFrames.IsEmpty()) return BuildDisplayListForInnerTable(aBuilder, aDirtyRect, aLists); nsDisplayListCollection set; @@ -356,7 +351,8 @@ nsTableOuterFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, NS_ENSURE_SUCCESS(rv, rv); nsDisplayListSet captionSet(set, set.BlockBorderBackgrounds()); - rv = BuildDisplayListForChild(aBuilder, mCaptionFrame, aDirtyRect, captionSet); + rv = BuildDisplayListForChild(aBuilder, mCaptionFrames.FirstChild(), + aDirtyRect, captionSet); NS_ENSURE_SUCCESS(rv, rv); // Now we have to sort everything by content order, since the caption @@ -388,7 +384,7 @@ nsTableOuterFrame::SetSelected(PRBool aSelected, SelectionType aType) { nsFrame::SetSelected(aSelected, aType); - mInnerTableFrame->SetSelected(aSelected, aType); + InnerTableFrame()->SetSelected(aSelected, aType); } nsIFrame* @@ -404,7 +400,7 @@ nsTableOuterFrame::GetParentStyleContextFrame() // children of the table inherit directly from the inner table, and // the outer table's style context is a leaf. - return mInnerTableFrame; + return InnerTableFrame(); } // INCREMENTAL REFLOW HELPER FUNCTIONS @@ -418,9 +414,9 @@ nsTableOuterFrame::InitChildReflowState(nsPresContext& aPresContext, nsMargin collapsePadding(0,0,0,0); nsMargin* pCollapseBorder = nsnull; nsMargin* pCollapsePadding = nsnull; - if (aReflowState.frame == mInnerTableFrame && - mInnerTableFrame->IsBorderCollapse()) { - collapseBorder = mInnerTableFrame->GetIncludedOuterBCBorder(); + if (aReflowState.frame == InnerTableFrame() && + InnerTableFrame()->IsBorderCollapse()) { + collapseBorder = InnerTableFrame()->GetIncludedOuterBCBorder(); pCollapseBorder = &collapseBorder; pCollapsePadding = &collapsePadding; } @@ -473,11 +469,12 @@ GetContainingBlockSize(const nsHTMLReflowState& aOuterRS) nsTableOuterFrame::GetMinWidth(nsRenderingContext *aRenderingContext) { nscoord width = nsLayoutUtils::IntrinsicForContainer(aRenderingContext, - mInnerTableFrame, nsLayoutUtils::MIN_WIDTH); + InnerTableFrame(), nsLayoutUtils::MIN_WIDTH); DISPLAY_MIN_WIDTH(this, width); - if (mCaptionFrame) { + if (mCaptionFrames.NotEmpty()) { nscoord capWidth = - nsLayoutUtils::IntrinsicForContainer(aRenderingContext, mCaptionFrame, + nsLayoutUtils::IntrinsicForContainer(aRenderingContext, + mCaptionFrames.FirstChild(), nsLayoutUtils::MIN_WIDTH); if (HasSideCaption()) { width += capWidth; @@ -497,15 +494,16 @@ nsTableOuterFrame::GetPrefWidth(nsRenderingContext *aRenderingContext) DISPLAY_PREF_WIDTH(this, maxWidth); maxWidth = nsLayoutUtils::IntrinsicForContainer(aRenderingContext, - mInnerTableFrame, nsLayoutUtils::PREF_WIDTH); - if (mCaptionFrame) { + InnerTableFrame(), nsLayoutUtils::PREF_WIDTH); + if (mCaptionFrames.NotEmpty()) { PRUint8 captionSide = GetCaptionSide(); switch(captionSide) { case NS_STYLE_CAPTION_SIDE_LEFT: case NS_STYLE_CAPTION_SIDE_RIGHT: { nscoord capMin = - nsLayoutUtils::IntrinsicForContainer(aRenderingContext, mCaptionFrame, + nsLayoutUtils::IntrinsicForContainer(aRenderingContext, + mCaptionFrames.FirstChild(), nsLayoutUtils::MIN_WIDTH); maxWidth += capMin; } @@ -525,7 +523,8 @@ nsTableOuterFrame::GetPrefWidth(nsRenderingContext *aRenderingContext) iwt = nsLayoutUtils::PREF_WIDTH; } nscoord capPref = - nsLayoutUtils::IntrinsicForContainer(aRenderingContext, mCaptionFrame, + nsLayoutUtils::IntrinsicForContainer(aRenderingContext, + mCaptionFrames.FirstChild(), iwt); maxWidth = NS_MAX(maxWidth, capPref); } @@ -582,22 +581,23 @@ nsTableOuterFrame::ComputeAutoSize(nsRenderingContext *aRenderingContext, PRUint8 captionSide = GetCaptionSide(); nscoord width; if (captionSide == NO_SIDE) { - width = ChildShrinkWrapWidth(aRenderingContext, mInnerTableFrame, + width = ChildShrinkWrapWidth(aRenderingContext, InnerTableFrame(), aCBSize, aAvailableWidth); } else if (captionSide == NS_STYLE_CAPTION_SIDE_LEFT || captionSide == NS_STYLE_CAPTION_SIDE_RIGHT) { - nscoord capWidth = ChildShrinkWrapWidth(aRenderingContext, mCaptionFrame, + nscoord capWidth = ChildShrinkWrapWidth(aRenderingContext, + mCaptionFrames.FirstChild(), aCBSize, aAvailableWidth); width = capWidth + ChildShrinkWrapWidth(aRenderingContext, - mInnerTableFrame, aCBSize, + InnerTableFrame(), aCBSize, aAvailableWidth - capWidth); } else if (captionSide == NS_STYLE_CAPTION_SIDE_TOP || captionSide == NS_STYLE_CAPTION_SIDE_BOTTOM) { nscoord margin; - width = ChildShrinkWrapWidth(aRenderingContext, mInnerTableFrame, + width = ChildShrinkWrapWidth(aRenderingContext, InnerTableFrame(), aCBSize, aAvailableWidth, &margin); nscoord capWidth = ChildShrinkWrapWidth(aRenderingContext, - mCaptionFrame, aCBSize, + mCaptionFrames.FirstChild(), aCBSize, width - margin); if (capWidth > width) width = capWidth; @@ -605,11 +605,11 @@ nsTableOuterFrame::ComputeAutoSize(nsRenderingContext *aRenderingContext, NS_ASSERTION(captionSide == NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE || captionSide == NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE, "unexpected caption-side"); - width = ChildShrinkWrapWidth(aRenderingContext, mInnerTableFrame, + width = ChildShrinkWrapWidth(aRenderingContext, InnerTableFrame(), aCBSize, aAvailableWidth); nscoord capWidth = ChildShrinkWrapWidth(aRenderingContext, - mCaptionFrame, aCBSize, - aAvailableWidth); + mCaptionFrames.FirstChild(), + aCBSize, aAvailableWidth); if (capWidth > width) width = capWidth; } @@ -620,8 +620,8 @@ nsTableOuterFrame::ComputeAutoSize(nsRenderingContext *aRenderingContext, PRUint8 nsTableOuterFrame::GetCaptionSide() { - if (mCaptionFrame) { - return mCaptionFrame->GetStyleTableBorder()->mCaptionSide; + if (mCaptionFrames.NotEmpty()) { + return mCaptionFrames.FirstChild()->GetStyleTableBorder()->mCaptionSide; } else { return NO_SIDE; // no caption @@ -631,7 +631,8 @@ nsTableOuterFrame::GetCaptionSide() PRUint8 nsTableOuterFrame::GetCaptionVerticalAlign() { - const nsStyleCoord& va = mCaptionFrame->GetStyleTextReset()->mVerticalAlign; + const nsStyleCoord& va = + mCaptionFrames.FirstChild()->GetStyleTextReset()->mVerticalAlign; return (va.GetUnit() == eStyleUnit_Enumerated) ? va.GetIntValue() : NS_STYLE_VERTICAL_ALIGN_TOP; @@ -646,13 +647,13 @@ nsTableOuterFrame::SetDesiredSize(PRUint8 aCaptionSide, { aWidth = aHeight = 0; - nsRect innerRect = mInnerTableFrame->GetRect(); + nsRect innerRect = InnerTableFrame()->GetRect(); nscoord innerWidth = innerRect.width; nsRect captionRect(0,0,0,0); nscoord captionWidth = 0; - if (mCaptionFrame) { - captionRect = mCaptionFrame->GetRect(); + if (mCaptionFrames.NotEmpty()) { + captionRect = mCaptionFrames.FirstChild()->GetRect(); captionWidth = captionRect.width; } switch(aCaptionSide) { @@ -693,7 +694,7 @@ nsTableOuterFrame::GetCaptionOrigin(PRUint32 aCaptionSide, (NS_UNCONSTRAINEDSIZE == aCaptionSize.width) || (NS_UNCONSTRAINEDSIZE == aCaptionSize.height)) { return NS_OK; } - if (!mCaptionFrame) return NS_OK; + if (mCaptionFrames.IsEmpty()) return NS_OK; NS_ASSERTION(NS_AUTOMARGIN != aCaptionMargin.left, "The computed caption margin is auto?"); NS_ASSERTION(NS_AUTOMARGIN != aCaptionMargin.top, "The computed caption margin is auto?"); @@ -872,7 +873,7 @@ nsTableOuterFrame::OuterBeginReflowChild(nsPresContext* aPresContext, // work around pixel rounding errors, round down to ensure we don't exceed the avail height in nscoord availHeight = aOuterRS.availableHeight; if (NS_UNCONSTRAINEDSIZE != availHeight) { - if (mCaptionFrame == aChildFrame) { + if (mCaptionFrames.FirstChild() == aChildFrame) { availHeight = NS_UNCONSTRAINEDSIZE; } else { nsMargin margin; @@ -896,14 +897,14 @@ nsTableOuterFrame::OuterBeginReflowChild(nsPresContext* aPresContext, InitChildReflowState(*aPresContext, childRS); // see if we need to reset top of page due to a caption - if (mCaptionFrame) { + if (mCaptionFrames.NotEmpty()) { PRUint8 captionSide = GetCaptionSide(); if (((captionSide == NS_STYLE_CAPTION_SIDE_BOTTOM || captionSide == NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE) && - mCaptionFrame == aChildFrame) || + mCaptionFrames.FirstChild() == aChildFrame) || ((captionSide == NS_STYLE_CAPTION_SIDE_TOP || captionSide == NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE) && - mInnerTableFrame == aChildFrame)) { + InnerTableFrame() == aChildFrame)) { childRS.mFlags.mIsTopOfPage = PR_FALSE; } } @@ -933,9 +934,9 @@ nsTableOuterFrame::UpdateReflowMetrics(PRUint8 aCaptionSide, aMet.width, aMet.height); aMet.SetOverflowAreasToDesiredBounds(); - ConsiderChildOverflow(aMet.mOverflowAreas, mInnerTableFrame); - if (mCaptionFrame) { - ConsiderChildOverflow(aMet.mOverflowAreas, mCaptionFrame); + ConsiderChildOverflow(aMet.mOverflowAreas, InnerTableFrame()); + if (mCaptionFrames.NotEmpty()) { + ConsiderChildOverflow(aMet.mOverflowAreas, mCaptionFrames.FirstChild()); } FinishAndStoreOverflow(&aMet); } @@ -971,36 +972,37 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowState *innerRS = static_cast((void*) innerRSSpace); - nsRect origInnerRect = mInnerTableFrame->GetRect(); - nsRect origInnerVisualOverflow = mInnerTableFrame->GetVisualOverflowRect(); + nsRect origInnerRect = InnerTableFrame()->GetRect(); + nsRect origInnerVisualOverflow = InnerTableFrame()->GetVisualOverflowRect(); PRBool innerFirstReflow = - (mInnerTableFrame->GetStateBits() & NS_FRAME_FIRST_REFLOW) != 0; + (InnerTableFrame()->GetStateBits() & NS_FRAME_FIRST_REFLOW) != 0; nsRect origCaptionRect; nsRect origCaptionVisualOverflow; PRBool captionFirstReflow; - if (mCaptionFrame) { - origCaptionRect = mCaptionFrame->GetRect(); - origCaptionVisualOverflow = mCaptionFrame->GetVisualOverflowRect(); + if (mCaptionFrames.NotEmpty()) { + origCaptionRect = mCaptionFrames.FirstChild()->GetRect(); + origCaptionVisualOverflow = + mCaptionFrames.FirstChild()->GetVisualOverflowRect(); captionFirstReflow = - (mCaptionFrame->GetStateBits() & NS_FRAME_FIRST_REFLOW) != 0; + (mCaptionFrames.FirstChild()->GetStateBits() & NS_FRAME_FIRST_REFLOW) != 0; } // ComputeAutoSize has to match this logic. if (captionSide == NO_SIDE) { // We don't have a caption. - OuterBeginReflowChild(aPresContext, mInnerTableFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, InnerTableFrame(), aOuterRS, innerRSSpace, aOuterRS.ComputedWidth()); } else if (captionSide == NS_STYLE_CAPTION_SIDE_LEFT || captionSide == NS_STYLE_CAPTION_SIDE_RIGHT) { // nsTableCaptionFrame::ComputeAutoSize takes care of making side // captions small. Compute the caption's size first, and tell the // table to fit in what's left. - OuterBeginReflowChild(aPresContext, mCaptionFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, mCaptionFrames.FirstChild(), aOuterRS, captionRSSpace, aOuterRS.ComputedWidth()); nscoord innerAvailWidth = aOuterRS.ComputedWidth() - (captionRS->ComputedWidth() + captionRS->mComputedMargin.LeftRight() + captionRS->mComputedBorderPadding.LeftRight()); - OuterBeginReflowChild(aPresContext, mInnerTableFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, InnerTableFrame(), aOuterRS, innerRSSpace, innerAvailWidth); } else if (captionSide == NS_STYLE_CAPTION_SIDE_TOP || @@ -1013,7 +1015,7 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, // table box inside it // We don't actually make our anonymous box that width (if we did, // it would break 'auto' margins), but this effectively does that. - OuterBeginReflowChild(aPresContext, mInnerTableFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, InnerTableFrame(), aOuterRS, innerRSSpace, aOuterRS.ComputedWidth()); // It's good that CSS 2.1 says not to include margins, since we // can't, since they already been converted so they exactly @@ -1022,16 +1024,16 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, // GetCaptionOrigin, though.) nscoord innerBorderWidth = innerRS->ComputedWidth() + innerRS->mComputedBorderPadding.LeftRight(); - OuterBeginReflowChild(aPresContext, mCaptionFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, mCaptionFrames.FirstChild(), aOuterRS, captionRSSpace, innerBorderWidth); } else { NS_ASSERTION(captionSide == NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE || captionSide == NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE, "unexpected caption-side"); // Size the table and the caption independently. - OuterBeginReflowChild(aPresContext, mCaptionFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, mCaptionFrames.FirstChild(), aOuterRS, captionRSSpace, aOuterRS.ComputedWidth()); - OuterBeginReflowChild(aPresContext, mInnerTableFrame, aOuterRS, + OuterBeginReflowChild(aPresContext, InnerTableFrame(), aOuterRS, innerRSSpace, aOuterRS.ComputedWidth()); } @@ -1039,10 +1041,10 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics captionMet; nsSize captionSize; nsMargin captionMargin; - if (mCaptionFrame) { + if (mCaptionFrames.NotEmpty()) { nsReflowStatus capStatus; // don't let the caption cause incomplete - rv = OuterDoReflowChild(aPresContext, mCaptionFrame, *captionRS, - captionMet, capStatus); + rv = OuterDoReflowChild(aPresContext, mCaptionFrames.FirstChild(), + *captionRS, captionMet, capStatus); if (NS_FAILED(rv)) return rv; captionSize.width = captionMet.width; captionSize.height = captionMet.height; @@ -1086,7 +1088,7 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, // Then, now that we know how much to reduce the width of the inner // table to account for side captions, reflow the inner table. nsHTMLReflowMetrics innerMet; - rv = OuterDoReflowChild(aPresContext, mInnerTableFrame, *innerRS, + rv = OuterDoReflowChild(aPresContext, InnerTableFrame(), *innerRS, innerMet, aStatus); if (NS_FAILED(rv)) return rv; nsSize innerSize; @@ -1102,12 +1104,12 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, // XXX Need to recompute inner table's auto margins for the case of side // captions. (Caption's are broken too, but that should be fixed earlier.) - if (mCaptionFrame) { + if (mCaptionFrames.NotEmpty()) { nsPoint captionOrigin; GetCaptionOrigin(captionSide, containSize, innerSize, innerMargin, captionSize, captionMargin, captionOrigin); - FinishReflowChild(mCaptionFrame, aPresContext, captionRS, captionMet, - captionOrigin.x, captionOrigin.y, 0); + FinishReflowChild(mCaptionFrames.FirstChild(), aPresContext, captionRS, + captionMet, captionOrigin.x, captionOrigin.y, 0); captionRS->~nsHTMLReflowState(); } // XXX If the height is constrained then we need to check whether @@ -1116,14 +1118,14 @@ NS_METHOD nsTableOuterFrame::Reflow(nsPresContext* aPresContext, nsPoint innerOrigin; GetInnerOrigin(captionSide, containSize, captionSize, captionMargin, innerSize, innerMargin, innerOrigin); - FinishReflowChild(mInnerTableFrame, aPresContext, innerRS, innerMet, + FinishReflowChild(InnerTableFrame(), aPresContext, innerRS, innerMet, innerOrigin.x, innerOrigin.y, 0); innerRS->~nsHTMLReflowState(); - nsTableFrame::InvalidateFrame(mInnerTableFrame, origInnerRect, + nsTableFrame::InvalidateFrame(InnerTableFrame(), origInnerRect, origInnerVisualOverflow, innerFirstReflow); - if (mCaptionFrame) { - nsTableFrame::InvalidateFrame(mCaptionFrame, origCaptionRect, + if (mCaptionFrames.NotEmpty()) { + nsTableFrame::InvalidateFrame(mCaptionFrames.FirstChild(), origCaptionRect, origCaptionVisualOverflow, captionFirstReflow); } @@ -1153,16 +1155,16 @@ nsTableOuterFrame::GetCellDataAt(PRInt32 aRowIndex, PRInt32 aColIndex, PRInt32& aActualRowSpan, PRInt32& aActualColSpan, PRBool& aIsSelected) { - return mInnerTableFrame->GetCellDataAt(aRowIndex, aColIndex, aCell, - aStartRowIndex, aStartColIndex, - aRowSpan, aColSpan, aActualRowSpan, - aActualColSpan, aIsSelected); + return InnerTableFrame()->GetCellDataAt(aRowIndex, aColIndex, aCell, + aStartRowIndex, aStartColIndex, + aRowSpan, aColSpan, aActualRowSpan, + aActualColSpan, aIsSelected); } NS_IMETHODIMP nsTableOuterFrame::GetTableSize(PRInt32& aRowCount, PRInt32& aColCount) { - return mInnerTableFrame->GetTableSize(aRowCount, aColCount); + return InnerTableFrame()->GetTableSize(aRowCount, aColCount); } NS_IMETHODIMP @@ -1170,7 +1172,7 @@ nsTableOuterFrame::GetIndexByRowAndColumn(PRInt32 aRow, PRInt32 aColumn, PRInt32 *aIndex) { NS_ENSURE_ARG_POINTER(aIndex); - return mInnerTableFrame->GetIndexByRowAndColumn(aRow, aColumn, aIndex); + return InnerTableFrame()->GetIndexByRowAndColumn(aRow, aColumn, aIndex); } NS_IMETHODIMP @@ -1179,7 +1181,7 @@ nsTableOuterFrame::GetRowAndColumnByIndex(PRInt32 aIndex, { NS_ENSURE_ARG_POINTER(aRow); NS_ENSURE_ARG_POINTER(aColumn); - return mInnerTableFrame->GetRowAndColumnByIndex(aIndex, aRow, aColumn); + return InnerTableFrame()->GetRowAndColumnByIndex(aIndex, aRow, aColumn); } /*---------------- end of nsITableLayout implementation ------------------*/ diff --git a/layout/tables/nsTableOuterFrame.h b/layout/tables/nsTableOuterFrame.h index b8351b06aff..8bcde836d5e 100644 --- a/layout/tables/nsTableOuterFrame.h +++ b/layout/tables/nsTableOuterFrame.h @@ -41,9 +41,7 @@ #include "nsHTMLContainerFrame.h" #include "nsBlockFrame.h" #include "nsITableLayout.h" - -struct nsStyleTable; -class nsTableFrame; +#include "nsTableFrame.h" class nsTableCaptionFrame : public nsBlockFrame { @@ -259,17 +257,15 @@ protected: nscoord aAvailableWidth, nsMargin& aMargin); + nsTableFrame* InnerTableFrame() { + return static_cast(mFrames.FirstChild()); + } + private: - // used to keep track of this frame's children. They are redundant with mFrames, but more convient - nsTableFrame* mInnerTableFrame; nsFrameList mCaptionFrames; - nsIFrame* mCaptionFrame; }; inline PRIntn nsTableOuterFrame::GetSkipSides() const { return 0; } #endif - - - From 7162d85ae2be701ea601689c40db73586f784983 Mon Sep 17 00:00:00 2001 From: Jan de Mooij Date: Mon, 12 Sep 2011 19:23:25 +0200 Subject: [PATCH 40/71] Bug 686106 - Don't allocate an extra register for JSOP_MUL with constant operand. r=bhackett --- js/src/assembler/assembler/X86Assembler.h | 4 +++- js/src/methodjit/FastArithmetic.cpp | 19 +++++++++++++------ js/src/methodjit/FrameState.cpp | 20 ++++++-------------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/js/src/assembler/assembler/X86Assembler.h b/js/src/assembler/assembler/X86Assembler.h index 26b5e1e7572..8bd2028ff04 100644 --- a/js/src/assembler/assembler/X86Assembler.h +++ b/js/src/assembler/assembler/X86Assembler.h @@ -989,7 +989,9 @@ public: void imull_i32r(RegisterID src, int32_t value, RegisterID dst) { - FIXME_INSN_PRINTING; + js::JaegerSpew(js::JSpew_Insns, + IPFX "imull %d, %s, %s\n", + MAYBE_PAD, value, nameIReg(4, src), nameIReg(4, dst)); m_formatter.oneByteOp(OP_IMUL_GvEvIz, dst, src); m_formatter.immediate32(value); } diff --git a/js/src/methodjit/FastArithmetic.cpp b/js/src/methodjit/FastArithmetic.cpp index 0e0e968561a..99cebda24d0 100644 --- a/js/src/methodjit/FastArithmetic.cpp +++ b/js/src/methodjit/FastArithmetic.cpp @@ -662,8 +662,6 @@ mjit::Compiler::jsop_binary_full(FrameEntry *lhs, FrameEntry *rhs, JSOp op, case JSOP_MUL: { - JS_ASSERT(reg.isSet()); - MaybeJump storeNegZero; bool maybeNegZero = !ignoreOverflow; bool hasConstant = (lhs->isConstant() || rhs->isConstant()); @@ -680,10 +678,19 @@ mjit::Compiler::jsop_binary_full(FrameEntry *lhs, FrameEntry *rhs, JSOp op, storeNegZero = masm.branch32(Assembler::LessThan, nonConstReg, Imm32(0)); } - if (cannotOverflow) - masm.mul32(reg.reg(), regs.result); - else - overflow = masm.branchMul32(Assembler::Overflow, reg.reg(), regs.result); + if (cannotOverflow) { + if (reg.isSet()) + masm.mul32(reg.reg(), regs.result); + else + masm.mul32(Imm32(value), regs.result, regs.result); + } else { + if (reg.isSet()) { + overflow = masm.branchMul32(Assembler::Overflow, reg.reg(), regs.result); + } else { + overflow = masm.branchMul32(Assembler::Overflow, Imm32(value), regs.result, + regs.result); + } + } if (maybeNegZero) { if (hasConstant) { diff --git a/js/src/methodjit/FrameState.cpp b/js/src/methodjit/FrameState.cpp index 347ba7d083d..65ceb02b14f 100644 --- a/js/src/methodjit/FrameState.cpp +++ b/js/src/methodjit/FrameState.cpp @@ -2653,9 +2653,8 @@ FrameState::allocForBinary(FrameEntry *lhs, FrameEntry *rhs, JSOp op, BinaryAllo } /* - * Data is a little more complicated. If the op is MUL, not all CPUs - * have multiplication on immediates, so a register is needed. Also, - * if the op is not commutative, the LHS _must_ be in a register. + * Allocate data registers. If the op is not commutative, the LHS + * _must_ be in a register. */ JS_ASSERT_IF(lhs->isConstant(), !rhs->isConstant()); JS_ASSERT_IF(rhs->isConstant(), !lhs->isConstant()); @@ -2664,23 +2663,16 @@ FrameState::allocForBinary(FrameEntry *lhs, FrameEntry *rhs, JSOp op, BinaryAllo if (backingLeft->data.inMemory()) { alloc.lhsData = tempRegForData(lhs); pinReg(alloc.lhsData.reg()); - } else if (op == JSOP_MUL || !commu) { + } else if (!commu) { JS_ASSERT(lhs->isConstant()); alloc.lhsData = allocReg(); alloc.extraFree = alloc.lhsData; masm.move(Imm32(lhs->getValue().toInt32()), alloc.lhsData.reg()); } } - if (!alloc.rhsData.isSet()) { - if (backingRight->data.inMemory()) { - alloc.rhsData = tempRegForData(rhs); - pinReg(alloc.rhsData.reg()); - } else if (op == JSOP_MUL) { - JS_ASSERT(rhs->isConstant()); - alloc.rhsData = allocReg(); - alloc.extraFree = alloc.rhsData; - masm.move(Imm32(rhs->getValue().toInt32()), alloc.rhsData.reg()); - } + if (!alloc.rhsData.isSet() && backingRight->data.inMemory()) { + alloc.rhsData = tempRegForData(rhs); + pinReg(alloc.rhsData.reg()); } alloc.lhsNeedsRemat = false; From e19737736640cb50f8e3866d3d15d48cb84990a3 Mon Sep 17 00:00:00 2001 From: Jonas Sicking Date: Mon, 12 Sep 2011 14:00:59 -0400 Subject: [PATCH 41/71] Bug 684927 - unchecked null pointer in nsMenuBarListener::KeyUp; r=smaug --- layout/xul/base/src/nsMenuBarListener.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/layout/xul/base/src/nsMenuBarListener.cpp b/layout/xul/base/src/nsMenuBarListener.cpp index 430beed3192..7101439a389 100644 --- a/layout/xul/base/src/nsMenuBarListener.cpp +++ b/layout/xul/base/src/nsMenuBarListener.cpp @@ -141,6 +141,11 @@ nsMenuBarListener::ToggleMenuActiveState() nsresult nsMenuBarListener::KeyUp(nsIDOMEvent* aKeyEvent) { + nsCOMPtr keyEvent = do_QueryInterface(aKeyEvent); + if (!keyEvent) { + return NS_OK; + } + InitAccessKey(); //handlers shouldn't be triggered by non-trusted events. @@ -159,7 +164,6 @@ nsMenuBarListener::KeyUp(nsIDOMEvent* aKeyEvent) // On a press of the ALT key by itself, we toggle the menu's // active/inactive state. // Get the ascii key code. - nsCOMPtr keyEvent = do_QueryInterface(aKeyEvent); PRUint32 theChar; keyEvent->GetKeyCode(&theChar); From 07e94b08a58a5c5954bc9afd40bd9460f5f6ce9b Mon Sep 17 00:00:00 2001 From: Igor Bukanov Date: Mon, 12 Sep 2011 11:43:47 +0200 Subject: [PATCH 42/71] bug 686279 - fixing GCC 4.6 warnings under js/src. r=luke --- js/src/jsemit.cpp | 6 ++---- js/src/jslock.cpp | 8 ++------ js/src/jsopcode.cpp | 3 +-- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/js/src/jsemit.cpp b/js/src/jsemit.cpp index 1065fe3e4d6..5e30a01f0dd 100644 --- a/js/src/jsemit.cpp +++ b/js/src/jsemit.cpp @@ -4353,7 +4353,7 @@ static JSBool EmitVariables(JSContext *cx, JSCodeGenerator *cg, JSParseNode *pn, JSBool inLetHead, ptrdiff_t *headNoteIndex) { - bool let, forInVar, first; + bool forInVar, first; ptrdiff_t off, noteIndex, tmp; JSParseNode *pn2, *pn3, *next; JSOp op; @@ -4375,7 +4375,7 @@ EmitVariables(JSContext *cx, JSCodeGenerator *cg, JSParseNode *pn, * to the start of the block, a 'for (let x = i...) ...' loop evaluates i * in the containing scope, and puts x in the loop body's scope. */ - let = (pn->pn_op == JSOP_NOP); + DebugOnly let = (pn->pn_op == JSOP_NOP); forInVar = (pn->pn_xflags & PNX_FORINVAR) != 0; off = noteIndex = -1; @@ -5954,7 +5954,6 @@ js_EmitTree(JSContext *cx, JSCodeGenerator *cg, JSParseNode *pn) case TOK_CATCH: { ptrdiff_t catchStart, guardJump; - JSObject *blockObj; /* * Morph STMT_BLOCK to STMT_CATCH, note the block entry code offset, @@ -5964,7 +5963,6 @@ js_EmitTree(JSContext *cx, JSCodeGenerator *cg, JSParseNode *pn) JS_ASSERT(stmt->type == STMT_BLOCK && (stmt->flags & SIF_SCOPE)); stmt->type = STMT_CATCH; catchStart = stmt->update; - blockObj = stmt->blockBox->object; /* Go up one statement info record to the TRY or FINALLY record. */ stmt = stmt->down; diff --git a/js/src/jslock.cpp b/js/src/jslock.cpp index 9dbfcfbd9c2..a9bb5c2301c 100644 --- a/js/src/jslock.cpp +++ b/js/src/jslock.cpp @@ -592,8 +592,6 @@ static int js_SuspendThread(JSThinLock *tl) { JSFatLock *fl; - PRStatus stat; - if (tl->fat == NULL) fl = tl->fat = GetFatlock(tl); else @@ -602,7 +600,7 @@ js_SuspendThread(JSThinLock *tl) fl->susp++; PR_Lock(fl->slock); js_UnlockGlobal(tl); - stat = PR_WaitCondVar(fl->svar, PR_INTERVAL_NO_TIMEOUT); + DebugOnly stat = PR_WaitCondVar(fl->svar, PR_INTERVAL_NO_TIMEOUT); JS_ASSERT(stat != PR_FAILURE); PR_Unlock(fl->slock); js_LockGlobal(tl); @@ -622,13 +620,11 @@ static void js_ResumeThread(JSThinLock *tl) { JSFatLock *fl = tl->fat; - PRStatus stat; - JS_ASSERT(fl != NULL); JS_ASSERT(fl->susp > 0); PR_Lock(fl->slock); js_UnlockGlobal(tl); - stat = PR_NotifyCondVar(fl->svar); + DebugOnly stat = PR_NotifyCondVar(fl->svar); JS_ASSERT(stat != PR_FAILURE); PR_Unlock(fl->slock); } diff --git a/js/src/jsopcode.cpp b/js/src/jsopcode.cpp index 99d3855a000..67c93a21416 100644 --- a/js/src/jsopcode.cpp +++ b/js/src/jsopcode.cpp @@ -1675,7 +1675,7 @@ DecompileDestructuring(SprintStack *ss, jsbytecode *pc, jsbytecode *endpc) ptrdiff_t head; JSContext *cx; JSPrinter *jp; - JSOp op, saveop; + JSOp op; const JSCodeSpec *cs; uintN oplen; jsint i, lasti; @@ -1710,7 +1710,6 @@ DecompileDestructuring(SprintStack *ss, jsbytecode *pc, jsbytecode *endpc) #endif LOAD_OP_DATA(pc); - saveop = op; switch (op) { case JSOP_POP: From 98481b7efb953000adc5c9f6e696130c0e39e5c1 Mon Sep 17 00:00:00 2001 From: "Brian R. Bondy" Date: Mon, 12 Sep 2011 07:25:41 -0700 Subject: [PATCH 43/71] Bug 685847 - Crash in [@ ILFindLastID ]. r=jimm --- xpcom/io/nsLocalFileWin.cpp | 19 +++++++------------ xpcom/io/nsLocalFileWin.h | 4 +--- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/xpcom/io/nsLocalFileWin.cpp b/xpcom/io/nsLocalFileWin.cpp index 668f3ed78aa..108df6194e0 100644 --- a/xpcom/io/nsLocalFileWin.cpp +++ b/xpcom/io/nsLocalFileWin.cpp @@ -105,7 +105,6 @@ unsigned char *_mbsstr( const unsigned char *str, #endif ILCreateFromPathWPtr nsLocalFile::sILCreateFromPathW = NULL; -ILFreePtr nsLocalFile::sILFree = NULL; SHOpenFolderAndSelectItemsPtr nsLocalFile::sSHOpenFolderAndSelectItems = NULL; PRLibrary *nsLocalFile::sLibShell = NULL; @@ -2739,8 +2738,7 @@ nsLocalFile::RevealUsingShell() { // All of these shell32.dll related pointers should be non NULL // on XP and later. - if (!sLibShell || !sILCreateFromPathW || - !sILFree || !sSHOpenFolderAndSelectItems) { + if (!sLibShell || !sILCreateFromPathW || !sSHOpenFolderAndSelectItems) { return NS_ERROR_FAILURE; } @@ -2757,11 +2755,11 @@ nsLocalFile::RevealUsingShell() } const ITEMIDLIST* selection[] = { dir }; - UINT count = sizeof(selection) / sizeof(ITEMIDLIST); + UINT count = PR_ARRAY_SIZE(selection); //Perform the open of the directory. hr = sSHOpenFolderAndSelectItems(dir, count, selection, 0); - sILFree(dir); + CoTaskMemFree(dir); } else { // Obtain the parent path of the item we are revealing. @@ -2781,18 +2779,18 @@ nsLocalFile::RevealUsingShell() // Set the item in the directory to select to the file we want to reveal. ITEMIDLIST *item = sILCreateFromPathW(mResolvedPath.get()); if (!item) { - sILFree(dir); + CoTaskMemFree(dir); return NS_ERROR_FAILURE; } const ITEMIDLIST* selection[] = { item }; - UINT count = sizeof(selection) / sizeof(ITEMIDLIST); + UINT count = PR_ARRAY_SIZE(selection); //Perform the selection of the file. hr = sSHOpenFolderAndSelectItems(dir, count, selection, 0); - sILFree(dir); - sILFree(item); + CoTaskMemFree(dir); + CoTaskMemFree(item); } if (SUCCEEDED(hr)) { @@ -3106,9 +3104,6 @@ nsLocalFile::GlobalInit() PR_FindFunctionSymbol(sLibShell, "ILCreateFromPathW"); - // ILFree is available in XP and up. - sILFree = (ILFreePtr) PR_FindFunctionSymbol(sLibShell, "ILFree"); - // SHOpenFolderAndSelectItems is available in XP and up. sSHOpenFolderAndSelectItems = (SHOpenFolderAndSelectItemsPtr) PR_FindFunctionSymbol(sLibShell, diff --git a/xpcom/io/nsLocalFileWin.h b/xpcom/io/nsLocalFileWin.h index d95fbf46581..bf2c23a98e3 100644 --- a/xpcom/io/nsLocalFileWin.h +++ b/xpcom/io/nsLocalFileWin.h @@ -64,8 +64,7 @@ DEFINE_OLEGUID(IID_IPersistFile, 0x0000010BL, 0, 0); #include typedef LPITEMIDLIST (WINAPI *ILCreateFromPathWPtr)(PCWSTR); -typedef void (WINAPI *ILFreePtr)(LPITEMIDLIST); -typedef HRESULT (WINAPI *SHOpenFolderAndSelectItemsPtr)(LPCITEMIDLIST, UINT, +typedef HRESULT (WINAPI *SHOpenFolderAndSelectItemsPtr)(PCIDLIST_ABSOLUTE, UINT, PCUITEMID_CHILD_ARRAY, DWORD); @@ -140,7 +139,6 @@ private: nsresult RevealUsingShell(); // Uses newer shell API to reveal the path static ILCreateFromPathWPtr sILCreateFromPathW; - static ILFreePtr sILFree; static SHOpenFolderAndSelectItemsPtr sSHOpenFolderAndSelectItems; static PRLibrary *sLibShell; }; From a5776f9137a1b04b082fde61e1f71e050f465ecb Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Mon, 12 Sep 2011 14:30:31 -0400 Subject: [PATCH 44/71] Bug 680255 - Add Urdu to the list of RTL languages; r=Pike,smontagu --- modules/libpref/src/init/all.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js index cb7c0ee2f9c..a02732eff85 100644 --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -1110,6 +1110,7 @@ pref("font.language.group", "chrome://global/locale/intl.propert pref("intl.uidirection.ar", "rtl"); pref("intl.uidirection.he", "rtl"); pref("intl.uidirection.fa", "rtl"); +pref("intl.uidirection.ur", "rtl"); // use en-US hyphenation by default for content tagged with plain lang="en" pref("intl.hyphenation-alias.en", "en-us"); From 1ca191be2bf8a8abafd64710540f053c9704f982 Mon Sep 17 00:00:00 2001 From: Fabien Cazenave Date: Mon, 12 Sep 2011 15:25:38 -0400 Subject: [PATCH 45/71] Bug 570144 - After pressing Enter, editable DIVs in list items are duplicated; r=ehsan --- editor/libeditor/html/nsHTMLEditRules.cpp | 4 +- editor/libeditor/html/tests/Makefile.in | 1 + .../libeditor/html/tests/test_bug460740.html | 4 +- .../libeditor/html/tests/test_bug570144.html | 123 ++++++++++++++++++ 4 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 editor/libeditor/html/tests/test_bug570144.html diff --git a/editor/libeditor/html/nsHTMLEditRules.cpp b/editor/libeditor/html/nsHTMLEditRules.cpp index fa2b1189f58..905c1395d2f 100644 --- a/editor/libeditor/html/nsHTMLEditRules.cpp +++ b/editor/libeditor/html/nsHTMLEditRules.cpp @@ -1612,7 +1612,7 @@ nsHTMLEditRules::WillInsertBreak(nsISelection *aSelection, PRBool *aCancel, PRBo } nsCOMPtr listItem = IsInListItem(blockParent); - if (listItem) + if (listItem && listItem != hostNode) { res = ReturnInListItem(aSelection, listItem, node, offset); *aHandled = PR_TRUE; @@ -6507,6 +6507,7 @@ nsHTMLEditRules::MakeTransitionList(nsCOMArray& inArrayOfNodes, /////////////////////////////////////////////////////////////////////////// // IsInListItem: if aNode is the descendant of a listitem, return that li. // But table element boundaries are stoppers on the search. +// Also stops on the active editor host (contenteditable). // Also test if aNode is an li itself. // nsCOMPtr @@ -6520,6 +6521,7 @@ nsHTMLEditRules::IsInListItem(nsIDOMNode *aNode) while (parent) { + if (!mHTMLEditor->IsNodeInActiveEditor(parent)) return nsnull; if (nsHTMLEditUtils::IsTableElement(parent)) return nsnull; if (nsHTMLEditUtils::IsListItem(parent)) return parent; tmp=parent; tmp->GetParentNode(getter_AddRefs(parent)); diff --git a/editor/libeditor/html/tests/Makefile.in b/editor/libeditor/html/tests/Makefile.in index 6f72aa83471..32866c44f95 100644 --- a/editor/libeditor/html/tests/Makefile.in +++ b/editor/libeditor/html/tests/Makefile.in @@ -73,6 +73,7 @@ _TEST_FILES = \ file_bug549262.html \ test_bug550434.html \ test_bug551704.html \ + test_bug570144.html \ test_bug592592.html \ test_bug597784.html \ test_bug599322.html \ diff --git a/editor/libeditor/html/tests/test_bug460740.html b/editor/libeditor/html/tests/test_bug460740.html index 517e9e1a154..5db1ed7db04 100644 --- a/editor/libeditor/html/tests/test_bug460740.html +++ b/editor/libeditor/html/tests/test_bug460740.html @@ -84,8 +84,8 @@ function split(element, caretPos) { // put the caret on the requested position var range = document.createRange(); var sel = window.getSelection(); - range.setStart(element.firstChild, len); - range.setEnd(element.firstChild, len); + range.setStart(element.firstChild, pos); + range.setEnd(element.firstChild, pos); sel.addRange(range); // simulates a [Return] keypress diff --git a/editor/libeditor/html/tests/test_bug570144.html b/editor/libeditor/html/tests/test_bug570144.html new file mode 100644 index 00000000000..e3b98b8d62d --- /dev/null +++ b/editor/libeditor/html/tests/test_bug570144.html @@ -0,0 +1,123 @@ + + + + + Test for Bug 570144 + + + + + +Mozilla Bug 570144 +

+
+ +
+
    +
  1. foo

  2. +
+
    +
  • foo

  • +
+
+
foo
+

bar

+
+
+ +
+
    +
  1. foo

  2. +
+
    +
  • foo

  • +
+
+
foo
+

bar

+
+
+ +
+
    +
  1. foo

  2. +
+
    +
  • foo

  • +
+
+
foo
+

bar

+
+
+
+ +
+
+
+ + From e2ea57fc873eaecfae965cb3490e4373d21d0226 Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Mon, 12 Sep 2011 21:49:37 +0100 Subject: [PATCH 46/71] bug 686190 - crashtest. r=jdaggett --HG-- rename : layout/reftests/fonts/Prototype.ttf => gfx/tests/crashtests/Prototype.ttf --- gfx/tests/crashtests/686190-1.html | 18 ++++++++++++++++++ gfx/tests/crashtests/Prototype.ttf | Bin 0 -> 29592 bytes gfx/tests/crashtests/crashtests.list | 1 + 3 files changed, 19 insertions(+) create mode 100644 gfx/tests/crashtests/686190-1.html create mode 100644 gfx/tests/crashtests/Prototype.ttf diff --git a/gfx/tests/crashtests/686190-1.html b/gfx/tests/crashtests/686190-1.html new file mode 100644 index 00000000000..26cda094fa8 --- /dev/null +++ b/gfx/tests/crashtests/686190-1.html @@ -0,0 +1,18 @@ + + + + + +xyzzy + + diff --git a/gfx/tests/crashtests/Prototype.ttf b/gfx/tests/crashtests/Prototype.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c70bf00f47201e79fdf14cb5483302fe6ff8ffaf GIT binary patch literal 29592 zcmcJ&2YejG`8Pf@d%JtL*Zb*Cx?a@V>2zwAWLcKG+zU3iVH+FVuuU!H#<(X%m=b7huW`|Hh zh?N{qBrTw1M=U?MI zxpK{>BmcfDZ~!680?6;BLzZt?TQMn|C*+{dQC|7#bq6k4^TbJS5wgaJI()un$&u?R zB_9y7mOmd|yJXGsLsG4;5VFog2wS#(-NsEfs7H+@z2G({qT7LT5nJ&`VkdS$2XO#8i4)L8T*V)Vo45fz0(yxD$3EgM zeoy?w2N)oJz%mj543aXy5D6Clhm?~LU1PP2wa5m>_Y$ zBuNy%BPo&uOp_E~M!-svE`Cd@NCvQ)R07tJD!^J&UHpdBks82yQVZBX>Hr%_Jzx`Q zD1J?vNh4sEGy%4dX22ZD7XL+BNef_}9iz97Q?+yGdv9 zpQML$0rrwnfTKw_U?1rzeo4lVUci1b8gMM>0~{b@0LPL3;y=iEG8S+G833F}#sN+u z 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 M&Gjpr8gqpFA28ft3IG5A literal 0 HcmV?d00001 diff --git a/gfx/tests/crashtests/crashtests.list b/gfx/tests/crashtests/crashtests.list index ac7c54dedd8..c7854ee8561 100644 --- a/gfx/tests/crashtests/crashtests.list +++ b/gfx/tests/crashtests/crashtests.list @@ -84,3 +84,4 @@ load 594654-1.xhtml load 595727-1.html load 633453-1.html load 633322-1.html +load 686190-1.html From 36590a83d9f2fff3963e631436477d7e6cdd0142 Mon Sep 17 00:00:00 2001 From: "Brian R. Bondy" Date: Mon, 12 Sep 2011 17:52:37 -0400 Subject: [PATCH 47/71] Bug 679196 - Mem leak when preferred effect is set for drag and drop; r=neil --- widget/src/windows/nsNativeDragTarget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widget/src/windows/nsNativeDragTarget.cpp b/widget/src/windows/nsNativeDragTarget.cpp index 80a8a662f4c..2a91e7f9525 100644 --- a/widget/src/windows/nsNativeDragTarget.cpp +++ b/widget/src/windows/nsNativeDragTarget.cpp @@ -280,6 +280,8 @@ nsNativeDragTarget::DragEnter(LPDATAOBJECT pIDataSource, // Mask effect coming from function call with effect preferred by the source. mMovePreferred = (preferredEffect & DROPEFFECT_MOVE) != 0; + + nsMemory::Free(tempOutData); } else { mMovePreferred = PR_FALSE; } From d64a6c313b91e7804331fde59f6794606ffb6366 Mon Sep 17 00:00:00 2001 From: "Brian R. Bondy" Date: Mon, 12 Sep 2011 18:38:57 -0400 Subject: [PATCH 48/71] Bug 574005 - Make obtaining CF_HTML directly work on Windows and Linux (application/x-moz-nativehtml); r=ehsan --- editor/libeditor/html/tests/test_CF_HTML_clipboard.html | 9 +-------- widget/src/xpwidgets/nsPrimitiveHelpers.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/editor/libeditor/html/tests/test_CF_HTML_clipboard.html b/editor/libeditor/html/tests/test_CF_HTML_clipboard.html index 4c40d88a857..8f48c4b7468 100644 --- a/editor/libeditor/html/tests/test_CF_HTML_clipboard.html +++ b/editor/libeditor/html/tests/test_CF_HTML_clipboard.html @@ -136,14 +136,7 @@ function runTest() { }, SimpleTest.finish); } -var isMac = ("nsILocalFileMac" in Components.interfaces); -if (isMac) - SimpleTest.waitForFocus(runTest); -else { - // This test is not yet supported on non-Mac platforms, see bug 574005. - todo(false, "Test not supported on this platform"); - SimpleTest.finish(); -} +SimpleTest.waitForFocus(runTest); diff --git a/widget/src/xpwidgets/nsPrimitiveHelpers.cpp b/widget/src/xpwidgets/nsPrimitiveHelpers.cpp index 09b9ae66fdf..45523552399 100644 --- a/widget/src/xpwidgets/nsPrimitiveHelpers.cpp +++ b/widget/src/xpwidgets/nsPrimitiveHelpers.cpp @@ -143,6 +143,15 @@ nsPrimitiveHelpers :: CreateDataFromPrimitive ( const char* aFlavor, nsISupports plainText->GetData ( data ); *aDataBuff = ToNewCString(data); } + // CF_HTML only supports single byte. + // Reference: http://msdn.microsoft.com/en-us/library/aa767917(v=vs.85).aspx + } else if ( strcmp(aFlavor,kNativeHTMLMime) == 0 ) { + nsCOMPtr plainText ( do_QueryInterface(aPrimitive) ); + if ( plainText ) { + nsCAutoString data; + plainText->GetData ( data ); + *aDataBuff = ToNewUnicode(data); + } } else { nsCOMPtr doubleByteText ( do_QueryInterface(aPrimitive) ); From 3acca1508d28835d123a4497523bbcfcccf5f697 Mon Sep 17 00:00:00 2001 From: Ed Morley Date: Tue, 13 Sep 2011 00:49:59 +0100 Subject: [PATCH 49/71] Backout changeset b8d354d37128 (bug 574005) for Linux M3 orange; a=bbondy --- editor/libeditor/html/tests/test_CF_HTML_clipboard.html | 9 ++++++++- widget/src/xpwidgets/nsPrimitiveHelpers.cpp | 9 --------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/editor/libeditor/html/tests/test_CF_HTML_clipboard.html b/editor/libeditor/html/tests/test_CF_HTML_clipboard.html index 8f48c4b7468..4c40d88a857 100644 --- a/editor/libeditor/html/tests/test_CF_HTML_clipboard.html +++ b/editor/libeditor/html/tests/test_CF_HTML_clipboard.html @@ -136,7 +136,14 @@ function runTest() { }, SimpleTest.finish); } -SimpleTest.waitForFocus(runTest); +var isMac = ("nsILocalFileMac" in Components.interfaces); +if (isMac) + SimpleTest.waitForFocus(runTest); +else { + // This test is not yet supported on non-Mac platforms, see bug 574005. + todo(false, "Test not supported on this platform"); + SimpleTest.finish(); +} diff --git a/widget/src/xpwidgets/nsPrimitiveHelpers.cpp b/widget/src/xpwidgets/nsPrimitiveHelpers.cpp index 45523552399..09b9ae66fdf 100644 --- a/widget/src/xpwidgets/nsPrimitiveHelpers.cpp +++ b/widget/src/xpwidgets/nsPrimitiveHelpers.cpp @@ -143,15 +143,6 @@ nsPrimitiveHelpers :: CreateDataFromPrimitive ( const char* aFlavor, nsISupports plainText->GetData ( data ); *aDataBuff = ToNewCString(data); } - // CF_HTML only supports single byte. - // Reference: http://msdn.microsoft.com/en-us/library/aa767917(v=vs.85).aspx - } else if ( strcmp(aFlavor,kNativeHTMLMime) == 0 ) { - nsCOMPtr plainText ( do_QueryInterface(aPrimitive) ); - if ( plainText ) { - nsCAutoString data; - plainText->GetData ( data ); - *aDataBuff = ToNewUnicode(data); - } } else { nsCOMPtr doubleByteText ( do_QueryInterface(aPrimitive) ); From 917dc01295464b778f15e08bc9f7e05da0476074 Mon Sep 17 00:00:00 2001 From: Richard Newman Date: Mon, 12 Sep 2011 17:25:24 -0700 Subject: [PATCH 50/71] Bug 686354 - hgignore addition for Vim swap files. r=ted --- .hgignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.hgignore b/.hgignore index af60947c152..3509e7a2bdb 100644 --- a/.hgignore +++ b/.hgignore @@ -7,6 +7,10 @@ (^|/)ID$ (^|/)\.DS_Store$ +# Vim swap files. +^\.sw.$ +.[^/]*\.sw.$ + # User files that may appear at the root ^\.mozconfig ^mozconfig$ From ecf4a2131ce3efd2b0953cae09531a39283312b5 Mon Sep 17 00:00:00 2001 From: "julian.reschke@greenbytes.de" Date: Mon, 12 Sep 2011 20:14:16 -0700 Subject: [PATCH 51/71] Bug 272541: Empty disposition type treated as 'attachment'. r=jduell --- js/src/xpconnect/src/xpc.msg | 1 + netwerk/base/public/nsNetError.h | 11 ++++++++ netwerk/base/public/nsNetUtil.h | 9 +++++-- netwerk/mime/nsMIMEHeaderParamImpl.cpp | 4 ++- netwerk/test/unit/test_bug272541.js | 37 ++++++++++++++++++++++++++ netwerk/test/unit/xpcshell.ini | 1 + 6 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 netwerk/test/unit/test_bug272541.js diff --git a/js/src/xpconnect/src/xpc.msg b/js/src/xpconnect/src/xpc.msg index b41a9d0bbca..410c3d6914f 100644 --- a/js/src/xpconnect/src/xpc.msg +++ b/js/src/xpconnect/src/xpc.msg @@ -175,6 +175,7 @@ XPC_MSG_DEF(NS_ERROR_IN_PROGRESS , "The requested action coul XPC_MSG_DEF(NS_ERROR_ALREADY_OPENED , "Channel is already open") XPC_MSG_DEF(NS_ERROR_INVALID_CONTENT_ENCODING , "The content encoding of the source document is incorrect") XPC_MSG_DEF(NS_ERROR_CORRUPTED_CONTENT , "Corrupted content was received from server") +XPC_MSG_DEF(NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY, "Couldn't extract first component from potentially corrupted header field") XPC_MSG_DEF(NS_ERROR_ALREADY_CONNECTED , "The connection is already established") XPC_MSG_DEF(NS_ERROR_NOT_CONNECTED , "The connection does not exist") XPC_MSG_DEF(NS_ERROR_CONNECTION_REFUSED , "The connection was refused") diff --git a/netwerk/base/public/nsNetError.h b/netwerk/base/public/nsNetError.h index 6ca2c5dd3c2..f3262599e0b 100644 --- a/netwerk/base/public/nsNetError.h +++ b/netwerk/base/public/nsNetError.h @@ -152,6 +152,17 @@ #define NS_ERROR_CORRUPTED_CONTENT \ NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_NETWORK, 29) +/** + * While parsing for the first component of a header field using + * syntax as in Content-Disposition or Content-Type, the first component + * was found to be empty, such as in: + * + * Content-Disposition: ; filename=foo + */ +#define NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY \ + NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_NETWORK, 34) + + /****************************************************************************** * Connectivity error codes: */ diff --git a/netwerk/base/public/nsNetUtil.h b/netwerk/base/public/nsNetUtil.h index 5e785470280..08e2ed8fc03 100644 --- a/netwerk/base/public/nsNetUtil.h +++ b/netwerk/base/public/nsNetUtil.h @@ -1943,8 +1943,13 @@ NS_GetContentDispositionFromHeader(const nsACString& aHeader, nsIChannel *aChan nsAutoString dispToken; rv = mimehdrpar->GetParameter(aHeader, "", fallbackCharset, PR_TRUE, nsnull, dispToken); - if (NS_FAILED(rv)) - return nsIChannel::DISPOSITION_ATTACHMENT; + + if (NS_FAILED(rv)) { + // special case (see bug 272541): empty disposition type handled as "inline" + return rv == NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY + ? nsIChannel::DISPOSITION_INLINE + : nsIChannel::DISPOSITION_ATTACHMENT; + } return NS_GetContentDispositionFromToken(dispToken); } diff --git a/netwerk/mime/nsMIMEHeaderParamImpl.cpp b/netwerk/mime/nsMIMEHeaderParamImpl.cpp index 49a79a2d066..c3c725024cc 100644 --- a/netwerk/mime/nsMIMEHeaderParamImpl.cpp +++ b/netwerk/mime/nsMIMEHeaderParamImpl.cpp @@ -57,6 +57,7 @@ #include "nsMIMEHeaderParamImpl.h" #include "nsReadableUtils.h" #include "nsNativeCharsetUtils.h" +#include "nsNetError.h" // static functions declared below are moved from mailnews/mime/src/comi18n.cpp @@ -181,7 +182,8 @@ nsMIMEHeaderParamImpl::GetParameterInternal(const char *aHeaderValue, for (; *str && *str != ';' && !nsCRT::IsAsciiSpace(*str); ++str) ; if (str == start) - return NS_ERROR_UNEXPECTED; + return NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY; + *aResult = (char *) nsMemory::Clone(start, (str - start) + 1); NS_ENSURE_TRUE(*aResult, NS_ERROR_OUT_OF_MEMORY); (*aResult)[str - start] = '\0'; // null-terminate diff --git a/netwerk/test/unit/test_bug272541.js b/netwerk/test/unit/test_bug272541.js new file mode 100644 index 00000000000..666f81ed5cd --- /dev/null +++ b/netwerk/test/unit/test_bug272541.js @@ -0,0 +1,37 @@ +/** + * Test for bug 272541: - Empty disposition type treated as "attachment" + */ + +const Cr = Components.results + +var tests = [ + [ /* the actual bug */ + "; filename=foo.html", + Cr.NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY], + [ /* regression check, but see bug 671204 */ + "filename=foo.html", + "filename=foo.html"], + [ /* sanity check */ + "attachment; filename=foo.html", + "attachment"], + ]; + +function run_test() { + + var mhp = Components.classes["@mozilla.org/network/mime-hdrparam;1"] + .getService(Components.interfaces.nsIMIMEHeaderParam); + + var unused = { value : null }; + + for (var i = 0; i < tests.length; ++i) { + dump("Testing " + tests[i] + "\n"); + try { + do_check_eq(mhp.getParameter(tests[i][0], "", "UTF-8", true, unused), + tests[i][1]); + } + catch (e) { + do_check_eq(e.result, tests[i][1]); + } + } +} + diff --git a/netwerk/test/unit/xpcshell.ini b/netwerk/test/unit/xpcshell.ini index 3b644e50459..2282ad8f898 100644 --- a/netwerk/test/unit/xpcshell.ini +++ b/netwerk/test/unit/xpcshell.ini @@ -16,6 +16,7 @@ skip-if = os == "android" [test_bug248970_cookie.js] [test_bug261425.js] [test_bug263127.js] +[test_bug272541.js] [test_bug321706.js] [test_bug331825.js] [test_bug336501.js] From 937a5b7ec87e8cb631c714a9d24ccc1947daf367 Mon Sep 17 00:00:00 2001 From: Doug Turner Date: Mon, 12 Sep 2011 21:27:04 -0700 Subject: [PATCH 52/71] Bug 686405 - Remove push-to-debug Android debug intent, and just sleep the thread. r=snorp --- embedding/android/GeckoApp.java | 42 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/embedding/android/GeckoApp.java b/embedding/android/GeckoApp.java index 560e00e0d1b..613726db6d1 100644 --- a/embedding/android/GeckoApp.java +++ b/embedding/android/GeckoApp.java @@ -85,8 +85,7 @@ abstract public class GeckoApp private BroadcastReceiver mConnectivityReceiver; private PhoneStateListener mPhoneStateListener; - enum LaunchState {PreLaunch, Launching, WaitButton, - Launched, GeckoRunning, GeckoExiting}; + enum LaunchState {PreLaunch, Launching, Launched, GeckoRunning, GeckoExiting}; private static LaunchState sLaunchState = LaunchState.PreLaunch; private static boolean sTryCatchAttached = false; @@ -301,43 +300,42 @@ abstract public class GeckoApp return; } final String action = intent.getAction(); - if (ACTION_DEBUG.equals(action) && - checkAndSetLaunchState(LaunchState.Launching, LaunchState.WaitButton)) { - final Button launchButton = new Button(this); - launchButton.setText("Launch"); // don't need to localize - launchButton.setOnClickListener(new Button.OnClickListener() { - public void onClick (View v) { - // hide the button so we can't be launched again - mainLayout.removeView(launchButton); - setLaunchState(LaunchState.Launching); - launch(null); - } - }); - mainLayout.addView(launchButton, 300, 200); - return; - } - if (checkLaunchState(LaunchState.WaitButton) || launch(intent)) - return; if (Intent.ACTION_MAIN.equals(action)) { Log.i(LOG_FILE_NAME, "Intent : ACTION_MAIN"); GeckoAppShell.sendEventToGecko(new GeckoEvent("")); + return; } - else if (Intent.ACTION_VIEW.equals(action)) { + + if (Intent.ACTION_VIEW.equals(action)) { String uri = intent.getDataString(); GeckoAppShell.sendEventToGecko(new GeckoEvent(uri)); Log.i(LOG_FILE_NAME,"onNewIntent: "+uri); + return; } - else if (ACTION_WEBAPP.equals(action)) { + + if (ACTION_WEBAPP.equals(action)) { String uri = intent.getStringExtra("args"); GeckoAppShell.sendEventToGecko(new GeckoEvent(uri)); Log.i(LOG_FILE_NAME,"Intent : WEBAPP - " + uri); + return; } - else if (ACTION_BOOKMARK.equals(action)) { + + if (ACTION_BOOKMARK.equals(action)) { String args = intent.getStringExtra("args"); GeckoAppShell.sendEventToGecko(new GeckoEvent(args)); Log.i(LOG_FILE_NAME,"Intent : BOOKMARK - " + args); + return; } + + if (ACTION_DEBUG.equals(action)) { + // Wait for 5 seconds until the debugger can attach. + try { + Thread.sleep(5000); + } catch (InterruptedException e) {} + } + + launch(intent); } @Override From f3adbeb063e216981c3300ce45b1abbda26f3bde Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Mon, 12 Sep 2011 23:25:01 -0700 Subject: [PATCH 53/71] Back out 091bdb10d017 (bug 686405) for apparently completely breaking Android --- embedding/android/GeckoApp.java | 42 +++++++++++++++++---------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/embedding/android/GeckoApp.java b/embedding/android/GeckoApp.java index 613726db6d1..560e00e0d1b 100644 --- a/embedding/android/GeckoApp.java +++ b/embedding/android/GeckoApp.java @@ -85,7 +85,8 @@ abstract public class GeckoApp private BroadcastReceiver mConnectivityReceiver; private PhoneStateListener mPhoneStateListener; - enum LaunchState {PreLaunch, Launching, Launched, GeckoRunning, GeckoExiting}; + enum LaunchState {PreLaunch, Launching, WaitButton, + Launched, GeckoRunning, GeckoExiting}; private static LaunchState sLaunchState = LaunchState.PreLaunch; private static boolean sTryCatchAttached = false; @@ -300,42 +301,43 @@ abstract public class GeckoApp return; } final String action = intent.getAction(); + if (ACTION_DEBUG.equals(action) && + checkAndSetLaunchState(LaunchState.Launching, LaunchState.WaitButton)) { + final Button launchButton = new Button(this); + launchButton.setText("Launch"); // don't need to localize + launchButton.setOnClickListener(new Button.OnClickListener() { + public void onClick (View v) { + // hide the button so we can't be launched again + mainLayout.removeView(launchButton); + setLaunchState(LaunchState.Launching); + launch(null); + } + }); + mainLayout.addView(launchButton, 300, 200); + return; + } + if (checkLaunchState(LaunchState.WaitButton) || launch(intent)) + return; if (Intent.ACTION_MAIN.equals(action)) { Log.i(LOG_FILE_NAME, "Intent : ACTION_MAIN"); GeckoAppShell.sendEventToGecko(new GeckoEvent("")); - return; } - - if (Intent.ACTION_VIEW.equals(action)) { + else if (Intent.ACTION_VIEW.equals(action)) { String uri = intent.getDataString(); GeckoAppShell.sendEventToGecko(new GeckoEvent(uri)); Log.i(LOG_FILE_NAME,"onNewIntent: "+uri); - return; } - - if (ACTION_WEBAPP.equals(action)) { + else if (ACTION_WEBAPP.equals(action)) { String uri = intent.getStringExtra("args"); GeckoAppShell.sendEventToGecko(new GeckoEvent(uri)); Log.i(LOG_FILE_NAME,"Intent : WEBAPP - " + uri); - return; } - - if (ACTION_BOOKMARK.equals(action)) { + else if (ACTION_BOOKMARK.equals(action)) { String args = intent.getStringExtra("args"); GeckoAppShell.sendEventToGecko(new GeckoEvent(args)); Log.i(LOG_FILE_NAME,"Intent : BOOKMARK - " + args); - return; } - - if (ACTION_DEBUG.equals(action)) { - // Wait for 5 seconds until the debugger can attach. - try { - Thread.sleep(5000); - } catch (InterruptedException e) {} - } - - launch(intent); } @Override From 2d3c5435af39249da59233264f61242cbe8bd0cd Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Tue, 13 Sep 2011 18:08:17 +0900 Subject: [PATCH 54/71] Bug 685468 - warnaserr: js/src/jsinterp.cpp(6176) : warning C4805: '&=' : unsafe mix of type 'JSBool' and type 'bool' in operation. r=luke --- js/src/jsinterp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/src/jsinterp.cpp b/js/src/jsinterp.cpp index 6e904fdbdbe..fc524050293 100644 --- a/js/src/jsinterp.cpp +++ b/js/src/jsinterp.cpp @@ -6173,7 +6173,7 @@ END_CASE(JSOP_ARRAYPUSH) * When a trap handler returns JSTRAP_RETURN, we jump here with * interpReturnOK set to true bypassing any finally blocks. */ - interpReturnOK &= UnwindScope(cx, 0, interpReturnOK || cx->isExceptionPending()); + interpReturnOK &= (JSBool)UnwindScope(cx, 0, interpReturnOK || cx->isExceptionPending()); JS_ASSERT(regs.sp == regs.fp()->base()); if (entryFrame != regs.fp()) From 4e48c59dfdc51f54f4b4016c46cc5fc943bd48b6 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Tue, 13 Sep 2011 07:08:31 -0700 Subject: [PATCH 55/71] Bug 686379 - Back out bug 660686 and bug 686379 because of problems scrolling preferences --- mobile/chrome/content/bindings.xml | 36 ------------ mobile/chrome/content/browser.css | 6 +- mobile/chrome/tests/Makefile.in | 1 - .../tests/browser_preferences_fulltoggle.js | 58 ------------------- mobile/themes/core/gingerbread/browser.css | 4 -- 5 files changed, 3 insertions(+), 102 deletions(-) delete mode 100644 mobile/chrome/tests/browser_preferences_fulltoggle.js diff --git a/mobile/chrome/content/bindings.xml b/mobile/chrome/content/bindings.xml index 8cc18199d17..2e043207b9c 100644 --- a/mobile/chrome/content/bindings.xml +++ b/mobile/chrome/content/bindings.xml @@ -1852,40 +1852,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mobile/chrome/content/browser.css b/mobile/chrome/content/browser.css index a2a7ba4f1b1..f9a8b3113e1 100644 --- a/mobile/chrome/content/browser.css +++ b/mobile/chrome/content/browser.css @@ -27,15 +27,15 @@ settings { } setting[type="bool"] { - -moz-binding: url("chrome://browser/content/bindings.xml#setting-fulltoggle-bool"); + -moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-bool"); } setting[type="bool"][localized="true"] { - -moz-binding: url("chrome://browser/content/bindings.xml#setting-fulltoggle-localized-bool"); + -moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-localized-bool"); } setting[type="boolint"] { - -moz-binding: url("chrome://browser/content/bindings.xml#setting-fulltoggle-boolint"); + -moz-binding: url("chrome://mozapps/content/extensions/setting.xml#setting-boolint"); } setting[type="integer"] { diff --git a/mobile/chrome/tests/Makefile.in b/mobile/chrome/tests/Makefile.in index 28de2a13aaa..c36b3d13477 100644 --- a/mobile/chrome/tests/Makefile.in +++ b/mobile/chrome/tests/Makefile.in @@ -74,7 +74,6 @@ _BROWSER_FILES = \ browser_history.js \ browser_mainui.js \ browser_preferences_text.js \ - browser_preferences_fulltoggle.js \ browser_rect.js \ browser_rememberPassword.js \ browser_scroll.js \ diff --git a/mobile/chrome/tests/browser_preferences_fulltoggle.js b/mobile/chrome/tests/browser_preferences_fulltoggle.js deleted file mode 100644 index 0e660384967..00000000000 --- a/mobile/chrome/tests/browser_preferences_fulltoggle.js +++ /dev/null @@ -1,58 +0,0 @@ -// browser-chrome test for fennec preferences to toggle values while clicking on the preference name - -var gTests = []; -var gCurrentTest = null; - -function test() { - // The "runNextTest" approach is async, so we need to call "waitForExplicitFinish()" - // We call "finish()" when the tests are finished - waitForExplicitFinish(); - - // Start the tests - runNextTest(); -} -//------------------------------------------------------------------------------ -// Iterating tests by shifting test out one by one as runNextTest is called. -function runNextTest() { - // Run the next test until all tests completed - if (gTests.length > 0) { - gCurrentTest = gTests.shift(); - info(gCurrentTest.desc); - gCurrentTest.run(); - } - else { - // Cleanup. All tests are completed at this point - finish(); - } -} - -// ----------------------------------------------------------------------------------------- -// Verify preferences and text -gTests.push({ - desc: "Verify full toggle on Preferences", - - run: function(){ - // 1.Click preferences to view prefs - document.getElementById("tool-panel-open").click(); - is(document.getElementById("panel-container").hidden, false, "Preferences should be visible"); - - var contentRegion = document.getElementById("prefs-content"); - - // Check for *Show images* - var imageRegion = document.getAnonymousElementByAttribute(contentRegion, "pref", "permissions.default.image"); - var imageValue = imageRegion.value; - var imageTitle = document.getAnonymousElementByAttribute(imageRegion, "class", "preferences-title"); - var imageButton = document.getAnonymousElementByAttribute(imageRegion, "anonid", "input"); - imageButton.click(); - is(imageRegion.value, !imageValue, "Tapping on input control should change the value"); - imageTitle.click(); - is(imageRegion.value, imageValue, "Tapping on the title should change the value"); - imageRegion.click(); - is(imageRegion.value, !imageValue, "Tapping on the setting should change the value"); - - BrowserUI.hidePanel(); - is(document.getElementById("panel-container").hidden, true, "Preferences panel should be closed"); - runNextTest(); - } -}); - diff --git a/mobile/themes/core/gingerbread/browser.css b/mobile/themes/core/gingerbread/browser.css index bf2b1fd683c..e75b3389fbe 100644 --- a/mobile/themes/core/gingerbread/browser.css +++ b/mobile/themes/core/gingerbread/browser.css @@ -1244,10 +1244,6 @@ setting { -moz-box-orient: horizontal; } -setting:hover:active { - background-color: @color_background_highlight@; -} - .setting-label { -moz-box-flex: 1; } From cd6af8f627e7d90617ed8b6908e696dbed11aba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20H=C3=A4nel?= Date: Tue, 13 Sep 2011 07:10:11 -0700 Subject: [PATCH 56/71] Bug 686450 - Hard-code layout DPI on Maemo [r=mbrubeck] --- mobile/app/mobile.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mobile/app/mobile.js b/mobile/app/mobile.js index e22c69cd20c..4c71d8bc2ff 100644 --- a/mobile/app/mobile.js +++ b/mobile/app/mobile.js @@ -78,9 +78,11 @@ pref("browser.viewport.desktopWidth", 980); #ifndef MOZ_PLATFORM_MAEMO // On desktop builds, simulate an MDPI tablet by default. pref("layout.css.dpi", 160); +#else +// Maemo X11 lies about its dpi +pref("layout.css.dpi", 240); #endif #endif - /* allow scrollbars to float above chrome ui */ pref("ui.scrollbarsCanOverlapContent", 1); From e41321f5dc60e3aff8b0ebcf0d0d04ca7f5a435d Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 13 Sep 2011 11:39:40 -0400 Subject: [PATCH 57/71] Bug 414178 - Do not allow to inject a list outside of the active editing host; r=roc --- .../libeditor/html/crashtests/414178-1.html | 22 +++++++++++++++++++ .../libeditor/html/crashtests/crashtests.list | 1 + editor/libeditor/html/nsHTMLEditRules.cpp | 7 ++++++ 3 files changed, 30 insertions(+) create mode 100644 editor/libeditor/html/crashtests/414178-1.html diff --git a/editor/libeditor/html/crashtests/414178-1.html b/editor/libeditor/html/crashtests/414178-1.html new file mode 100644 index 00000000000..19cc205b919 --- /dev/null +++ b/editor/libeditor/html/crashtests/414178-1.html @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/editor/libeditor/html/crashtests/crashtests.list b/editor/libeditor/html/crashtests/crashtests.list index 85e59eb1773..f5afec4c536 100644 --- a/editor/libeditor/html/crashtests/crashtests.list +++ b/editor/libeditor/html/crashtests/crashtests.list @@ -2,6 +2,7 @@ load 336081-1.xhtml load 382778-1.html load 407074-1.html load 407277-1.html +load 414178-1.html load 418923-1.html asserts(0-16) load 420439.html # Bug 439258 load 428489-1.html diff --git a/editor/libeditor/html/nsHTMLEditRules.cpp b/editor/libeditor/html/nsHTMLEditRules.cpp index 905c1395d2f..c6acf056b73 100644 --- a/editor/libeditor/html/nsHTMLEditRules.cpp +++ b/editor/libeditor/html/nsHTMLEditRules.cpp @@ -7335,6 +7335,13 @@ nsHTMLEditRules::SplitAsNeeded(const nsAString *aTag, // sniffing up the parent tree until we find // a legal place for the block if (!parent) break; + // Don't leave the active editing host + if (!mHTMLEditor->IsNodeInActiveEditor(parent)) { + nsCOMPtr parentContent = do_QueryInterface(parent); + if (parentContent != mHTMLEditor->GetActiveEditingHost()) { + break; + } + } if (mHTMLEditor->CanContainTag(parent, *aTag)) { tagParent = parent; From 562725a775098373d518ef46502c1bd66f72eb4f Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 13 Sep 2011 11:45:54 -0400 Subject: [PATCH 58/71] Bug 686247 - Text control frames should accept dynamic changes to the CSS overflow property; r=bzbarsky,surkov --- .../mochitest/tree/test_cssoverflow.html | 28 ++++++++----------- .../html/content/src/nsTextEditorState.cpp | 27 +++++++++++------- content/html/content/src/nsTextEditorState.h | 2 ++ .../editor/dynamic-overflow-change-ref.html | 13 +++++++++ .../editor/dynamic-overflow-change.html | 13 +++++++++ layout/reftests/editor/reftest.list | 1 + layout/style/nsStyleStruct.cpp | 4 +-- 7 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 layout/reftests/editor/dynamic-overflow-change-ref.html create mode 100644 layout/reftests/editor/dynamic-overflow-change.html diff --git a/accessible/tests/mochitest/tree/test_cssoverflow.html b/accessible/tests/mochitest/tree/test_cssoverflow.html index 1a955f80cee..c7d38e3e08e 100644 --- a/accessible/tests/mochitest/tree/test_cssoverflow.html +++ b/accessible/tests/mochitest/tree/test_cssoverflow.html @@ -32,11 +32,8 @@ this.link = getAccessible(this.linkNode); this.eventSeq = [ - new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) - ]; - - this.unexpectedEventSeq = [ - new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) + new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode), + new asyncInvokerChecker(EVENT_REORDER, this.linkNode.parentNode) ]; this.invoke = function focusAnchor_invoke() @@ -46,8 +43,8 @@ this.check = function focusAnchor_check(aEvent) { - is(this.link, aEvent.accessible, - "The link accessible shouldn't be recreated!"); + todo_is(this.link, aEvent.accessible, + "Focus should be fired against new link accessible!"); } this.getID = function focusAnchor_getID() @@ -62,11 +59,8 @@ this.link = getAccessible(this.linkNode); this.eventSeq = [ - new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) - ]; - - this.unexpectedEventSeq = [ - new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) + new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode), + new asyncInvokerChecker(EVENT_REORDER, this.linkNode.parentNode) ]; this.invoke = function tabAnchor_invoke() @@ -76,8 +70,8 @@ this.check = function tabAnchor_check(aEvent) { - is(this.link, aEvent.accessible, - "The link accessible shouldn't be recreated!"); + todo_isnot(this.link, aEvent.accessible, + "Focus should be fired against new link accessible!"); } this.getID = function tabAnchor_getID() @@ -126,9 +120,9 @@ Mozilla Bug 570275
- Mozilla Bug 606087 + title="Text control frames should accept dynamic changes to the CSS overflow property" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=686247"> + Mozilla Bug 686247

diff --git a/content/html/content/src/nsTextEditorState.cpp b/content/html/content/src/nsTextEditorState.cpp index b91a54bd083..28b24cf6ef2 100644 --- a/content/html/content/src/nsTextEditorState.cpp +++ b/content/html/content/src/nsTextEditorState.cpp @@ -1058,6 +1058,9 @@ nsTextEditorState::BindToFrame(nsTextControlFrame* aFrame) nsIContent *rootNode = GetRootNode(); + nsresult rv = InitializeRootNode(); + NS_ENSURE_SUCCESS(rv, rv); + nsIPresShell *shell = mBoundFrame->PresContext()->GetPresShell(); NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); @@ -1545,6 +1548,17 @@ nsTextEditorState::CreateRootNode() NOT_FROM_PARSER); NS_ENSURE_SUCCESS(rv, rv); + if (!IsSingleLineTextControl()) { + mMutationObserver = new nsAnonDivObserver(this); + mRootNode->AddMutationObserver(mMutationObserver); + } + + return rv; +} + +nsresult +nsTextEditorState::InitializeRootNode() +{ // Set the necessary classes on the text control. We use class values // instead of a 'style' attribute so that the style comes from a user-agent // style sheet and is still applied even if author styles are disabled. @@ -1564,19 +1578,12 @@ nsTextEditorState::CreateRootNode() disp->mOverflowX != NS_STYLE_OVERFLOW_CLIP) { classValue.AppendLiteral(" inherit-overflow"); } - - mMutationObserver = new nsAnonDivObserver(this); - NS_ENSURE_TRUE(mMutationObserver, NS_ERROR_OUT_OF_MEMORY); - mRootNode->AddMutationObserver(mMutationObserver); } - rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, - classValue, PR_FALSE); + nsresult rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, + classValue, PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); - rv = mBoundFrame->UpdateValueDisplay(PR_FALSE); - NS_ENSURE_SUCCESS(rv, rv); - - return rv; + return mBoundFrame->UpdateValueDisplay(PR_FALSE); } nsresult diff --git a/content/html/content/src/nsTextEditorState.h b/content/html/content/src/nsTextEditorState.h index 2e6a6b3a408..56d162dddb3 100644 --- a/content/html/content/src/nsTextEditorState.h +++ b/content/html/content/src/nsTextEditorState.h @@ -253,6 +253,8 @@ private: void DestroyEditor(); void Clear(); + nsresult InitializeRootNode(); + void FinishedRestoringSelection() { mRestoringSelection = nsnull; } class InitializationGuard { diff --git a/layout/reftests/editor/dynamic-overflow-change-ref.html b/layout/reftests/editor/dynamic-overflow-change-ref.html new file mode 100644 index 00000000000..52e5f5bb0dd --- /dev/null +++ b/layout/reftests/editor/dynamic-overflow-change-ref.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/layout/reftests/editor/dynamic-overflow-change.html b/layout/reftests/editor/dynamic-overflow-change.html new file mode 100644 index 00000000000..57a1b8f74ef --- /dev/null +++ b/layout/reftests/editor/dynamic-overflow-change.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/layout/reftests/editor/reftest.list b/layout/reftests/editor/reftest.list index 95c0302400d..4c51f404047 100644 --- a/layout/reftests/editor/reftest.list +++ b/layout/reftests/editor/reftest.list @@ -69,3 +69,4 @@ skip-if(Android) == 674212-spellcheck.html 674212-spellcheck-ref.html skip-if(Android) == 338427-2.html 338427-2-ref.html skip-if(Android) == 338427-3.html 338427-3-ref.html skip-if(Android) == 462758-grabbers-resizers.html 462758-grabbers-resizers-ref.html +== dynamic-overflow-change.html dynamic-overflow-change-ref.html diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp index 06a7f5cb234..f6217f120d7 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -2180,8 +2180,8 @@ nsChangeHint nsStyleDisplay::CalcDifference(const nsStyleDisplay& aOther) const || mPosition != aOther.mPosition || mDisplay != aOther.mDisplay || (mFloats == NS_STYLE_FLOAT_NONE) != (aOther.mFloats == NS_STYLE_FLOAT_NONE) - || (mOverflowX != aOther.mOverflowX && mDisplay != NS_STYLE_DISPLAY_INLINE) - || (mOverflowY != aOther.mOverflowY && mDisplay != NS_STYLE_DISPLAY_INLINE) + || mOverflowX != aOther.mOverflowX + || mOverflowY != aOther.mOverflowY || mResize != aOther.mResize) NS_UpdateHint(hint, nsChangeHint_ReconstructFrame); From 668abccef8a267bd67ecb42009bfc949b1a2b270 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 13 Sep 2011 13:29:30 -0400 Subject: [PATCH 59/71] Backed out changeset c9013399fa39 (bug 686247) because of mochitest-a11y failures on Linux --- .../mochitest/tree/test_cssoverflow.html | 28 +++++++++++-------- .../html/content/src/nsTextEditorState.cpp | 27 +++++++----------- content/html/content/src/nsTextEditorState.h | 2 -- .../editor/dynamic-overflow-change-ref.html | 13 --------- .../editor/dynamic-overflow-change.html | 13 --------- layout/reftests/editor/reftest.list | 1 - layout/style/nsStyleStruct.cpp | 4 +-- 7 files changed, 29 insertions(+), 59 deletions(-) delete mode 100644 layout/reftests/editor/dynamic-overflow-change-ref.html delete mode 100644 layout/reftests/editor/dynamic-overflow-change.html diff --git a/accessible/tests/mochitest/tree/test_cssoverflow.html b/accessible/tests/mochitest/tree/test_cssoverflow.html index c7d38e3e08e..1a955f80cee 100644 --- a/accessible/tests/mochitest/tree/test_cssoverflow.html +++ b/accessible/tests/mochitest/tree/test_cssoverflow.html @@ -32,8 +32,11 @@ this.link = getAccessible(this.linkNode); this.eventSeq = [ - new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode), - new asyncInvokerChecker(EVENT_REORDER, this.linkNode.parentNode) + new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) + ]; + + this.unexpectedEventSeq = [ + new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) ]; this.invoke = function focusAnchor_invoke() @@ -43,8 +46,8 @@ this.check = function focusAnchor_check(aEvent) { - todo_is(this.link, aEvent.accessible, - "Focus should be fired against new link accessible!"); + is(this.link, aEvent.accessible, + "The link accessible shouldn't be recreated!"); } this.getID = function focusAnchor_getID() @@ -59,8 +62,11 @@ this.link = getAccessible(this.linkNode); this.eventSeq = [ - new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode), - new asyncInvokerChecker(EVENT_REORDER, this.linkNode.parentNode) + new invokerChecker(EVENT_FOCUS, getAccessible, this.linkNode) + ]; + + this.unexpectedEventSeq = [ + new invokerChecker(EVENT_REORDER, this.linkNode.parentNode) ]; this.invoke = function tabAnchor_invoke() @@ -70,8 +76,8 @@ this.check = function tabAnchor_check(aEvent) { - todo_isnot(this.link, aEvent.accessible, - "Focus should be fired against new link accessible!"); + is(this.link, aEvent.accessible, + "The link accessible shouldn't be recreated!"); } this.getID = function tabAnchor_getID() @@ -120,9 +126,9 @@ Mozilla Bug 570275
- Mozilla Bug 686247 + title="Don't recreate frames for inlines with overflow style applied" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=606087"> + Mozilla Bug 606087

diff --git a/content/html/content/src/nsTextEditorState.cpp b/content/html/content/src/nsTextEditorState.cpp index 28b24cf6ef2..b91a54bd083 100644 --- a/content/html/content/src/nsTextEditorState.cpp +++ b/content/html/content/src/nsTextEditorState.cpp @@ -1058,9 +1058,6 @@ nsTextEditorState::BindToFrame(nsTextControlFrame* aFrame) nsIContent *rootNode = GetRootNode(); - nsresult rv = InitializeRootNode(); - NS_ENSURE_SUCCESS(rv, rv); - nsIPresShell *shell = mBoundFrame->PresContext()->GetPresShell(); NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE); @@ -1548,17 +1545,6 @@ nsTextEditorState::CreateRootNode() NOT_FROM_PARSER); NS_ENSURE_SUCCESS(rv, rv); - if (!IsSingleLineTextControl()) { - mMutationObserver = new nsAnonDivObserver(this); - mRootNode->AddMutationObserver(mMutationObserver); - } - - return rv; -} - -nsresult -nsTextEditorState::InitializeRootNode() -{ // Set the necessary classes on the text control. We use class values // instead of a 'style' attribute so that the style comes from a user-agent // style sheet and is still applied even if author styles are disabled. @@ -1578,12 +1564,19 @@ nsTextEditorState::InitializeRootNode() disp->mOverflowX != NS_STYLE_OVERFLOW_CLIP) { classValue.AppendLiteral(" inherit-overflow"); } + + mMutationObserver = new nsAnonDivObserver(this); + NS_ENSURE_TRUE(mMutationObserver, NS_ERROR_OUT_OF_MEMORY); + mRootNode->AddMutationObserver(mMutationObserver); } - nsresult rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, - classValue, PR_FALSE); + rv = mRootNode->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, + classValue, PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); - return mBoundFrame->UpdateValueDisplay(PR_FALSE); + rv = mBoundFrame->UpdateValueDisplay(PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + + return rv; } nsresult diff --git a/content/html/content/src/nsTextEditorState.h b/content/html/content/src/nsTextEditorState.h index 56d162dddb3..2e6a6b3a408 100644 --- a/content/html/content/src/nsTextEditorState.h +++ b/content/html/content/src/nsTextEditorState.h @@ -253,8 +253,6 @@ private: void DestroyEditor(); void Clear(); - nsresult InitializeRootNode(); - void FinishedRestoringSelection() { mRestoringSelection = nsnull; } class InitializationGuard { diff --git a/layout/reftests/editor/dynamic-overflow-change-ref.html b/layout/reftests/editor/dynamic-overflow-change-ref.html deleted file mode 100644 index 52e5f5bb0dd..00000000000 --- a/layout/reftests/editor/dynamic-overflow-change-ref.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/layout/reftests/editor/dynamic-overflow-change.html b/layout/reftests/editor/dynamic-overflow-change.html deleted file mode 100644 index 57a1b8f74ef..00000000000 --- a/layout/reftests/editor/dynamic-overflow-change.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/layout/reftests/editor/reftest.list b/layout/reftests/editor/reftest.list index 4c51f404047..95c0302400d 100644 --- a/layout/reftests/editor/reftest.list +++ b/layout/reftests/editor/reftest.list @@ -69,4 +69,3 @@ skip-if(Android) == 674212-spellcheck.html 674212-spellcheck-ref.html skip-if(Android) == 338427-2.html 338427-2-ref.html skip-if(Android) == 338427-3.html 338427-3-ref.html skip-if(Android) == 462758-grabbers-resizers.html 462758-grabbers-resizers-ref.html -== dynamic-overflow-change.html dynamic-overflow-change-ref.html diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp index f6217f120d7..06a7f5cb234 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -2180,8 +2180,8 @@ nsChangeHint nsStyleDisplay::CalcDifference(const nsStyleDisplay& aOther) const || mPosition != aOther.mPosition || mDisplay != aOther.mDisplay || (mFloats == NS_STYLE_FLOAT_NONE) != (aOther.mFloats == NS_STYLE_FLOAT_NONE) - || mOverflowX != aOther.mOverflowX - || mOverflowY != aOther.mOverflowY + || (mOverflowX != aOther.mOverflowX && mDisplay != NS_STYLE_DISPLAY_INLINE) + || (mOverflowY != aOther.mOverflowY && mDisplay != NS_STYLE_DISPLAY_INLINE) || mResize != aOther.mResize) NS_UpdateHint(hint, nsChangeHint_ReconstructFrame); From e72b8ae48359d794d0fae2afe0195bae6ac5220b Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 13 Sep 2011 15:40:27 -0400 Subject: [PATCH 60/71] Bug 686507 - Don't spam my console when processing IPDL files; r=bsmedberg DONTBUILD --- ipc/ipdl/ipdl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ipc/ipdl/ipdl.py b/ipc/ipdl/ipdl.py index 468f242ff5e..e47cd108a3d 100755 --- a/ipc/ipdl/ipdl.py +++ b/ipc/ipdl/ipdl.py @@ -82,7 +82,7 @@ def normalizedFilename(f): # First pass: parse and type-check all protocols for f in files: - log(1, os.path.basename(f)) + log(2, os.path.basename(f)) filename = normalizedFilename(f) if f == '-': fd = sys.stdin From ddec300c3467b7b38cb843ec6617e20bf3959f24 Mon Sep 17 00:00:00 2001 From: Mounir Lamouri Date: Tue, 13 Sep 2011 14:32:07 -0700 Subject: [PATCH 61/71] Bug 686545 - Fix build bustage with nsRefreshDriver/nsARefreshObserver not being defined. r=ehsan The buld bustage only appears with some options being disabled in the mozconfig. Likely, nsRefreshDriver.h is included by another hedear that isn't included when an option is disabled. --- accessible/src/base/NotificationController.h | 1 + layout/base/nsPresShell.h | 1 + 2 files changed, 2 insertions(+) diff --git a/accessible/src/base/NotificationController.h b/accessible/src/base/NotificationController.h index 7a8e5a31772..4d68413313f 100644 --- a/accessible/src/base/NotificationController.h +++ b/accessible/src/base/NotificationController.h @@ -41,6 +41,7 @@ #include "AccEvent.h" #include "nsCycleCollectionParticipant.h" +#include "nsRefreshDriver.h" class nsAccessible; class nsDocAccessible; diff --git a/layout/base/nsPresShell.h b/layout/base/nsPresShell.h index 5bd3e9486fb..9fd75d425f0 100644 --- a/layout/base/nsPresShell.h +++ b/layout/base/nsPresShell.h @@ -73,6 +73,7 @@ #include "nsFrameSelection.h" #include "nsGUIEvent.h" #include "nsContentUtils.h" +#include "nsRefreshDriver.h" class nsIRange; class nsIDragService; From bf277a24ea1cda0bba8f5c68ef17ebd022bc5b6e Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Tue, 13 Sep 2011 18:24:08 -0700 Subject: [PATCH 62/71] Bug 685568 - Back out db34d544a36b; we want to keep this change after all. DONTBUILD --- mobile/themes/core/tablet.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/themes/core/tablet.css b/mobile/themes/core/tablet.css index 2472cca229a..2f3a90e0503 100644 --- a/mobile/themes/core/tablet.css +++ b/mobile/themes/core/tablet.css @@ -31,7 +31,7 @@ } #tabs-container[tablet] { - -moz-border-end: @border_width_xlarge@ solid #eaeaea; + -moz-border-end: @border_width_xxlarge@ solid #eaeaea; background: #000; } From 848f69927b0b3910adab2dc1a68c0d49c371fdc1 Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Tue, 13 Sep 2011 20:04:13 -0700 Subject: [PATCH 63/71] No bug, fix rammedtogether words in test error message DONTBUILD --- widget/tests/test_bug343416.xul | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/tests/test_bug343416.xul b/widget/tests/test_bug343416.xul index 8333b7acb8a..f7a544b6a70 100644 --- a/widget/tests/test_bug343416.xul +++ b/widget/tests/test_bug343416.xul @@ -169,7 +169,7 @@ function testIdleTime() // 1 second leniency. ok(timeDiff < 1000, "The idle time should have increased by roughly the " + "amount of time it took for the timeout to fire. " + - "You didn't touch the mouse or keyboard during the" + + "You didn't touch the mouse or keyboard during the " + "test did you?"); finishedTimeoutOK = true; } From 5768d555ece2c05469051ea9efe6b152ed0e985f Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Wed, 14 Sep 2011 08:05:51 +0100 Subject: [PATCH 64/71] bug 686317 - fix format string/argument list mismatches in ARMAssembler.h. r=cdleary --- js/src/assembler/assembler/ARMAssembler.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/js/src/assembler/assembler/ARMAssembler.h b/js/src/assembler/assembler/ARMAssembler.h index 9e6e8e14035..d72c6f377bc 100644 --- a/js/src/assembler/assembler/ARMAssembler.h +++ b/js/src/assembler/assembler/ARMAssembler.h @@ -586,7 +586,7 @@ namespace JSC { } char const * off_sign = (posOffset) ? ("+") : ("-"); js::JaegerSpew(js::JSpew_Insns, - IPFX "%sr%s%s, [%s, #%s%u]\n", + IPFX "%sr%s%s %s, [%s, #%s%u]\n", MAYBE_PAD, mnemonic_act, mnemonic_sign, mnemonic_size, nameGpReg(rd), nameGpReg(rb), off_sign, offset); if (size == 32 || (size == 8 && !isSigned)) { @@ -626,7 +626,7 @@ namespace JSC { } char const * off_sign = (posOffset) ? ("+") : ("-"); js::JaegerSpew(js::JSpew_Insns, - IPFX "%sr%s%s, [%s, #%s%s]\n", MAYBE_PAD, mnemonic_act, mnemonic_sign, mnemonic_size, + IPFX "%sr%s%s %s, [%s, #%s%s]\n", MAYBE_PAD, mnemonic_act, mnemonic_sign, mnemonic_size, nameGpReg(rd), nameGpReg(rb), off_sign, nameGpReg(rm)); if (size == 32 || (size == 8 && !isSigned)) { /* All (the one) 32 bit ops and the signed 8 bit ops use the original encoding.*/ @@ -1052,7 +1052,7 @@ namespace JSC { static void repatchInt32(void* from, int32_t to) { js::JaegerSpew(js::JSpew_Insns, - ISPFX "##repatchInt32 ((%p)) holds ((%p))\n", + ISPFX "##repatchInt32 ((%p)) holds ((%#x))\n", from, to); patchPointerInternal(reinterpret_cast(from), reinterpret_cast(to)); @@ -1606,7 +1606,7 @@ namespace JSC { void fcpyd_r(int dd, int dm, Condition cc = AL) { js::JaegerSpew(js::JSpew_Insns, - IPFX "%-15s %s, %s, %s\n", MAYBE_PAD, "vmov.f64", + IPFX "%-15s %s, %s\n", MAYBE_PAD, "vmov.f64", nameFpRegD(dd), nameFpRegD(dm)); // TODO: emitInst doesn't work for VFP instructions, though it // seems to work for current usage. @@ -1650,7 +1650,7 @@ namespace JSC { void fabsd_r(int dd, int dm, Condition cc = AL) { js::JaegerSpew(js::JSpew_Insns, - IPFX "%-15s %s, %s, %s, %s\n", MAYBE_PAD, "fabsd", nameFpRegD(dd), nameFpRegD(dm)); + IPFX "%-15s %s, %s\n", MAYBE_PAD, "fabsd", nameFpRegD(dd), nameFpRegD(dm)); m_buffer.putInt(static_cast(cc) | FABSD | DD(dd) | DM(dm)); } From 39ba3a875039de52419d48e50d80334d3976bc0c Mon Sep 17 00:00:00 2001 From: Oleg Romashin Date: Wed, 14 Sep 2011 08:51:24 +0100 Subject: [PATCH 65/71] Bug 686513 - RenderFrameParent::BuildDisplayList crash when shadow root layer is null; r=roc --- layout/ipc/RenderFrameParent.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/layout/ipc/RenderFrameParent.cpp b/layout/ipc/RenderFrameParent.cpp index 15142afe75c..08233fb5074 100644 --- a/layout/ipc/RenderFrameParent.cpp +++ b/layout/ipc/RenderFrameParent.cpp @@ -811,11 +811,12 @@ RenderFrameParent::BuildDisplayList(nsDisplayListBuilder* aBuilder, // We're the subdoc for and it has // painted content. Display its shadow layer tree. nsDisplayList shadowTree; - if (aBuilder->IsForEventDelivery()) { + ContainerLayer* container = GetRootLayer(); + if (aBuilder->IsForEventDelivery() && container) { nsRect bounds = aFrame->EnsureInnerView()->GetBounds(); ViewTransform offset = ViewTransform(GetRootFrameOffset(aFrame, aBuilder), 1, 1); - BuildListForLayer(GetRootLayer(), mFrameLoader, offset, + BuildListForLayer(container, mFrameLoader, offset, aBuilder, shadowTree, aFrame); } else { shadowTree.AppendToTop( From 469056c56677044bbbfcfe508f76c7c690c70b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Wed, 14 Sep 2011 08:51:24 +0100 Subject: [PATCH 66/71] Bug 398505 - Remove nonstandard actiontype "restyle" of maction; r=karlt --- layout/mathml/nsMathMLmactionFrame.cpp | 49 -------------------------- 1 file changed, 49 deletions(-) diff --git a/layout/mathml/nsMathMLmactionFrame.cpp b/layout/mathml/nsMathMLmactionFrame.cpp index 6ab34f61a62..5ced84a606a 100644 --- a/layout/mathml/nsMathMLmactionFrame.cpp +++ b/layout/mathml/nsMathMLmactionFrame.cpp @@ -69,7 +69,6 @@ #define NS_MATHML_ACTION_TYPE_TOGGLE 1 #define NS_MATHML_ACTION_TYPE_STATUSLINE 2 #define NS_MATHML_ACTION_TYPE_TOOLTIP 3 // unsupported -#define NS_MATHML_ACTION_TYPE_RESTYLE 4 nsIFrame* @@ -128,37 +127,6 @@ nsMathMLmactionFrame::Init(nsIContent* aContent, mActionType = NS_MATHML_ACTION_TYPE_STATUSLINE; } - if (NS_MATHML_ACTION_TYPE_NONE == mActionType) { - // expected restyle prefix (8ch)... - if (8 < value.Length() && 0 == value.Find("restyle#")) { - mActionType = NS_MATHML_ACTION_TYPE_RESTYLE; - mRestyle = value; - - // Here is the situation: - // When the attribute [actiontype="restyle#id"] is set, the Style System has - // given us the associated style. But we want to start with our default style. - - // So... first, remove the attribute actiontype="restyle#id" - // XXXbz this is pretty messed up, since this can change whether we - // should have a frame at all. This really needs a better solution. - PRBool notify = PR_FALSE; // don't trigger a reflow yet! - aContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::actiontype_, notify); - - // then, re-resolve our style - nsStyleContext* parentStyleContext = GetStyleContext()->GetParent(); - newStyleContext = PresContext()->StyleSet()-> - ResolveStyleFor(aContent->AsElement(), parentStyleContext); - - if (!newStyleContext) - mRestyle.Truncate(); - else { - if (newStyleContext != GetStyleContext()) - SetStyleContextWithoutNotification(newStyleContext); - else - mRestyle.Truncate(); - } - } - } } // Let the base class do the rest @@ -440,21 +408,4 @@ nsMathMLmactionFrame::MouseClick() NS_FRAME_IS_DIRTY); } } - else if (NS_MATHML_ACTION_TYPE_RESTYLE == mActionType) { - if (!mRestyle.IsEmpty()) { - nsCOMPtr node( do_QueryInterface(mContent) ); - if (node.get()) { - if (nsContentUtils::HasNonEmptyAttr(mContent, kNameSpaceID_None, - nsGkAtoms::actiontype_)) - node->RemoveAttribute(NS_LITERAL_STRING("actiontype")); - else - node->SetAttribute(NS_LITERAL_STRING("actiontype"), mRestyle); - - // Trigger a style change reflow - PresContext()->PresShell()-> - FrameNeedsReflow(mSelectedFrame, nsIPresShell::eStyleChange, - NS_FRAME_IS_DIRTY); - } - } - } } From fd638cf4a1c640cb0ddcf461d5f051d0c14ca8a9 Mon Sep 17 00:00:00 2001 From: Oleg Romashin Date: Wed, 14 Sep 2011 08:51:24 +0100 Subject: [PATCH 67/71] Bug 685082 - Transparent plugins not cleared on Maemo; r=cjones --- gfx/layers/basic/BasicLayers.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/gfx/layers/basic/BasicLayers.cpp b/gfx/layers/basic/BasicLayers.cpp index 3d8a391ec05..688795ffd0d 100644 --- a/gfx/layers/basic/BasicLayers.cpp +++ b/gfx/layers/basic/BasicLayers.cpp @@ -2522,6 +2522,7 @@ BasicShadowableImageLayer::Paint(gfxContext* aContext) nsRefPtr backSurface = BasicManager()->OpenDescriptor(mBackBuffer); nsRefPtr tmpCtx = new gfxContext(backSurface); + tmpCtx->SetOperator(gfxContext::OPERATOR_SOURCE); PaintContext(pat, nsIntRegion(nsIntRect(0, 0, mSize.width, mSize.height)), nsnull, 1.0, tmpCtx); From cabb62dfe9e3ea56f440630275d7e8b4c576958c Mon Sep 17 00:00:00 2001 From: Oleg Romashin Date: Wed, 14 Sep 2011 08:51:24 +0100 Subject: [PATCH 68/71] Bug 685082 - Transparent plugins not cleared on Maemo; r=karlt --- dom/plugins/ipc/PluginInstanceChild.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dom/plugins/ipc/PluginInstanceChild.cpp b/dom/plugins/ipc/PluginInstanceChild.cpp index 5cbde80973b..d7fe34da42e 100644 --- a/dom/plugins/ipc/PluginInstanceChild.cpp +++ b/dom/plugins/ipc/PluginInstanceChild.cpp @@ -2849,6 +2849,7 @@ PluginInstanceChild::PaintRectToPlatformSurface(const nsIntRect& aRect, exposeEvent.major_code = 0; exposeEvent.minor_code = 0; mPluginIface->event(&mData, reinterpret_cast(&exposeEvent)); + aSurface->MarkDirty(gfxRect(aRect.x, aRect.y, aRect.width, aRect.height)); } else #endif { @@ -2926,7 +2927,7 @@ PluginInstanceChild::PaintRectToSurface(const nsIntRect& aRect, } #endif - if (aColor.a > 0.0) { + if (mIsTransparent && !CanPaintOnBackground()) { // Clear surface content for transparent rendering nsRefPtr ctx = new gfxContext(renderSurface); ctx->SetColor(aColor); From 469c7ddc8dabe7a232970f02523a1f49a72f030c Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Tue, 13 Sep 2011 01:18:01 -0400 Subject: [PATCH 69/71] Test for Bug 680113 - Select Add-ons dialog lists distribution add-ons as installed by the user. r=Unfocused --- .../test/browser/browser_select_selection.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/toolkit/mozapps/extensions/test/browser/browser_select_selection.js b/toolkit/mozapps/extensions/test/browser/browser_select_selection.js index c0cbbda95f2..f4fd564640a 100644 --- a/toolkit/mozapps/extensions/test/browser/browser_select_selection.js +++ b/toolkit/mozapps/extensions/test/browser/browser_select_selection.js @@ -72,11 +72,31 @@ function getString(aName) { return strings.GetStringFromName("action." + aName); } +function getSourceString(aSource) { + if (!aSource) + return ""; + + var strings = Services.strings.createBundle("chrome://mozapps/locale/extensions/selectAddons.properties"); + switch (aSource) { + case AddonManager.SCOPE_APPLICATION: + return strings.GetStringFromName("source.bundled"); + case AddonManager.SCOPE_PROFILE: + return strings.GetStringFromName("source.profile"); + default: + return strings.GetStringFromName("source.other"); + } +} + function test() { waitForExplicitFinish(); gProvider = new MockProvider(); + // Set prefs for Distributed Extension Source tests. + Services.prefs.setBoolPref("extensions.installedDistroAddon.test3@tests.mozilla.org", true); + Services.prefs.setBoolPref("extensions.installedDistroAddon.test12@tests.mozilla.org", true); + Services.prefs.setBoolPref("extensions.installedDistroAddon.test15@tests.mozilla.org", true); + ADDONS.forEach(function(aAddon, aPos) { var addon = new MockAddon("test" + aPos + "@tests.mozilla.org", "Test Add-on " + aPos, "extension"); @@ -208,6 +228,14 @@ add_test(function selection_test() { var keep = gWin.document.getAnonymousElementByAttribute(row, "anonid", "keep"); var action = gWin.document.getAnonymousElementByAttribute(row, "class", "addon-action-message"); var update = gWin.document.getAnonymousElementByAttribute(row, "anonid", "update"); + var source = gWin.document.getAnonymousElementByAttribute(row, "class", "addon-source"); + + if (id == 3 || id == 12 || id == 15) { + // Distro Installed To Profile + is(source.textContent, getSourceString(APP), "Source message should have the right text for Distributed Addons"); + } else { + is(source.textContent, getSourceString(addon[6]), "Source message should have the right text"); + } // Non-profile add-ons don't appear to have updates since we won't install // them From 6b7f9a25b84e11cfa2f4ca877bc3aa6aed252594 Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Wed, 14 Sep 2011 06:33:12 -0400 Subject: [PATCH 70/71] Address review comment for Bug 680113 that I missed when checking in. r=Unfocused --- .../extensions/test/browser/browser_select_selection.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolkit/mozapps/extensions/test/browser/browser_select_selection.js b/toolkit/mozapps/extensions/test/browser/browser_select_selection.js index f4fd564640a..92943113b13 100644 --- a/toolkit/mozapps/extensions/test/browser/browser_select_selection.js +++ b/toolkit/mozapps/extensions/test/browser/browser_select_selection.js @@ -78,9 +78,9 @@ function getSourceString(aSource) { var strings = Services.strings.createBundle("chrome://mozapps/locale/extensions/selectAddons.properties"); switch (aSource) { - case AddonManager.SCOPE_APPLICATION: + case APP: return strings.GetStringFromName("source.bundled"); - case AddonManager.SCOPE_PROFILE: + case PROFILE: return strings.GetStringFromName("source.profile"); default: return strings.GetStringFromName("source.other"); From 3cb012c08e3e2579cb9e800b7b944ba471d82302 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Wed, 14 Sep 2011 06:39:25 -0700 Subject: [PATCH 71/71] Bug 686380 - Hide the undo close tab thumbnail when switching or opening tabs [r=mfinkle] --- mobile/chrome/content/browser-ui.js | 24 ++++++++++++------------ mobile/chrome/content/browser.js | 13 ++++++++++--- mobile/chrome/content/common-ui.js | 8 +++----- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/mobile/chrome/content/browser-ui.js b/mobile/chrome/content/browser-ui.js index e627d6c060f..92d51578be0 100644 --- a/mobile/chrome/content/browser-ui.js +++ b/mobile/chrome/content/browser-ui.js @@ -64,6 +64,7 @@ let Elements = {}; ["contentShowing", "bcast_contentShowing"], ["urlbarState", "bcast_urlbarState"], ["stack", "stack"], + ["tabList", "tabs"], ["tabs", "tabs-container"], ["controls", "browser-controls"], ["panelUI", "panel-container"], @@ -383,7 +384,7 @@ var BrowserUI = { sizeControls: function(windowW, windowH) { // tabs - document.getElementById("tabs").resize(); + Elements.tabList.resize(); AwesomeScreen.doResize(windowW, windowH); // content navigator helper @@ -665,6 +666,7 @@ var BrowserUI = { // new page is opened, so a call to Browser.hideSidebars() fill this // requirement and fix the sidebars position. Browser.hideSidebars(); + Elements.tabList.removeClosedTab(); // Delay doing the fixup so the raw URI is passed to loadURIWithFlags // and the proper third-party fixup can be done @@ -781,6 +783,7 @@ var BrowserUI = { selectTab: function selectTab(aTab) { AwesomeScreen.activePanel = null; Browser.selectedTab = aTab; + Elements.tabList.removeClosedTab(); }, undoCloseTab: function undoCloseTab(aIndex) { @@ -907,18 +910,14 @@ var BrowserUI = { this._tabSelect(aEvent); break; case "TabOpen": - case "TabRemove": - { - // Workaround to hide the tabstrip if it is partially visible - // See bug 524469 and bug 626660 - let [tabsVisibility,,,] = Browser.computeSidebarVisibility(); - if (tabsVisibility > 0.0 && tabsVisibility < 1.0) - Browser.hideSidebars(); - + Elements.tabList.removeClosedTab(); + Browser.hidePartialTabSidebar(); break; - } - case "PanFinished": - let tabs = document.getElementById("tabs"); + case "TabRemove": + Browser.hidePartialTabSidebar(); + break; + case "PanFinished": { + let tabs = Elements.tabList; let [tabsVisibility,,oldLeftWidth, oldRightWidth] = Browser.computeSidebarVisibility(); if (tabsVisibility == 0.0 && tabs.hasClosedTab) { let { x: x1, y: y1 } = Browser.getScrollboxPosition(Browser.controlsScrollboxScroller); @@ -936,6 +935,7 @@ var BrowserUI = { Browser.tryFloatToolbar(0, 0); } break; + } case "SizeChanged": this.sizeControls(ViewableAreaObserver.width, ViewableAreaObserver.height); break; diff --git a/mobile/chrome/content/browser.js b/mobile/chrome/content/browser.js index 5f13785a3d2..d6356792922 100644 --- a/mobile/chrome/content/browser.js +++ b/mobile/chrome/content/browser.js @@ -554,6 +554,13 @@ var Browser = { this.tryUnfloatToolbar(); }, + /** Workaround to hide the tabstrip if it is partially visible (bug 524469 and bug 626660) */ + hidePartialTabSidebar: function hidePartialSidebars() { + let [tabsVisibility,,,] = this.computeSidebarVisibility(); + if (tabsVisibility > 0.0 && tabsVisibility < 1.0) + this.hideSidebars(); + }, + hideTitlebar: function hideTitlebar() { let rect = Elements.browsers.getBoundingClientRect(); this.pageScrollboxScroller.scrollBy(0, Math.round(rect.top)); @@ -2847,7 +2854,7 @@ Tab.prototype = { }, create: function create(aURI, aParams) { - this._chromeTab = document.getElementById("tabs").addTab(); + this._chromeTab = Elements.tabList.addTab(); let browser = this._createBrowser(aURI, null); // Should we fully load the new browser, or wait until later @@ -2866,7 +2873,7 @@ Tab.prototype = { }, destroy: function destroy() { - document.getElementById("tabs").removeTab(this._chromeTab); + Elements.tabList.removeTab(this._chromeTab); this._chromeTab = null; this._destroyBrowser(); }, @@ -3092,7 +3099,7 @@ Tab.prototype = { browser.setAttribute("type", "content-primary"); Elements.browsers.selectedPanel = notification; browser.active = true; - document.getElementById("tabs").selectedTab = this._chromeTab; + Elements.tabList.selectedTab = this._chromeTab; browser.focus(); } else { browser.messageManager.sendAsyncMessage("Browser:Blur", { }); diff --git a/mobile/chrome/content/common-ui.js b/mobile/chrome/content/common-ui.js index 3cd9d1cd222..556c609bae6 100644 --- a/mobile/chrome/content/common-ui.js +++ b/mobile/chrome/content/common-ui.js @@ -445,13 +445,11 @@ var NewTabPopup = { let boxRect = this.box.getBoundingClientRect(); this.box.top = tabRect.top + (tabRect.height / 2) - (boxRect.height / 2); - let tabs = document.getElementById("tabs"); - // We don't use anchorTo() here because the tab // being anchored to might be overflowing the tabs // scrollbox which confuses the dynamic arrow direction // calculation (see bug 662520). - if (tabs.getBoundingClientRect().left < 0) + if (Elements.tabList.getBoundingClientRect().left < 0) this.box.pointLeftAt(aTab); else this.box.pointRightAt(aTab); @@ -523,7 +521,7 @@ var FindHelperUI = { Elements.browsers.addEventListener("PanFinished", this, false); // Listen for events where form assistant should be closed - document.getElementById("tabs").addEventListener("TabSelect", this, true); + Elements.tabList.addEventListener("TabSelect", this, true); Elements.browsers.addEventListener("URLChanged", this, true); }, @@ -675,7 +673,7 @@ var FormHelperUI = { messageManager.addMessageListener("FormAssist:AutoComplete", this); // Listen for events where form assistant should be closed or updated - let tabs = document.getElementById("tabs"); + let tabs = Elements.tabList; tabs.addEventListener("TabSelect", this, true); tabs.addEventListener("TabClose", this, true); Elements.browsers.addEventListener("URLChanged", this, true);