Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1215)

Unified Diff: content/browser/accessibility/browser_accessibility_event.cc

Issue 1925473002: Add verbose logging for native accessibility events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@load_complete
Patch Set: address all feedback Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_event.cc
diff --git a/content/browser/accessibility/browser_accessibility_event.cc b/content/browser/accessibility/browser_accessibility_event.cc
new file mode 100644
index 0000000000000000000000000000000000000000..778c25a810e6dc37c37ba357f8cd9ab2021061bc
--- /dev/null
+++ b/content/browser/accessibility/browser_accessibility_event.cc
@@ -0,0 +1,146 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/accessibility/browser_accessibility_event.h"
+
+#include <string>
+
+#include "base/strings/string_util.h"
+#include "content/browser/accessibility/browser_accessibility.h"
+#include "content/browser/accessibility/browser_accessibility_manager.h"
+
+namespace content {
+
+namespace {
+std::string ReplaceNewlines(std::string str) {
+ std::string result;
+ base::ReplaceChars(str, "\n", "\\n", &result);
+ return result;
+}
+} // namespace
+
+// static
+bool BrowserAccessibilityEvent::FailedToSend(Result result) {
+ switch (result) {
+ case Sent:
+ case NotNeededOnThisPlatform:
+ case DiscardedBecauseUserNavigatingAway:
+ case DiscardedBecauseLiveRegionBusy:
+ return false;
+ case FailedBecauseNoWindow:
+ case FailedBecauseNoFocus:
+ case FailedBecauseFrameIsDetached:
+ return true;
+ }
+
+ NOTREACHED();
+ return true;
+}
+
+#if !defined(OS_WIN)
+// static
+BrowserAccessibilityEvent* BrowserAccessibilityEvent::Create(
+ Source source,
+ ui::AXEvent event_type,
+ const BrowserAccessibility* target) {
+ return new BrowserAccessibilityEvent(source, event_type, target);
+}
+#endif // !defined(OS_WIN)
+
+BrowserAccessibilityEvent::BrowserAccessibilityEvent(
+ Source source,
+ ui::AXEvent event_type,
+ const BrowserAccessibility* target)
+ : source_(source),
+ event_type_(event_type),
+ target_(target),
+ original_target_(target) {
+ DCHECK(target_);
+}
+
+BrowserAccessibilityEvent::~BrowserAccessibilityEvent() {
+}
+
+BrowserAccessibilityEvent::Result BrowserAccessibilityEvent::Fire() {
+ delete this;
+ return NotNeededOnThisPlatform;
+}
+
+std::string BrowserAccessibilityEvent::GetEventNameStr() {
+ return ui::ToString(event_type_);
+}
+
+void BrowserAccessibilityEvent::VerboseLog(Result result) {
+ std::string event_name = GetEventNameStr();
+
+ const char* result_str = nullptr;
+ switch (result) {
+ case Sent:
+ result_str = "Sent";
+ break;
+ case NotNeededOnThisPlatform:
+ result_str = "NotNeededOnThisPlatform";
+ break;
+ case DiscardedBecauseUserNavigatingAway:
+ result_str = "DiscardedBecauseUserNavigatingAway";
+ break;
+ case DiscardedBecauseLiveRegionBusy:
+ result_str = "DiscardedBecauseLiveRegionBusy";
+ break;
+ case FailedBecauseNoWindow:
+ result_str = "FailedBecauseNoWindow";
+ break;
+ case FailedBecauseNoFocus:
+ result_str = "FailedBecauseNoFocus";
+ break;
+ case FailedBecauseFrameIsDetached:
+ result_str = "FailedBecauseFrameIsDetached";
+ break;
+ }
+
+ const char* success_str = (result == Sent ? "+" : "-");
+
+ const char* source_str = nullptr;
+ switch (source_) {
+ case FromBlink:
+ source_str = "FromBlink";
+ break;
+ case FromChildFrameLoading:
+ source_str = "FromChildFrameLoading";
+ break;
+ case FromFindInPageResult:
+ source_str = "FromFindInPageResult";
+ break;
+ case FromRenderFrameHost:
+ source_str = "FromRenderFrameHost";
+ break;
+ case FromScroll:
+ source_str = "FromScroll";
+ break;
+ case FromTreeChange:
+ source_str = "FromTreeChange";
+ break;
+ case FromWindowFocusChange:
+ source_str = "FromWindowFocusChange";
+ break;
+ }
+
+ std::string original_target_str;
+ if (original_target_ != target_) {
+ original_target_str = " originalTarget=[["
+ + ReplaceNewlines(original_target_->GetData().ToString()) + "]]";
+ }
+
+ VLOG(1) << "Accessibility event"
+ << " " << success_str
+ << " " << event_name
+ << " result=" << result_str
+ << " source=" << source_str
+ << " unique_id=" << target_->unique_id()
+ << " target=[["
+ << ReplaceNewlines(target_->GetData().ToString()) << "]]"
+ << original_target_str;
+}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698