From cf47fe373fdff1df6f580735a31eadf638c97047 Mon Sep 17 00:00:00 2001 From: "reed%reedloden.com" Date: Sun, 10 Feb 2008 05:19:43 +0000 Subject: [PATCH] Bug 414907 - "Bookmarks icon is missing text when in Customize Toolbar mode" (do not remove attributes after removing broadcaster) [p=arenevier@fdn.fr (arno.) r=Neil sr=jst a1.9=schrep] git-svn-id: svn://10.0.0.236/trunk@245333 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xul/document/src/nsXULDocument.cpp | 25 +++------ .../content/xul/document/src/nsXULDocument.h | 3 +- mozilla/content/xul/document/test/Makefile.in | 1 + .../xul/document/test/test_bug391002.xul | 6 --- .../xul/document/test/test_bug414907.xul | 52 +++++++++++++++++++ 5 files changed, 62 insertions(+), 25 deletions(-) create mode 100644 mozilla/content/xul/document/test/test_bug414907.xul diff --git a/mozilla/content/xul/document/src/nsXULDocument.cpp b/mozilla/content/xul/document/src/nsXULDocument.cpp index caa42d11477..b183ceb3e9a 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.cpp +++ b/mozilla/content/xul/document/src/nsXULDocument.cpp @@ -664,8 +664,7 @@ CanBroadcast(PRInt32 aNameSpaceID, nsIAtom* aAttribute) void nsXULDocument::SynchronizeBroadcastListener(nsIDOMElement *aBroadcaster, nsIDOMElement *aListener, - const nsAString &aAttr, - PRBool aAddingListener) + const nsAString &aAttr) { nsCOMPtr broadcaster = do_QueryInterface(aBroadcaster); nsCOMPtr listener = do_QueryInterface(aListener); @@ -685,14 +684,10 @@ nsXULDocument::SynchronizeBroadcastListener(nsIDOMElement *aBroadcaster, if (! CanBroadcast(nameSpaceID, name)) continue; - if (aAddingListener) { - nsAutoString value; - broadcaster->GetAttr(nameSpaceID, name, value); - listener->SetAttr(nameSpaceID, name, attrName->GetPrefix(), - value, mInitialLayoutComplete); - } else { - listener->UnsetAttr(nameSpaceID, name, mInitialLayoutComplete); - } + nsAutoString value; + broadcaster->GetAttr(nameSpaceID, name, value); + listener->SetAttr(nameSpaceID, name, attrName->GetPrefix(), value, + mInitialLayoutComplete); #if 0 // XXX we don't fire the |onbroadcast| handler during @@ -709,14 +704,10 @@ nsXULDocument::SynchronizeBroadcastListener(nsIDOMElement *aBroadcaster, nsCOMPtr name = do_GetAtom(aAttr); nsAutoString value; - if (broadcaster->GetAttr(kNameSpaceID_None, name, value) - && aAddingListener) { + if (broadcaster->GetAttr(kNameSpaceID_None, name, value)) { listener->SetAttr(kNameSpaceID_None, name, value, mInitialLayoutComplete); } - else { - listener->UnsetAttr(kNameSpaceID_None, name, mInitialLayoutComplete); - } #if 0 // XXX we don't fire the |onbroadcast| handler during initial @@ -813,7 +804,7 @@ nsXULDocument::AddBroadcastListenerFor(nsIDOMElement* aBroadcaster, entry->mListeners.AppendElement(bl); - SynchronizeBroadcastListener(aBroadcaster, aListener, aAttr, PR_TRUE); + SynchronizeBroadcastListener(aBroadcaster, aListener, aAttr); return NS_OK; } @@ -848,7 +839,7 @@ nsXULDocument::RemoveBroadcastListenerFor(nsIDOMElement* aBroadcaster, PL_DHashTableOperate(mBroadcasterMap, aBroadcaster, PL_DHASH_REMOVE); - SynchronizeBroadcastListener(aBroadcaster, aListener, aAttr, PR_FALSE); + SynchronizeBroadcastListener(aBroadcaster, aListener, aAttr); break; } diff --git a/mozilla/content/xul/document/src/nsXULDocument.h b/mozilla/content/xul/document/src/nsXULDocument.h index 7b87a575f33..e972e3227e6 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.h +++ b/mozilla/content/xul/document/src/nsXULDocument.h @@ -528,8 +528,7 @@ protected: void SynchronizeBroadcastListener(nsIDOMElement *aBroadcaster, nsIDOMElement *aListener, - const nsAString &aAttr, - PRBool aAddingListener); + const nsAString &aAttr); static nsresult diff --git a/mozilla/content/xul/document/test/Makefile.in b/mozilla/content/xul/document/test/Makefile.in index 756a4bdf8b8..42873d795b9 100644 --- a/mozilla/content/xul/document/test/Makefile.in +++ b/mozilla/content/xul/document/test/Makefile.in @@ -49,6 +49,7 @@ _TEST_FILES = \ test_bug199692.xul \ test_bug391002.xul \ test_bug403868.xul \ + test_bug414907.xul \ $(NULL) libs:: $(_TEST_FILES) diff --git a/mozilla/content/xul/document/test/test_bug391002.xul b/mozilla/content/xul/document/test/test_bug391002.xul index 1e5233cf630..11e8e2994b9 100644 --- a/mozilla/content/xul/document/test/test_bug391002.xul +++ b/mozilla/content/xul/document/test/test_bug391002.xul @@ -34,15 +34,9 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=391002 $("btn1").setAttribute("command", "cmd2"); is($("btn1").getAttribute("label"), $("cmd2").getAttribute("label")) - $("btn1").removeAttribute("command"); - is($("btn1").getAttribute("label"), ""); - $("observes").setAttribute("element", "cmd2"); is($("btn2").getAttribute("label"), $("cmd2").getAttribute("label")) - $("observes").removeAttribute("element"); - todo_is($("btn2").getAttribute("label"), ""); - ]]> diff --git a/mozilla/content/xul/document/test/test_bug414907.xul b/mozilla/content/xul/document/test/test_bug414907.xul new file mode 100644 index 00000000000..13359d99e9e --- /dev/null +++ b/mozilla/content/xul/document/test/test_bug414907.xul @@ -0,0 +1,52 @@ + + + + + + + + + + +