create netlog for devtoolsnetlogobserver

This commit is contained in:
Robo 2015-07-14 23:12:52 +05:30
parent 681e868a5b
commit 7496cb29fe
7 changed files with 44 additions and 31 deletions

View file

@ -80,6 +80,10 @@ void BrowserClient::GetAdditionalAllowedSchemesForFileSystem(
additional_schemes->push_back(content::kChromeUIScheme);
}
net::NetLog* BrowserClient::GetNetLog() {
return browser_context()->GetNetLog();
}
base::FilePath BrowserClient::GetDefaultDownloadDirectory() {
// ~/Downloads
base::FilePath path;

View file

@ -43,6 +43,7 @@ class BrowserClient : public content::ContentBrowserClient {
content::PlatformNotificationService* GetPlatformNotificationService() override;
void GetAdditionalAllowedSchemesForFileSystem(
std::vector<std::string>* additional_schemes) override;
net::NetLog* GetNetLog() override;
base::FilePath GetDefaultDownloadDirectory() override;
content::DevToolsManagerDelegate* GetDevToolsManagerDelegate() override;

View file

@ -114,6 +114,10 @@ net::URLRequestContextGetter* BrowserContext::CreateRequestContext(
return url_request_getter_.get();
}
net::NetLog* BrowserContext::GetNetLog() {
return url_request_getter_->net_log();
}
net::NetworkDelegate* BrowserContext::CreateNetworkDelegate() {
return new NetworkDelegate;
}

View file

@ -48,6 +48,7 @@ class BrowserContext : public content::BrowserContext,
net::URLRequestContextGetter* CreateRequestContext(
content::ProtocolHandlerMap* protocol_handlers,
content::URLRequestInterceptorScopedVector protocol_interceptors);
net::NetLog* GetNetLog();
net::URLRequestContextGetter* url_request_context_getter() const {
return url_request_getter_.get();

View file

@ -36,44 +36,48 @@ NetLog::NetLog(net::URLRequestContext* context)
: added_events_(false),
context_(context) {
auto command_line = base::CommandLine::ForCurrentProcess();
base::FilePath log_path =
command_line->GetSwitchValuePath(switches::kLogNetLog);
if (command_line->HasSwitch(switches::kLogNetLog)) {
base::FilePath log_path =
command_line->GetSwitchValuePath(switches::kLogNetLog);
#if defined(OS_WIN)
log_file_.reset(_wfopen(log_path.value().c_str(), L"w"));
#elif defined(OS_POSIX)
log_file_.reset(fopen(log_path.value().c_str(), "w"));
#endif
#if defined(OS_WIN)
log_file_.reset(_wfopen(log_path.value().c_str(), L"w"));
#elif defined(OS_POSIX)
log_file_.reset(fopen(log_path.value().c_str(), "w"));
#endif
if (!log_file_) {
LOG(ERROR) << "Could not open file: " << log_path.value()
<< "for net logging";
} else {
std::string json;
scoped_ptr<base::Value> constants(GetConstants().Pass());
base::JSONWriter::Write(constants.get(), &json);
fprintf(log_file_.get(), "{\"constants\": %s, \n", json.c_str());
fprintf(log_file_.get(), "\"events\": [\n");
if (!log_file_) {
LOG(ERROR) << "Could not open file: " << log_path.value()
<< "for net logging";
} else {
std::string json;
scoped_ptr<base::Value> constants(GetConstants().Pass());
base::JSONWriter::Write(constants.get(), &json);
fprintf(log_file_.get(), "{\"constants\": %s, \n", json.c_str());
fprintf(log_file_.get(), "\"events\": [\n");
if (context_) {
DCHECK(context_->CalledOnValidThread());
if (context_) {
DCHECK(context_->CalledOnValidThread());
std::set<net::URLRequestContext*> contexts;
contexts.insert(context_);
std::set<net::URLRequestContext*> contexts;
contexts.insert(context_);
net::CreateNetLogEntriesForActiveObjects(contexts, this);
net::CreateNetLogEntriesForActiveObjects(contexts, this);
}
DeprecatedAddObserver(this, net::NetLog::LogLevel::LOG_STRIP_PRIVATE_DATA);
}
DeprecatedAddObserver(this, net::NetLog::LogLevel::LOG_STRIP_PRIVATE_DATA);
}
}
NetLog::~NetLog() {
DeprecatedRemoveObserver(this);
if (log_file_) {
DeprecatedRemoveObserver(this);
// Ending events array.
fprintf(log_file_.get(), "]}");
log_file_.reset();
// Ending events array.
fprintf(log_file_.get(), "]}");
log_file_.reset();
}
}
void NetLog::OnAddEntry(const net::NetLog::Entry& entry) {

View file

@ -150,10 +150,8 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() {
url_request_context_.reset(new net::URLRequestContext);
// --log-net-log
if (command_line.HasSwitch(switches::kLogNetLog)) {
net_log_.reset(new NetLog(url_request_context_.get()));
url_request_context_->set_net_log(net_log_.get());
}
net_log_.reset(new NetLog(url_request_context_.get()));
url_request_context_->set_net_log(net_log_.get());
network_delegate_.reset(delegate_->CreateNetworkDelegate());
url_request_context_->set_network_delegate(network_delegate_.get());

View file

@ -57,6 +57,7 @@ class URLRequestContextGetter : public net::URLRequestContextGetter {
scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() const override;
net::HostResolver* host_resolver();
net::NetLog* net_log() { return net_log_.get(); }
private:
Delegate* delegate_;