Chromium Code Reviews| Index: ui/base/clipboard/clipboard.cc |
| diff --git a/ui/base/clipboard/clipboard.cc b/ui/base/clipboard/clipboard.cc |
| index e384c6528d70dbc4bdd01ad8832b5704d1f3864e..75617b65145ccf9a23280e24eaac731ee329b1c3 100644 |
| --- a/ui/base/clipboard/clipboard.cc |
| +++ b/ui/base/clipboard/clipboard.cc |
| @@ -9,6 +9,7 @@ |
| #include "base/lazy_instance.h" |
| #include "base/logging.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/metrics/histogram.h" |
| #include "base/synchronization/lock.h" |
| #include "ui/gfx/size.h" |
| @@ -103,6 +104,8 @@ union SourceTag2BinaryHelper { |
| } // namespace |
| +const Clipboard::SourceTag Clipboard::kInvalidSourceTag = |
| + reinterpret_cast<void*>(1); |
| const char Clipboard::kMimeTypeText[] = "text/plain"; |
| const char Clipboard::kMimeTypeURIList[] = "text/uri-list"; |
| const char Clipboard::kMimeTypeDownloadURL[] = "downloadurl"; |
| @@ -186,6 +189,9 @@ void Clipboard::WriteObjects(Buffer buffer, |
| WriteObjectsImpl(buffer, objects, tag); |
| if (!write_objects_callback_.is_null()) |
| write_objects_callback_.Run(buffer); |
| + ReportAction(buffer, |
| + tag == SourceTag() ? WRITE_CLIPBOARD_NO_SOURCE_TAG : |
|
tony
2013/02/20 19:25:07
Did you mean to wrap this line? I normally line u
vasilii
2013/02/21 10:36:01
Done.
|
| + WRITE_CLIPBOARD_SOURCE_TAG); |
| } |
| void Clipboard::DispatchObject(ObjectType type, const ObjectMapParams& params) { |
| @@ -299,4 +305,33 @@ void Clipboard::ReplaceSharedMemHandle(ObjectMap* objects, |
| } |
| } |
| +void Clipboard::ReportAction(Buffer buffer, TrackedActions action) const |
| +{ |
| + if (buffer != BUFFER_STANDARD) |
| + return; |
| + |
| + switch (action){ |
|
battre
2013/02/20 23:01:03
nit: space before {
vasilii
2013/02/21 10:36:01
Done.
|
| + case WRITE_CLIPBOARD_NO_SOURCE_TAG: |
| + case WRITE_CLIPBOARD_SOURCE_TAG: |
| + UMA_HISTOGRAM_ENUMERATION("Clipboard.Actions", |
| + action, |
| + MAX_TRACKED_ACTION); |
| + break; |
| + // The code below counts cases when there is the kInvalidSourceTag in the |
| + // clipboard. That is, original data came from Incognito window and was |
| + // destroyed with that window. |
| + case READ_TEXT: |
| + case READ_ASCII_TEXT: |
| + case READ_RTF: |
| + if (kInvalidSourceTag == ReadSourceTag(buffer)) { |
| + UMA_HISTOGRAM_ENUMERATION("Clipboard.Actions", |
|
battre
2013/02/20 23:01:03
The UMA name indicates that it records the number
vasilii
2013/02/21 10:36:01
Changed the name.
|
| + action, |
| + MAX_TRACKED_ACTION); |
| + } |
| + break; |
| + case MAX_TRACKED_ACTION: |
| + break; |
| + } |
| +} |
| + |
| } // namespace ui |