We want to measure the number of downloads that occur in ad subframes without user gesture. This gives us an idea of the number of drive-by downloads that happen in ad subframes that we could potentially intervene against.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d commit f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d Author: Yao Xiao <yaoxia@chromium.org> Date: Mon Oct 08 16:11:05 2018 Add OnDidInternalNavigationAbort observer method It allows us to observe mainframe download in PageLoadMetricsObserver. Bug: 881345 Change-Id: Icc5a3fb9dd645b9bdc291b64030789312614b74d Reviewed-on: https://chromium-review.googlesource.com/c/1260566 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Yao Xiao <yaoxia@chromium.org> Cr-Commit-Position: refs/heads/master@{#597576} [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/chrome/browser/page_load_metrics/page_load_metrics_observer.h [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/chrome/browser/page_load_metrics/page_load_tracker.cc [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/chrome/browser/page_load_metrics/page_load_tracker.h [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/content/public/test/navigation_simulator.cc [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/content/public/test/navigation_simulator.h [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/content/public/test/web_contents_tester.h [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/content/test/navigation_simulator_unittest.cc [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/content/test/test_web_contents.cc [modify] https://crrev.com/f8e5a4f4139eb6a7aeba6ae45204e6ea6565ce2d/content/test/test_web_contents.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/52e0e55d4f74fd2b1357c4bf153e9033aca57415 commit 52e0e55d4f74fd2b1357c4bf153e9033aca57415 Author: Yao Xiao <yaoxia@chromium.org> Date: Thu Oct 18 21:03:02 2018 Add UMA metrics for download frame type and gesture type For each download, it records the following dimensions: - FrameType: kMainFrame/kSameOriginAdSubframe/kSameOriginNonAdSubframe /kCrossOriginAdSubframe/kCrossOriginNonAdSubframe - GestureType: kWithoutGesture/kWithGesture The code where download behavior is identifiable and ad bit is accessible lives in two distinct places. They will be sharing blink/public/common/download/download_stats.h to log the metrics. Bug: 881345 Change-Id: Ic9f62b8b4eee3e55212df9e336f0ac10ce962c85 Reviewed-on: https://chromium-review.googlesource.com/c/1230441 Commit-Queue: Yao Xiao <yaoxia@chromium.org> Reviewed-by: Mark Pearson <mpearson@chromium.org> Reviewed-by: Ojan Vafai <ojan@chromium.org> Reviewed-by: Josh Karlin <jkarlin@chromium.org> Cr-Commit-Position: refs/heads/master@{#600900} [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/test/data/ad_tagging/ad_script.js [add] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/test/data/ad_tagging/ad_script_2.js [add] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/test/data/ad_tagging/allow.zip [add] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/test/data/ad_tagging/disallow.zip [add] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/test/data/ad_tagging/download.html [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/chrome/test/data/ad_tagging/frame_factory.html [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/third_party/blink/common/BUILD.gn [add] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/third_party/blink/common/download/download_stats.cc [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/third_party/blink/public/common/BUILD.gn [add] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/third_party/blink/public/common/download/download_stats.h [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/third_party/blink/renderer/core/html/html_anchor_element.cc [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/tools/metrics/histograms/enums.xml [modify] https://crrev.com/52e0e55d4f74fd2b1357c4bf153e9033aca57415/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bec0db348da09fadb74463b11a0970f70d090e36 commit bec0db348da09fadb74463b11a0970f70d090e36 Author: Yao Xiao <yaoxia@chromium.org> Date: Fri Nov 02 17:28:25 2018 Add sandbox bit to download metrics Also splitted the metrics into 2 (MainFrame, Subframe), so that the subframe metrics can be constructed using bitwise operations. Bug: 881345 Change-Id: I9e0e9aeb3d518e3fa5afbc3ff101705e04d87232 Reviewed-on: https://chromium-review.googlesource.com/c/1309096 Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Reviewed-by: Mark Pearson <mpearson@chromium.org> Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Yao Xiao <yaoxia@chromium.org> Cr-Commit-Position: refs/heads/master@{#604973} [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/chrome/test/data/ad_tagging/ad_script.js [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/chrome/test/data/ad_tagging/create_frame.js [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/content/public/browser/render_frame_host.h [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/third_party/blink/common/download/download_stats.cc [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/third_party/blink/public/common/download/download_stats.h [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/third_party/blink/renderer/core/html/html_anchor_element.cc [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/tools/metrics/histograms/enums.xml [modify] https://crrev.com/bec0db348da09fadb74463b11a0970f70d090e36/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7b7edab6333e363c42453f121455425046655d1d commit 7b7edab6333e363c42453f121455425046655d1d Author: Yao Xiao <yaoxia@chromium.org> Date: Fri Dec 14 23:22:26 2018 Add UKM for download metrics Also added GetDocumentCreatedEntryForSourceId() method in test_ukm_recorder that can be shared among multiple places. Bug: 881345 Change-Id: I295b9383be197c9c756bfe57c27f819dfcbb8640 Reviewed-on: https://chromium-review.googlesource.com/c/1327229 Commit-Queue: Yao Xiao <yaoxia@chromium.org> Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Reviewed-by: Guido Urdaneta <guidou@chromium.org> Reviewed-by: Tommi <tommi@chromium.org> Reviewed-by: Brian White <bcwhite@chromium.org> Reviewed-by: Ojan Vafai <ojan@chromium.org> Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Reviewed-by: Josh Karlin <jkarlin@chromium.org> Cr-Commit-Position: refs/heads/master@{#616870} [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/chrome/browser/media/autoplay_metrics_browsertest.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/chrome/browser/subresource_filter/ad_tagging_browsertest.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/components/ukm/test_ukm_recorder.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/components/ukm/test_ukm_recorder.h [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/third_party/blink/common/BUILD.gn [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/third_party/blink/common/DEPS [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/third_party/blink/common/download/download_stats.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/third_party/blink/public/common/download/download_stats.h [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/third_party/blink/renderer/core/html/html_anchor_element.cc [modify] https://crrev.com/7b7edab6333e363c42453f121455425046655d1d/tools/metrics/ukm/ukm.xml
Comment 1 by bugdroid1@chromium.org
, Oct 8