Index: ui/views/debug_utils.cc |
diff --git a/ui/views/debug_utils.cc b/ui/views/debug_utils.cc |
index 8259d6212eb6734da2dc4da0141f584ebfcefb65..adeadd6f5d45287952caa8a3a6de401746215316 100644 |
--- a/ui/views/debug_utils.cc |
+++ b/ui/views/debug_utils.cc |
@@ -4,72 +4,72 @@ |
#include "ui/views/debug_utils.h" |
+#include <iostream> |
+ |
#include "base/logging.h" |
#include "base/utf_string_conversions.h" |
#include "ui/views/view.h" |
-#ifndef NDEBUG |
-#include <iostream> |
-#endif |
- |
-#ifndef NDEBUG |
- |
namespace views { |
namespace { |
-void PrintViewHierarchyImp(const View* view, int indent) { |
- std::wostringstream buf; |
+void PrintViewHierarchyImp(const View* view, |
+ int indent, |
+ std::wostringstream* out) { |
int ind = indent; |
while (ind-- > 0) |
- buf << L' '; |
- buf << UTF8ToWide(view->GetClassName()); |
- buf << L' '; |
- buf << view->id(); |
- buf << L' '; |
- buf << view->x() << L"," << view->y() << L","; |
- buf << view->bounds().right() << L"," << view->bounds().bottom(); |
- buf << L' '; |
- buf << view; |
- |
- DVLOG(1) << buf.str(); |
- std::cout << buf.str() << std::endl; |
+ *out << L' '; |
+ *out << UTF8ToWide(view->GetClassName()); |
+ *out << L' '; |
+ *out << view->id(); |
+ *out << L' '; |
+ *out << view->x() << L"," << view->y() << L","; |
+ *out << view->bounds().right() << L"," << view->bounds().bottom(); |
+ *out << L' '; |
+ *out << view; |
+ *out << L'\n'; |
for (int i = 0, count = view->child_count(); i < count; ++i) |
- PrintViewHierarchyImp(view->child_at(i), indent + 2); |
+ PrintViewHierarchyImp(view->child_at(i), indent + 2, out); |
} |
-void PrintFocusHierarchyImp(const View* view, int indent) { |
- std::wostringstream buf; |
+void PrintFocusHierarchyImp(const View* view, |
+ int indent, |
+ std::wostringstream* out) { |
int ind = indent; |
while (ind-- > 0) |
- buf << L' '; |
- buf << UTF8ToWide(view->GetClassName()); |
- buf << L' '; |
- buf << view->id(); |
- buf << L' '; |
- buf << view->GetClassName().c_str(); |
- buf << L' '; |
- buf << view; |
- |
- DVLOG(1) << buf.str(); |
- std::cout << buf.str() << std::endl; |
+ *out << L' '; |
+ *out << UTF8ToWide(view->GetClassName()); |
+ *out << L' '; |
+ *out << view->id(); |
+ *out << L' '; |
+ *out << view->GetClassName().c_str(); |
+ *out << L' '; |
+ *out << view; |
+ *out << L'\n'; |
if (view->child_count() > 0) |
- PrintFocusHierarchyImp(view->child_at(0), indent + 2); |
+ PrintFocusHierarchyImp(view->child_at(0), indent + 2, out); |
const View* next_focusable = view->GetNextFocusableView(); |
if (next_focusable) |
- PrintFocusHierarchyImp(next_focusable, indent); |
+ PrintFocusHierarchyImp(next_focusable, indent, out); |
} |
} // namespace |
void PrintViewHierarchy(const View* view) { |
- PrintViewHierarchyImp(view, 0); |
+ std::wostringstream out; |
+ out << L"View hierarchy:\n"; |
+ PrintViewHierarchyImp(view, 0, &out); |
+ // Error so users in the field can generate and upload logs. |
+ LOG(ERROR) << out.str(); |
} |
void PrintFocusHierarchy(const View* view) { |
- PrintFocusHierarchyImp(view, 0); |
+ std::wostringstream out; |
+ out << L"Focus hierarchy:\n"; |
+ PrintFocusHierarchyImp(view, 0, &out); |
+ // Error so users in the field can generate and upload logs. |
+ LOG(ERROR) << out.str(); |
} |
} // namespace views |
- |
-#endif // NDEBUG |