Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Unified Diff: content/browser/devtools/devtools_netlog_observer.cc

Issue 1953593002: Move DevToolsNetLogObserver to c/b/loader and create stub of network service interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix comment Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/devtools/devtools_netlog_observer.h ('k') | content/browser/loader/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/devtools/devtools_netlog_observer.cc
diff --git a/content/browser/devtools/devtools_netlog_observer.cc b/content/browser/devtools/devtools_netlog_observer.cc
deleted file mode 100644
index a11142d6d8cb4af0ddd72d1dff32df902133e35b..0000000000000000000000000000000000000000
--- a/content/browser/devtools/devtools_netlog_observer.cc
+++ /dev/null
@@ -1,207 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/devtools/devtools_netlog_observer.h"
-
-#include <stddef.h>
-
-#include "base/strings/string_util.h"
-#include "base/values.h"
-#include "content/browser/loader/resource_request_info_impl.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/content_browser_client.h"
-#include "content/public/common/resource_response.h"
-#include "net/base/load_flags.h"
-#include "net/http/http_response_headers.h"
-#include "net/http/http_util.h"
-#include "net/spdy/spdy_header_block.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_netlog_params.h"
-
-namespace content {
-const size_t kMaxNumEntries = 1000;
-
-DevToolsNetLogObserver* DevToolsNetLogObserver::instance_ = NULL;
-
-DevToolsNetLogObserver::DevToolsNetLogObserver() {
-}
-
-DevToolsNetLogObserver::~DevToolsNetLogObserver() {
-}
-
-DevToolsNetLogObserver::ResourceInfo* DevToolsNetLogObserver::GetResourceInfo(
- uint32_t id) {
- RequestToInfoMap::iterator it = request_to_info_.find(id);
- if (it != request_to_info_.end())
- return it->second.get();
- return NULL;
-}
-
-void DevToolsNetLogObserver::OnAddEntry(const net::NetLog::Entry& entry) {
- // The events that the Observer is interested in only occur on the IO thread.
- if (!BrowserThread::CurrentlyOn(BrowserThread::IO))
- return;
-
- if (entry.source().type == net::NetLog::SOURCE_URL_REQUEST)
- OnAddURLRequestEntry(entry);
-}
-
-void DevToolsNetLogObserver::OnAddURLRequestEntry(
- const net::NetLog::Entry& entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- bool is_begin = entry.phase() == net::NetLog::PHASE_BEGIN;
- bool is_end = entry.phase() == net::NetLog::PHASE_END;
-
- if (entry.type() == net::NetLog::TYPE_URL_REQUEST_START_JOB) {
- if (is_begin) {
- if (request_to_info_.size() > kMaxNumEntries) {
- LOG(WARNING) << "The raw headers observer url request count has grown "
- "larger than expected, resetting";
- request_to_info_.clear();
- }
-
- request_to_info_[entry.source().id] = new ResourceInfo();
- }
- return;
- } else if (entry.type() == net::NetLog::TYPE_REQUEST_ALIVE) {
- // Cleanup records based on the TYPE_REQUEST_ALIVE entry.
- if (is_end)
- request_to_info_.erase(entry.source().id);
- return;
- }
-
- ResourceInfo* info = GetResourceInfo(entry.source().id);
- if (!info)
- return;
-
- switch (entry.type()) {
- case net::NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST_HEADERS: {
- std::unique_ptr<base::Value> event_params(entry.ParametersToValue());
- std::string request_line;
- net::HttpRequestHeaders request_headers;
-
- if (!net::HttpRequestHeaders::FromNetLogParam(event_params.get(),
- &request_headers,
- &request_line)) {
- NOTREACHED();
- }
-
- // We need to clear headers in case the same url_request is reused for
- // several http requests (e.g. see http://crbug.com/80157).
- info->request_headers.clear();
-
- for (net::HttpRequestHeaders::Iterator it(request_headers);
- it.GetNext();) {
- info->request_headers.push_back(std::make_pair(it.name(), it.value()));
- }
- info->request_headers_text = request_line + request_headers.ToString();
- break;
- }
- case net::NetLog::TYPE_HTTP_TRANSACTION_HTTP2_SEND_REQUEST_HEADERS: {
- std::unique_ptr<base::Value> event_params(entry.ParametersToValue());
- net::SpdyHeaderBlock request_headers;
-
- if (!net::SpdyHeaderBlockFromNetLogParam(event_params.get(),
- &request_headers)) {
- NOTREACHED();
- }
-
- // We need to clear headers in case the same url_request is reused for
- // several http requests (e.g. see http://crbug.com/80157).
- info->request_headers.clear();
-
- for (net::SpdyHeaderBlock::const_iterator it = request_headers.begin();
- it != request_headers.end(); ++it) {
- info->request_headers.push_back(
- std::make_pair(it->first.as_string(), it->second.as_string()));
- }
- info->request_headers_text = "";
- break;
- }
- case net::NetLog::TYPE_HTTP_TRANSACTION_READ_RESPONSE_HEADERS: {
- std::unique_ptr<base::Value> event_params(entry.ParametersToValue());
-
- scoped_refptr<net::HttpResponseHeaders> response_headers;
-
- if (!net::HttpResponseHeaders::FromNetLogParam(event_params.get(),
- &response_headers)) {
- NOTREACHED();
- }
-
- info->http_status_code = response_headers->response_code();
- info->http_status_text = response_headers->GetStatusText();
- std::string name, value;
-
- // We need to clear headers in case the same url_request is reused for
- // several http requests (e.g. see http://crbug.com/80157).
- info->response_headers.clear();
-
- for (size_t it = 0;
- response_headers->EnumerateHeaderLines(&it, &name, &value);) {
- info->response_headers.push_back(std::make_pair(name, value));
- }
-
- if (!info->request_headers_text.empty()) {
- info->response_headers_text =
- net::HttpUtil::ConvertHeadersBackToHTTPResponse(
- response_headers->raw_headers());
- } else {
- // SPDY request.
- info->response_headers_text = "";
- }
- break;
- }
- default:
- break;
- }
-}
-
-void DevToolsNetLogObserver::Attach() {
- DCHECK(!instance_);
- net::NetLog* net_log = GetContentClient()->browser()->GetNetLog();
- if (net_log) {
- instance_ = new DevToolsNetLogObserver();
- net_log->DeprecatedAddObserver(
- instance_, net::NetLogCaptureMode::IncludeCookiesAndCredentials());
- }
-}
-
-void DevToolsNetLogObserver::Detach() {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- if (instance_) {
- // Safest not to do this in the destructor to maintain thread safety across
- // refactorings.
- instance_->net_log()->DeprecatedRemoveObserver(instance_);
- delete instance_;
- instance_ = NULL;
- }
-}
-
-DevToolsNetLogObserver* DevToolsNetLogObserver::GetInstance() {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- return instance_;
-}
-
-// static
-void DevToolsNetLogObserver::PopulateResponseInfo(
- net::URLRequest* request,
- ResourceResponse* response) {
- const ResourceRequestInfoImpl* request_info =
- ResourceRequestInfoImpl::ForRequest(request);
- if (!request_info || !request_info->ShouldReportRawHeaders())
- return;
-
- uint32_t source_id = request->net_log().source().id;
- DevToolsNetLogObserver* dev_tools_net_log_observer =
- DevToolsNetLogObserver::GetInstance();
- if (dev_tools_net_log_observer == NULL)
- return;
- response->head.devtools_info =
- dev_tools_net_log_observer->GetResourceInfo(source_id);
-}
-
-} // namespace content
« no previous file with comments | « content/browser/devtools/devtools_netlog_observer.h ('k') | content/browser/loader/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698