Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit 989d78f

Browse files
Merge mozilla-central to autoland. a=merge CLOSED TREE
2 parents 8d2df14 + c0be6a4 commit 989d78f

75 files changed

Lines changed: 803 additions & 413 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,3 +156,6 @@ lextab.py
156156
# Ignore temp files created by patch command.
157157
*.orig
158158
*.rej
159+
160+
# Ignore file generated by lalrpop at build time.
161+
third_party/rust/lalrpop/src/parser/lrgrammar.rs

.hgignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,3 +193,6 @@ subinclude:servo/.hgignore
193193
^testing/raptor/raptor-venv
194194
^testing/raptor/raptor/tests/.*.json
195195
^testing/raptor/webext/raptor/auto_gen_test_config.js
196+
197+
# Ignore file generated by lalrpop at build time.
198+
^third_party/rust/lalrpop/src/parser/lrgrammar.rs

.hgtags

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,4 @@ ad179a6fc14cbd41d10a018ac4a3822db119de3b FIREFOX_BETA_64_BASE
155155
c44fbdd5173548c9035256dda8fd3512f67118a8 FIREFOX_NIGHTLY_64_END
156156
58a0412e15574f063cd380517a0369bfb48b22e0 PRE_TREEWIDE_CLANG_FORMAT
157157
9ad82455dcee2bc1d438e46016b8db00e88758a8 FIREFOX_BETA_65_BASE
158+
3386ff76878d83496bb822d09115c77472808b53 FIREFOX_NIGHTLY_65_END

CLOBBER

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@
2222
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
2323
# don't change CLOBBER for WebIDL changes any more.
2424

25-
Bug 1499026 - Update to ICU 63 requires clobber
25+
Merge day clobber

accessible/base/nsAccUtils.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,23 @@ int32_t nsAccUtils::GetARIAOrDefaultLevel(const Accessible* aAccessible) {
9292
}
9393

