Commit 67883843 authored by Gayane Petrosyan's avatar Gayane Petrosyan Committed by Commit Bot

Record when text selection is in iframe

Bug: 1139864
Change-Id: I17686adaf4241202e400acb18f6c8fc8b6a83a7c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513290
Commit-Queue: Gayane Petrosyan <gayane@chromium.org>
Reviewed-by: default avatarsebsg <sebsg@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824048}
parent 7d1f3a0a
...@@ -4029,6 +4029,7 @@ static_library("browser") { ...@@ -4029,6 +4029,7 @@ static_library("browser") {
"//components/services/app_service/public/cpp:intents", "//components/services/app_service/public/cpp:intents",
"//components/services/app_service/public/cpp:preferred_apps", "//components/services/app_service/public/cpp:preferred_apps",
"//components/services/app_service/public/cpp:publisher", "//components/services/app_service/public/cpp:publisher",
"//components/shared_highlighting/core/common",
"//components/soda:constants", "//components/soda:constants",
"//components/ukm/content", "//components/ukm/content",
"//components/web_modal", "//components/web_modal",
......
...@@ -242,6 +242,7 @@ include_rules = [ ...@@ -242,6 +242,7 @@ include_rules = [
"+components/safe_browsing", "+components/safe_browsing",
"+components/safe_search_api", "+components/safe_search_api",
"+components/schema_org", "+components/schema_org",
"+components/shared_highlighting/core/common",
"+components/search", "+components/search",
"+components/search_engines", "+components/search_engines",
"+components/search_provider_logos", "+components/search_provider_logos",
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "chrome/app/chrome_command_ids.h" #include "chrome/app/chrome_command_ids.h"
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "components/renderer_context_menu/render_view_context_menu_proxy.h" #include "components/renderer_context_menu/render_view_context_menu_proxy.h"
#include "components/shared_highlighting/core/common/shared_highlighting_metrics.h"
#include "content/public/browser/context_menu_params.h" #include "content/public/browser/context_menu_params.h"
#include "content/public/browser/render_view_host.h" #include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
...@@ -71,6 +72,7 @@ void CopyLinkToTextMenuObserver::ExecuteCommand(int command_id) { ...@@ -71,6 +72,7 @@ void CopyLinkToTextMenuObserver::ExecuteCommand(int command_id) {
return; return;
if (main_frame != proxy_->GetWebContents()->GetFocusedFrame()) { if (main_frame != proxy_->GetWebContents()->GetFocusedFrame()) {
shared_highlighting::LogGenerateErrorIFrame();
OnGeneratedSelector(std::make_unique<ui::DataTransferEndpoint>( OnGeneratedSelector(std::make_unique<ui::DataTransferEndpoint>(
main_frame->GetLastCommittedOrigin()), main_frame->GetLastCommittedOrigin()),
std::string()); std::string());
......
...@@ -73,6 +73,7 @@ public class LinkToTextCoordinator extends EmptyTabObserver { ...@@ -73,6 +73,7 @@ public class LinkToTextCoordinator extends EmptyTabObserver {
public void requestSelector() { public void requestSelector() {
if (mTab.getWebContents().getMainFrame() != mTab.getWebContents().getFocusedFrame()) { if (mTab.getWebContents().getMainFrame() != mTab.getWebContents().getFocusedFrame()) {
LinkToTextMetricsBridge.logGenerateErrorIFrame();
onSelectorReady(INVALID_SELECTOR); onSelectorReady(INVALID_SELECTOR);
return; return;
} }
......
...@@ -22,10 +22,15 @@ public class LinkToTextMetricsBridge { ...@@ -22,10 +22,15 @@ public class LinkToTextMetricsBridge {
LinkToTextMetricsBridgeJni.get().logGenerateErrorTabCrash(); LinkToTextMetricsBridgeJni.get().logGenerateErrorTabCrash();
} }
public static void logGenerateErrorIFrame() {
LinkToTextMetricsBridgeJni.get().logGenerateErrorIFrame();
}
@NativeMethods @NativeMethods
interface Natives { interface Natives {
void logGenerateErrorTabHidden(); void logGenerateErrorTabHidden();
void logGenerateErrorOmniboxNavigation(); void logGenerateErrorOmniboxNavigation();
void logGenerateErrorTabCrash(); void logGenerateErrorTabCrash();
void logGenerateErrorIFrame();
} }
} }
...@@ -19,3 +19,7 @@ static void JNI_LinkToTextMetricsBridge_LogGenerateErrorOmniboxNavigation( ...@@ -19,3 +19,7 @@ static void JNI_LinkToTextMetricsBridge_LogGenerateErrorOmniboxNavigation(
static void JNI_LinkToTextMetricsBridge_LogGenerateErrorTabCrash(JNIEnv* env) { static void JNI_LinkToTextMetricsBridge_LogGenerateErrorTabCrash(JNIEnv* env) {
shared_highlighting::LogGenerateErrorTabCrash(); shared_highlighting::LogGenerateErrorTabCrash();
} }
static void JNI_LinkToTextMetricsBridge_LogGenerateErrorIFrame(JNIEnv* env) {
shared_highlighting::LogGenerateErrorIFrame();
}
...@@ -66,4 +66,8 @@ void LogGenerateErrorOmniboxNavigation() { ...@@ -66,4 +66,8 @@ void LogGenerateErrorOmniboxNavigation() {
void LogGenerateErrorTabCrash() { void LogGenerateErrorTabCrash() {
LogLinkGenerationErrorReason(LinkGenerationError::kTabCrash); LogLinkGenerationErrorReason(LinkGenerationError::kTabCrash);
} }
void LogGenerateErrorIFrame() {
LogLinkGenerationErrorReason(LinkGenerationError::kIFrame);
}
} // namespace shared_highlighting } // namespace shared_highlighting
...@@ -28,7 +28,10 @@ enum class LinkGenerationError { ...@@ -28,7 +28,10 @@ enum class LinkGenerationError {
// Catch-all bucket. // Catch-all bucket.
kUnknown = 9, kUnknown = 9,
kMaxValue = kUnknown // Selection happened on iframe.
kIFrame = 10,
kMaxValue = kIFrame
}; };
// These values are persisted to logs. Entries should not be renumbered and // These values are persisted to logs. Entries should not be renumbered and
...@@ -72,6 +75,10 @@ void LogGenerateErrorOmniboxNavigation(); ...@@ -72,6 +75,10 @@ void LogGenerateErrorOmniboxNavigation();
// Records when tab crashes before generation is complete. // Records when tab crashes before generation is complete.
void LogGenerateErrorTabCrash(); void LogGenerateErrorTabCrash();
// Records when link generation was not completed because selection happened on
// iframe.
void LogGenerateErrorIFrame();
} // namespace shared_highlighting } // namespace shared_highlighting
#endif // COMPONENTS_SHARED_HIGHLIGHTING_CORE_COMMON_SHARED_HIGHLIGHTING_METRICS_H_ #endif // COMPONENTS_SHARED_HIGHLIGHTING_CORE_COMMON_SHARED_HIGHLIGHTING_METRICS_H_
...@@ -48,7 +48,9 @@ class CORE_EXPORT TextFragmentSelectorGenerator final ...@@ -48,7 +48,9 @@ class CORE_EXPORT TextFragmentSelectorGenerator final
kUnknown, kUnknown,
kMaxValue = kUnknown kIFrame,
kMaxValue = kIFrame
}; };
explicit TextFragmentSelectorGenerator() = default; explicit TextFragmentSelectorGenerator() = default;
......
...@@ -40909,6 +40909,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> ...@@ -40909,6 +40909,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="7" label="Omnibox navigation"/> <int value="7" label="Omnibox navigation"/>
<int value="8" label="Tab crash"/> <int value="8" label="Tab crash"/>
<int value="9" label="Unknown"/> <int value="9" label="Unknown"/>
<int value="10" label="Iframe"/>
</enum> </enum>
<enum name="LinkMonitorFailureType"> <enum name="LinkMonitorFailureType">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment