| Index: content/browser/histogram_internals_request_job.cc
|
| diff --git a/content/browser/histogram_internals_request_job.cc b/content/browser/histogram_internals_request_job.cc
|
| index 3dd61a3bda7072a77a8d0af92307146ad915a029..bfd6f24b7e4c551de427213443063cbbb7611030 100644
|
| --- a/content/browser/histogram_internals_request_job.cc
|
| +++ b/content/browser/histogram_internals_request_job.cc
|
| @@ -18,19 +18,22 @@ namespace content {
|
| HistogramInternalsRequestJob::HistogramInternalsRequestJob(
|
| net::URLRequest* request,
|
| net::NetworkDelegate* network_delegate)
|
| - : net::URLRequestSimpleJob(request, network_delegate), weak_factory_(this) {
|
| - const std::string& spec = request->url().possibly_invalid_spec();
|
| - const url::Parsed& parsed = request->url().parsed_for_possibly_invalid_spec();
|
| + : net::URLRequestSimpleJob(request, network_delegate),
|
| + url_(request->url()),
|
| + weak_factory_(this) {}
|
| +
|
| +HistogramInternalsRequestJob::~HistogramInternalsRequestJob() {}
|
| +
|
| +std::string HistogramInternalsRequestJob::GenerateHTML(const GURL& url) {
|
| + const std::string& spec = url.possibly_invalid_spec();
|
| + const url::Parsed& parsed = url.parsed_for_possibly_invalid_spec();
|
| // + 1 to skip the slash at the beginning of the path.
|
| int offset = parsed.CountCharactersBefore(url::Parsed::PATH, false) + 1;
|
|
|
| + std::string path;
|
| if (offset < static_cast<int>(spec.size()))
|
| - path_.assign(spec.substr(offset));
|
| -}
|
| -
|
| -HistogramInternalsRequestJob::~HistogramInternalsRequestJob() {}
|
| + path = spec.substr(offset);
|
|
|
| -void AboutHistogram(std::string* data, const std::string& path) {
|
| HistogramSynchronizer::FetchHistograms();
|
|
|
| std::string unescaped_query;
|
| @@ -41,21 +44,23 @@ void AboutHistogram(std::string* data, const std::string& path) {
|
| unescaped_title += " - " + unescaped_query;
|
| }
|
|
|
| - data->append("<!DOCTYPE html>\n<html>\n<head>\n");
|
| - data->append(
|
| + std::string data;
|
| + data.append("<!DOCTYPE html>\n<html>\n<head>\n");
|
| + data.append(
|
| "<meta http-equiv=\"Content-Security-Policy\" "
|
| "content=\"object-src 'none'; script-src 'none'\">");
|
| - data->append("<title>");
|
| - data->append(net::EscapeForHTML(unescaped_title));
|
| - data->append("</title>\n");
|
| - data->append("</head><body>");
|
| + data.append("<title>");
|
| + data.append(net::EscapeForHTML(unescaped_title));
|
| + data.append("</title>\n");
|
| + data.append("</head><body>");
|
|
|
| // Display any stats for which we sent off requests the last time.
|
| - data->append("<p>Stats accumulated from browser startup to previous ");
|
| - data->append("page load; reload to get stats as of this page load.</p>\n");
|
| - data->append("<table width=\"100%\">\n");
|
| + data.append("<p>Stats accumulated from browser startup to previous ");
|
| + data.append("page load; reload to get stats as of this page load.</p>\n");
|
| + data.append("<table width=\"100%\">\n");
|
|
|
| - base::StatisticsRecorder::WriteHTMLGraph(unescaped_query, data);
|
| + base::StatisticsRecorder::WriteHTMLGraph(unescaped_query, &data);
|
| + return data;
|
| }
|
|
|
| void HistogramInternalsRequestJob::Start() {
|
| @@ -77,8 +82,7 @@ int HistogramInternalsRequestJob::GetData(
|
| mime_type->assign("text/html");
|
| charset->assign("UTF8");
|
|
|
| - data->clear();
|
| - AboutHistogram(data, path_);
|
| + *data = GenerateHTML(url_);
|
| return net::OK;
|
| }
|
|
|
|
|