Index: chrome/browser/ui/test/test_browser_dialog.cc |
diff --git a/chrome/browser/ui/test/test_browser_dialog.cc b/chrome/browser/ui/test/test_browser_dialog.cc |
index 75aff27f6ab391a12d30d0544041fe9b4b5f31e6..7360993bff252020f81b4c61a0a9a053481e93a4 100644 |
--- a/chrome/browser/ui/test/test_browser_dialog.cc |
+++ b/chrome/browser/ui/test/test_browser_dialog.cc |
@@ -111,6 +111,17 @@ void TestBrowserDialog::RunDialog() { |
auto added = base::STLSetDifference<std::vector<views::Widget*>>( |
widgets_after, widgets_before); |
+ if (added.size() > 1) { |
+ // Some tests create a standalone window to anchor a dialog. In those cases, |
+ // ignore added Widgets that are not dialogs. |
+ for (auto it = added.begin(); it != added.end();) { |
+ if (!(*it)->widget_delegate()->AsDialogDelegate()) |
+ it = added.erase(it); |
+ else |
+ ++it; |
+ } |
+ } |
+ |
// This can fail if no dialog was shown, if the dialog shown wasn't a toolkit- |
// views dialog, or if more than one child dialog was shown. |
ASSERT_EQ(1u, added.size()); |