| Index: net/proxy/proxy_resolver_v8_tracing.cc
|
| diff --git a/net/proxy/proxy_resolver_v8_tracing.cc b/net/proxy/proxy_resolver_v8_tracing.cc
|
| index 230c4f9c11f5655095162fc28795675627542e36..c21ebd77f8c25ef8c899ea29a626229b26bff438 100644
|
| --- a/net/proxy/proxy_resolver_v8_tracing.cc
|
| +++ b/net/proxy/proxy_resolver_v8_tracing.cc
|
| @@ -9,10 +9,8 @@
|
| #include <utility>
|
| #include <vector>
|
|
|
| -#include "base/auto_reset.h"
|
| #include "base/bind.h"
|
| #include "base/macros.h"
|
| -#include "base/metrics/histogram_macros.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/synchronization/cancellation_flag.h"
|
| @@ -28,7 +26,6 @@
|
| #include "net/proxy/proxy_info.h"
|
| #include "net/proxy/proxy_resolver_error_observer.h"
|
| #include "net/proxy/proxy_resolver_v8.h"
|
| -#include "url/url_canon.h"
|
|
|
| // The intent of this class is explained in the design document:
|
| // https://docs.google.com/a/chromium.org/document/d/16Ij5OcVnR3s0MH4Z5XkhI9VTPoMJdaBn9rKreAmGOdE/edit
|
| @@ -63,24 +60,6 @@ const size_t kMaxUniqueResolveDnsPerExec = 20;
|
| // hit this. (In fact normal scripts should not even have alerts() or errors).
|
| const size_t kMaxAlertsAndErrorsBytes = 2048;
|
|
|
| -// Strips path information from the URL and replaces it with a
|
| -// recognizable placeholder.
|
| -// TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| -GURL StripUrlForBug593759(const GURL& url) {
|
| - GURL::Replacements replacements;
|
| - replacements.SetPathStr("PathIsHiddenForCrbug593759");
|
| - replacements.ClearQuery();
|
| - replacements.ClearRef();
|
| - return url.ReplaceComponents(replacements);
|
| -}
|
| -
|
| -// TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| -void LogHistogramForBug593759(PacResultForStrippedUrl value) {
|
| - UMA_HISTOGRAM_ENUMERATION(
|
| - kHistogramPacResultForStrippedUrl, static_cast<int>(value),
|
| - static_cast<int>(PacResultForStrippedUrl::MAX_VALUE));
|
| -}
|
| -
|
| // The Job class is responsible for executing GetProxyForURL() and
|
| // creating ProxyResolverV8 instances, since both of these operations share
|
| // similar code.
|
| @@ -171,9 +150,6 @@ class Job : public base::RefCountedThreadSafe<Job>,
|
| void ExecuteNonBlocking();
|
| int ExecuteProxyResolver();
|
|
|
| - // TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| - void LogMetricsForBug593759(int original_error);
|
| -
|
| // Implementation of ProxyResolverv8::JSBindings
|
| bool ResolveDns(const std::string& host,
|
| ResolveDnsOperation op,
|
| @@ -300,9 +276,6 @@ class Job : public base::RefCountedThreadSafe<Job>,
|
| // Whether the current execution needs to be restarted in blocking mode.
|
| bool should_restart_with_blocking_dns_;
|
|
|
| - // TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| - bool dont_start_dns_ = false;
|
| -
|
| // ---------------------------------------------------------------------------
|
| // State for pending DNS request.
|
| // ---------------------------------------------------------------------------
|
| @@ -561,9 +534,6 @@ void Job::ExecuteNonBlocking() {
|
|
|
| int result = ExecuteProxyResolver();
|
|
|
| - // TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| - LogMetricsForBug593759(result);
|
| -
|
| if (should_restart_with_blocking_dns_) {
|
| DCHECK(!blocking_dns_);
|
| DCHECK(abandoned_);
|
| @@ -604,110 +574,6 @@ int Job::ExecuteProxyResolver() {
|
| return result;
|
| }
|
|
|
| -// Gathers data on how often PAC scripts execute differently depending
|
| -// on the URL path and parameters.
|
| -//
|
| -// TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| -void Job::LogMetricsForBug593759(int original_error) {
|
| - CheckIsOnWorkerThread();
|
| -
|
| - DCHECK(!blocking_dns_);
|
| -
|
| - if (operation_ != GET_PROXY_FOR_URL || !url_.SchemeIsCryptographic()) {
|
| - // Only interested in FindProxyForURL() invocations for cryptographic URL
|
| - // schemes (https:// and wss://).
|
| - return;
|
| - }
|
| -
|
| - if (should_restart_with_blocking_dns_) {
|
| - // The current instrumentation is limited to non-blocking DNS mode, for
|
| - // simplicity. Fallback to blocking mode is possible for unusual PAC
|
| - // scripts (non-deterministic, or relies on global state).
|
| - LogHistogramForBug593759(
|
| - PacResultForStrippedUrl::SKIPPED_FALLBACK_BLOCKING_DNS);
|
| - return;
|
| - }
|
| -
|
| - if (abandoned_) {
|
| - // If the FindProxyForURL() attempt was abandoned, it was either cancelled
|
| - // or it encountered a missing DNS dependency. In the latter case the job
|
| - // will be re-started once the DNS has been resolved, so just wait until
|
| - // then.
|
| - return;
|
| - }
|
| -
|
| - if (original_error != OK) {
|
| - // Only run the extra diagnostics for successful invocations of
|
| - // FindProxyForURL(). In other words, the instrumentation will
|
| - // not check whether the script succeeds when using a stripped
|
| - // path after having already failed on the original URL. A script error
|
| - // means the PAC script is already broken, so this would just skew the data.
|
| - return;
|
| - }
|
| -
|
| - // Save some state variables to compare the original run against the new run
|
| - // using a stripped URL.
|
| - auto original_num_dns = num_dns_;
|
| - auto original_alerts_and_errors_byte_cost_ = alerts_and_errors_byte_cost_;
|
| - auto original_results = results_.ToPacString();
|
| -
|
| - // Reset state variables used by ExecuteProxyResolver().
|
| - //
|
| - // This is a bit messy, but it keeps the diagnostics code local
|
| - // to LogMetricsForBug593759() without having to refactor the existing
|
| - // code.
|
| - //
|
| - // The intent is that after returning from this function all of the
|
| - // internal state is re-set to reflect the original completion of
|
| - // ExecuteProxyResolver(), not the second diagnostic one.
|
| - //
|
| - // Any global modifications made to the script state however are
|
| - // not undone, since creating a new script context just for this
|
| - // test would be expensive.
|
| - //
|
| - // Lastly, DNS resolution is disabled before calling
|
| - // ExecuteProxyResolver(), so only previously cached results can be
|
| - // used.
|
| - base::AutoReset<GURL> reset_url(&url_, StripUrlForBug593759(url_));
|
| - base::AutoReset<int> reset_num_dns(&num_dns_, 0);
|
| - base::AutoReset<std::vector<AlertOrError>> reset_alerts_and_errors(
|
| - &alerts_and_errors_, std::vector<AlertOrError>());
|
| - base::AutoReset<size_t> reset_alerts_and_errors_byte_cost(
|
| - &alerts_and_errors_byte_cost_, 0);
|
| - base::AutoReset<bool> reset_should_restart_with_blocking_dns(
|
| - &should_restart_with_blocking_dns_, false);
|
| - base::AutoReset<ProxyInfo> reset_results(&results_, ProxyInfo());
|
| - base::AutoReset<bool> reset_dont_start_dns(&dont_start_dns_, true);
|
| - base::AutoReset<bool> reset_abandoned(&abandoned_, false);
|
| -
|
| - // Re-run FindProxyForURL().
|
| - auto result = ExecuteProxyResolver();
|
| -
|
| - // Log the result of having run FindProxyForURL() with the modified
|
| - // URL to an UMA histogram.
|
| - if (should_restart_with_blocking_dns_) {
|
| - LogHistogramForBug593759(
|
| - PacResultForStrippedUrl::FAIL_FALLBACK_BLOCKING_DNS);
|
| - } else if (abandoned_) {
|
| - LogHistogramForBug593759(PacResultForStrippedUrl::FAIL_ABANDONED);
|
| - } else if (result != OK) {
|
| - LogHistogramForBug593759(PacResultForStrippedUrl::FAIL_ERROR);
|
| - } else if (original_results != results_.ToPacString()) {
|
| - LogHistogramForBug593759(
|
| - PacResultForStrippedUrl::FAIL_DIFFERENT_PROXY_LIST);
|
| - } else if (original_alerts_and_errors_byte_cost_ !=
|
| - alerts_and_errors_byte_cost_) {
|
| - // Here alerts_and_errors_byte_cost_ is being used as a cheap (albeit
|
| - // imprecise) fingerprint for the calls that were made to alert().
|
| - LogHistogramForBug593759(PacResultForStrippedUrl::SUCCESS_DIFFERENT_ALERTS);
|
| - } else if (original_num_dns != num_dns_) {
|
| - LogHistogramForBug593759(
|
| - PacResultForStrippedUrl::SUCCESS_DIFFERENT_NUM_DNS);
|
| - } else {
|
| - LogHistogramForBug593759(PacResultForStrippedUrl::SUCCESS);
|
| - }
|
| -}
|
| -
|
| bool Job::ResolveDns(const std::string& host,
|
| ResolveDnsOperation op,
|
| std::string* output,
|
| @@ -782,12 +648,6 @@ bool Job::ResolveDnsNonBlocking(const std::string& host,
|
| return rv;
|
| }
|
|
|
| - // TODO(eroman): Remove when done gathering data for crbug.com/593759
|
| - if (dont_start_dns_) {
|
| - abandoned_ = true;
|
| - return false;
|
| - }
|
| -
|
| if (num_dns_ <= last_num_dns_) {
|
| // The sequence of DNS operations is different from last time!
|
| ScheduleRestartWithBlockingDns();
|
| @@ -1241,6 +1101,4 @@ ProxyResolverV8TracingFactory::Create() {
|
| return make_scoped_ptr(new ProxyResolverV8TracingFactoryImpl());
|
| }
|
|
|
| -const char kHistogramPacResultForStrippedUrl[] = "Net.PacResultForStrippedUrl";
|
| -
|
| } // namespace net
|
|
|