9494
int32_t nsAccUtils::GetLevelForXULContainerItem(nsIContent* aContent) {
95-
nsCOMPtr<nsIDOMXULContainerItemElement> item(do_QueryInterface(aContent));
95+
nsCOMPtr<nsIDOMXULContainerItemElement> item =
96+
aContent->AsElement()->AsXULContainerItem();
9697
if (!item) return 0;
9798

98-
nsCOMPtr<nsIDOMXULContainerElement> container;
99-
item->GetParentContainer(getter_AddRefs(container));
99+
nsCOMPtr<Element> containerElement;
100+
item->GetParentContainer(getter_AddRefs(containerElement));
101+
nsCOMPtr<nsIDOMXULContainerElement> container =
102+
containerElement ? containerElement->AsXULContainer() : nullptr;
100103
if (!container) return 0;
101104

102105
// Get level of the item.
103106
int32_t level = -1;
104107
while (container) {
105108
level++;
106109

107-
nsCOMPtr<nsIDOMXULContainerElement> parentContainer;
108-
container->GetParentContainer(getter_AddRefs(parentContainer));
109-
parentContainer.swap(container);
110+
container->GetParentContainer(getter_AddRefs(containerElement));
111+
container = containerElement ? containerElement->AsXULContainer() : nullptr;
110112
}
111113

112114
return level;

accessible/generic/Accessible.cpp

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -734,13 +734,15 @@ void Accessible::XULElmName(DocAccessible* aDocument, nsIContent* aElm,
734734
*/
735735

736736
// CASE #1 (via label attribute) -- great majority of the cases
737-
nsCOMPtr<nsIDOMXULSelectControlItemElement> itemEl = do_QueryInterface(aElm);
737+
nsCOMPtr<nsIDOMXULSelectControlItemElement> itemEl =
738+
aElm->AsElement()->AsXULSelectControlItem();
738739
if (itemEl) {
739740
itemEl->GetLabel(aName);
740741
} else {
741742
// Use @label if this is not a select control element, which uses label
742743
// attribute to indicate, which option is selected.
743-
nsCOMPtr<nsIDOMXULSelectControlElement> select = do_QueryInterface(aElm);
744+
nsCOMPtr<nsIDOMXULSelectControlElement> select =
745+
aElm->AsElement()->AsXULSelectControl();
744746
if (!select) {
745747
aElm->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::label, aName);
746748
}
@@ -1673,7 +1675,7 @@ Relation Accessible::RelationByType(RelationType aType) const {
16731675
} else {
16741676
// In XUL, use first <button default="true" .../> in the document
16751677
nsIDocument* doc = mContent->OwnerDoc();
1676-
nsCOMPtr<nsIDOMXULButtonElement> buttonEl;
1678+
nsIContent* buttonEl = nullptr;
16771679
if (doc->IsXULDocument()) {
16781680
dom::XULDocument* xulDoc = doc->AsXULDocument();
16791681
nsCOMPtr<nsIHTMLCollection> possibleDefaultButtons =
@@ -1683,7 +1685,13 @@ Relation Accessible::RelationByType(RelationType aType) const {
16831685
uint32_t length = possibleDefaultButtons->Length();
16841686
// Check for button in list of default="true" elements
16851687
for (uint32_t count = 0; count < length && !buttonEl; count++) {
1686-
buttonEl = do_QueryInterface(possibleDefaultButtons->Item(count));
1688+
nsIContent* item = possibleDefaultButtons->Item(count);
1689+
RefPtr<nsIDOMXULButtonElement> button =
1690+
item->IsElement() ? item->AsElement()->AsXULButton()
1691+
: nullptr;
1692+
if (button) {
1693+
buttonEl = item;
1694+
}
16871695
}
16881696
}
16891697
if (!buttonEl) { // Check for anonymous accept button in <dialog>
@@ -1692,11 +1700,16 @@ Relation Accessible::RelationByType(RelationType aType) const {
16921700
nsIContent* possibleButtonEl =
16931701
rootElm->OwnerDoc()->GetAnonymousElementByAttribute(
16941702
rootElm, nsGkAtoms::_default, NS_LITERAL_STRING("true"));
1695-
buttonEl = do_QueryInterface(possibleButtonEl);
1703+
if (possibleButtonEl && possibleButtonEl->IsElement()) {
1704+
RefPtr<nsIDOMXULButtonElement> button =
1705+
possibleButtonEl->AsElement()->AsXULButton();
1706+
if (button) {
1707+
buttonEl = possibleButtonEl;
1708+
}
1709+
}
16961710
}
16971711
}
1698-
nsCOMPtr<nsIContent> relatedContent(do_QueryInterface(buttonEl));
1699-
return Relation(mDoc, relatedContent);
1712+
return Relation(mDoc, buttonEl);
17001713
}
17011714
}
17021715
return Relation();

accessible/generic/RootAccessible.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ void RootAccessible::ProcessDOMEvent(Event* aDOMEvent) {
337337
// If multiselect tree, we should fire selectionadd or selection removed
338338
if (FocusMgr()->HasDOMFocus(targetNode)) {
339339
nsCOMPtr<nsIDOMXULMultiSelectControlElement> multiSel =
340-
do_QueryInterface(targetNode);
340+
targetNode->AsElement()->AsXULMultiSelectControl();
341341
nsAutoString selType;
342342
multiSel->GetSelType(selType);
343343
if (selType.IsEmpty() || !selType.EqualsLiteral("single")) {

accessible/xul/XULComboboxAccessible.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ uint64_t XULComboboxAccessible::NativeState() const {
5454
// Get focus status from base class
5555
uint64_t state = Accessible::NativeState();
5656

57-
nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent));
57+
nsCOMPtr<nsIDOMXULMenuListElement> menuList = Elm()->AsXULMenuList();
5858
if (menuList) {
5959
bool isOpen = false;
6060
menuList->GetOpen(&isOpen);
@@ -70,15 +70,13 @@ uint64_t XULComboboxAccessible::NativeState() const {
7070
void XULComboboxAccessible::Description(nsString& aDescription) {
7171
aDescription.Truncate();
7272
// Use description of currently focused option
73-
nsCOMPtr<nsIDOMXULMenuListElement> menuListElm(do_QueryInterface(mContent));
73+
nsCOMPtr<nsIDOMXULMenuListElement> menuListElm = Elm()->AsXULMenuList();
7474
if (!menuListElm) return;
7575

76-
nsCOMPtr<nsIDOMXULSelectControlItemElement> focusedOptionItem;
76+
nsCOMPtr<Element> focusedOptionItem;
7777
menuListElm->GetSelectedItem(getter_AddRefs(focusedOptionItem));
78-
nsCOMPtr<nsIContent> focusedOptionContent =
79-
do_QueryInterface(focusedOptionItem);
80-
if (focusedOptionContent && mDoc) {
81-
Accessible* focusedOptionAcc = mDoc->GetAccessible(focusedOptionContent);
78+
if (focusedOptionItem && mDoc) {
79+
Accessible* focusedOptionAcc = mDoc->GetAccessible(focusedOptionItem);
8280
if (focusedOptionAcc) focusedOptionAcc->Description(aDescription);
8381
}
8482
}
@@ -87,7 +85,7 @@ void XULComboboxAccessible::Value(nsString& aValue) const {
8785
aValue.Truncate();
8886

8987
// The value is the option or text shown entered in the combobox.
90-
nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent));
88+
nsCOMPtr<nsIDOMXULMenuListElement> menuList = Elm()->AsXULMenuList();
9189
if (menuList) menuList->GetLabel(aValue);
9290
}
9391

@@ -100,7 +98,7 @@ bool XULComboboxAccessible::DoAction(uint8_t aIndex) const {
10098
if (aIndex != XULComboboxAccessible::eAction_Click) return false;
10199

102100
// Programmaticaly toggle the combo box.
103-
nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent));
101+
nsCOMPtr<nsIDOMXULMenuListElement> menuList = Elm()->AsXULMenuList();
104102
if (!menuList) return false;
105103

106104
bool isDroppedDown = false;
@@ -113,7 +111,7 @@ void XULComboboxAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName) {
113111
aName.Truncate();
114112
if (aIndex != XULComboboxAccessible::eAction_Click) return;
115113

116-
nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent));
114+
nsCOMPtr<nsIDOMXULMenuListElement> menuList = Elm()->AsXULMenuList();
117115
if (!menuList) return;
118116

119117
bool isDroppedDown = false;
@@ -155,7 +153,7 @@ bool XULComboboxAccessible::AreItemsOperable() const {
155153
return false;
156154
}
157155

158-
nsCOMPtr<nsIDOMXULMenuListElement> menuListElm = do_QueryInterface(mContent);
156+
nsCOMPtr<nsIDOMXULMenuListElement> menuListElm = Elm()->AsXULMenuList();
159157
if (menuListElm) {
160158
bool isOpen = false;
161159
menuListElm->GetOpen(&isOpen);

accessible/xul/XULFormControlAccessible.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ uint64_t XULButtonAccessible::NativeState() const {
7575
uint64_t state = Accessible::NativeState();
7676

7777
// Buttons can be checked -- they simply appear pressed in rather than checked
78-
nsCOMPtr<nsIDOMXULButtonElement> xulButtonElement(
79-
do_QueryInterface(mContent));
78+
nsCOMPtr<nsIDOMXULButtonElement> xulButtonElement = Elm()->AsXULButton();
8079
if (xulButtonElement) {
8180
nsAutoString type;
8281
xulButtonElement->GetType(type);
@@ -157,15 +156,15 @@ bool XULDropmarkerAccessible::DropmarkerOpen(bool aToggleOpen) const {
157156

158157
while (parent) {
159158
nsCOMPtr<nsIDOMXULButtonElement> parentButtonElement =
160-
do_QueryInterface(parent);
159+
parent->AsElement()->AsXULButton();
161160
if (parentButtonElement) {
162161
parentButtonElement->GetOpen(&isOpen);
163162
if (aToggleOpen) parentButtonElement->SetOpen(!isOpen);
164163
return isOpen;
165164
}
166165

167166
nsCOMPtr<nsIDOMXULMenuListElement> parentMenuListElement =
168-
do_QueryInterface(parent);
167+
parent->AsElement()->AsXULMenuList();
169168
if (parentMenuListElement) {
170169
parentMenuListElement->GetOpen(&isOpen);
171170
if (aToggleOpen) parentMenuListElement->SetOpen(!isOpen);
@@ -247,7 +246,7 @@ uint64_t XULRadioButtonAccessible::NativeState() const {
247246
state |= states::CHECKABLE;
248247

249248
nsCOMPtr<nsIDOMXULSelectControlItemElement> radioButton =
250-
do_QueryInterface(mContent);
249+
Elm()->AsXULSelectControlItem();
251250
if (radioButton) {
252251
bool selected = false; // Radio buttons can be selected
253252
radioButton->GetSelected(&selected);

0 commit comments

Comments
 (0)