Bug 1456530 - Stop dispatching the select event on the tabs element. r=mconley draft
authorDão Gottwald <dao@mozilla.com>
Tue, 08 May 2018 11:48:00 +0200
changeset 792376 a40cde1b42c9c6fb0c76e021556e8458176dfc32
parent 792270 59005ba3cd3e7b3f9e8804bea881bf4c3a755d7c
push id109097
push userdgottwald@mozilla.com
push dateTue, 08 May 2018 09:48:22 +0000
reviewersmconley
bugs1456530
milestone62.0a1
Bug 1456530 - Stop dispatching the select event on the tabs element. r=mconley MozReview-Commit-ID: B4Ash6lC64u
dom/base/crashtests/354645-1.xul
dom/base/crashtests/crashtests.list
toolkit/content/widgets/tabbox.xml
deleted file mode 100644
--- a/dom/base/crashtests/354645-1.xul
+++ /dev/null
@@ -1,25 +0,0 @@
-<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="boom();" class="reftest-wait">
-
-<script type="text/javascript">
-
-var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
-
-function boom()
-{
-  var A = document.getElementById("A");
-  var B = document.createElementNS(XUL_NS, "tabs");
-  var C = document.createElementNS(XUL_NS, "hbox");
-  B.appendChild(C);
-  A.appendChild(B);
-}
-
-function remove(n)
-{
-  n.parentNode.removeChild(n);
-}
-
-</script>
-
-<hbox id="A" onselect="remove(event.originalTarget); document.documentElement.removeAttribute('class');"></hbox>
-
-</window>
--- a/dom/base/crashtests/crashtests.list
+++ b/dom/base/crashtests/crashtests.list
@@ -27,17 +27,16 @@ load 343730-1.xhtml
 load 343850-1.xhtml
 load 343889-1.html
 load 344434-1.xhtml
 load 344882-1.html
 load 345837-1.xhtml
 load 346381-1.html
 load 348049-1.xhtml
 load 349355-1.html
-load 354645-1.xul
 load 359432-1.xhtml
 load 360599-1.html
 load 366200-1.xhtml
 load 369219-1.xhtml
 load 369413-1.html
 load 371124-1.html
 load 371124-2.html
 load 371466-1.xhtml
--- a/toolkit/content/widgets/tabbox.xml
+++ b/toolkit/content/widgets/tabbox.xml
@@ -363,41 +363,32 @@
           return -1;
         ]]>
         </getter>
 
         <setter>
         <![CDATA[
           var tab = this.getItemAtIndex(val);
           if (tab) {
-            var alreadySelected = tab.selected;
-
             Array.forEach(this.childNodes, function(aTab) {
               if (aTab.selected && aTab != tab)
                 aTab._selected = false;
             });
             tab._selected = true;
 
             this.setAttribute("value", tab.value);
 
             let linkedPanel = this.getRelatedElement(tab);
             if (linkedPanel) {
               this.tabbox.setAttribute("selectedIndex", val);
 
               // This will cause an onselect event to fire for the tabpanel
               // element.
               this.tabbox.tabpanels.selectedPanel = linkedPanel;
             }
-
-            if (!alreadySelected) {
-              // Fire an onselect event for the tabs element.
-              var event = document.createEvent("Events");
-              event.initEvent("select", true, true);
-              this.dispatchEvent(event);
-            }
           }
           return val;
         ]]>
         </setter>
       </property>
 
       <property name="selectedItem">
         <getter>