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..444af448a39dfdcb7f1352bead355014eb91e511 100644 |
--- a/chrome/browser/ui/test/test_browser_dialog.cc |
+++ b/chrome/browser/ui/test/test_browser_dialog.cc |
@@ -6,6 +6,7 @@ |
#include "base/command_line.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/stl_util.h" |
#include "base/test/gtest_util.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "chrome/browser/platform_util.h" |
@@ -111,6 +112,14 @@ 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. |
+ base::EraseIf(added, [](views::Widget* widget) { |
Peter Kasting
2017/03/10 08:29:54
Nice use of this API that just went in! I think y
|
+ return !widget->widget_delegate()->AsDialogDelegate(); |
+ }); |
+ } |
+ |
// 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()); |