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

Unified Diff: chrome/browser/net/net_log_temp_file.cc

Issue 1347043002: Move ChromeNetLog to //components (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DetachFromThread Created 5 years, 3 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
Index: chrome/browser/net/net_log_temp_file.cc
diff --git a/chrome/browser/net/net_log_temp_file.cc b/chrome/browser/net/net_log_temp_file.cc
deleted file mode 100644
index c630174716d7e1acdb2a2a2b347d7924d0301eb1..0000000000000000000000000000000000000000
--- a/chrome/browser/net/net_log_temp_file.cc
+++ /dev/null
@@ -1,222 +0,0 @@
-// Copyright (c) 2013 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 "chrome/browser/net/net_log_temp_file.h"
-
-#include "base/files/file_util.h"
-#include "base/files/scoped_file.h"
-#include "base/values.h"
-#include "chrome/browser/net/chrome_net_log.h"
-#include "chrome/browser/ui/webui/net_internals/net_internals_ui.h"
-#include "content/public/browser/browser_thread.h"
-#include "net/log/write_to_file_net_log_observer.h"
-
-using content::BrowserThread;
-
-// Path of logs relative to base::GetTempDir(). Must be kept in sync
-// with chrome/android/java/res/xml/file_paths.xml
-base::FilePath::CharType kLogRelativePath[] =
- FILE_PATH_LITERAL("net-export/chrome-net-export-log.json");
-
-// Old path used by net-export. Used to delete old files.
-// TODO(mmenke): Should remove at some point. Added in M46.
-base::FilePath::CharType kOldLogRelativePath[] =
- FILE_PATH_LITERAL("chrome-net-export-log.json");
-
-NetLogTempFile::~NetLogTempFile() {
- if (write_to_file_observer_)
- write_to_file_observer_->StopObserving(nullptr);
-}
-
-void NetLogTempFile::ProcessCommand(Command command) {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- if (!EnsureInit())
- return;
-
- switch (command) {
- case DO_START_LOG_BYTES:
- StartNetLog(LOG_TYPE_LOG_BYTES);
- break;
- case DO_START:
- StartNetLog(LOG_TYPE_NORMAL);
- break;
- case DO_START_STRIP_PRIVATE_DATA:
- StartNetLog(LOG_TYPE_STRIP_PRIVATE_DATA);
- break;
- case DO_STOP:
- StopNetLog();
- break;
- default:
- NOTREACHED();
- break;
- }
-}
-
-bool NetLogTempFile::GetFilePath(base::FilePath* path) {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- if (log_type_ == LOG_TYPE_NONE || state_ == STATE_LOGGING)
- return false;
-
- if (!NetExportLogExists())
- return false;
-
- DCHECK(!log_path_.empty());
-#if defined(OS_POSIX)
- // Users, group and others can read, write and traverse.
- int mode = base::FILE_PERMISSION_MASK;
- base::SetPosixFilePermissions(log_path_, mode);
-#endif // defined(OS_POSIX)
-
- *path = log_path_;
- return true;
-}
-
-base::DictionaryValue* NetLogTempFile::GetState() {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- base::DictionaryValue* dict = new base::DictionaryValue;
-
- EnsureInit();
-
-#ifndef NDEBUG
- dict->SetString("file", log_path_.LossyDisplayName());
-#endif // NDEBUG
-
- switch (state_) {
- case STATE_NOT_LOGGING:
- dict->SetString("state", "NOT_LOGGING");
- break;
- case STATE_LOGGING:
- dict->SetString("state", "LOGGING");
- break;
- case STATE_UNINITIALIZED:
- dict->SetString("state", "UNINITIALIZED");
- break;
- }
-
- switch (log_type_) {
- case LOG_TYPE_NONE:
- dict->SetString("logType", "NONE");
- break;
- case LOG_TYPE_UNKNOWN:
- dict->SetString("logType", "UNKNOWN");
- break;
- case LOG_TYPE_LOG_BYTES:
- dict->SetString("logType", "LOG_BYTES");
- break;
- case LOG_TYPE_NORMAL:
- dict->SetString("logType", "NORMAL");
- break;
- case LOG_TYPE_STRIP_PRIVATE_DATA:
- dict->SetString("logType", "STRIP_PRIVATE_DATA");
- break;
- }
-
- return dict;
-}
-
-NetLogTempFile::NetLogTempFile(ChromeNetLog* chrome_net_log)
- : state_(STATE_UNINITIALIZED),
- log_type_(LOG_TYPE_NONE),
- chrome_net_log_(chrome_net_log) {
-}
-
-bool NetLogTempFile::GetNetExportLogBaseDirectory(
- base::FilePath* path) const {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- return base::GetTempDir(path);
-}
-
-net::NetLogCaptureMode NetLogTempFile::GetCaptureModeForLogType(
- LogType log_type) {
- switch (log_type) {
- case LOG_TYPE_LOG_BYTES:
- return net::NetLogCaptureMode::IncludeSocketBytes();
- case LOG_TYPE_NORMAL:
- return net::NetLogCaptureMode::IncludeCookiesAndCredentials();
- case LOG_TYPE_STRIP_PRIVATE_DATA:
- return net::NetLogCaptureMode::Default();
- case LOG_TYPE_NONE:
- case LOG_TYPE_UNKNOWN:
- NOTREACHED();
- }
- return net::NetLogCaptureMode::Default();
-}
-
-bool NetLogTempFile::EnsureInit() {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- if (state_ != STATE_UNINITIALIZED)
- return true;
-
- if (!SetUpNetExportLogPath())
- return false;
-
- state_ = STATE_NOT_LOGGING;
- if (NetExportLogExists())
- log_type_ = LOG_TYPE_UNKNOWN;
- else
- log_type_ = LOG_TYPE_NONE;
-
- return true;
-}
-
-void NetLogTempFile::StartNetLog(LogType log_type) {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- if (state_ == STATE_LOGGING)
- return;
-
- DCHECK_NE(STATE_UNINITIALIZED, state_);
- DCHECK(!log_path_.empty());
-
- // Try to make sure we can create the file.
- // TODO(rtenneti): Find a better for doing the following. Surface some error
- // to the user if we couldn't create the file.
- base::ScopedFILE file(base::OpenFile(log_path_, "w"));
- if (!file)
- return;
-
- log_type_ = log_type;
- state_ = STATE_LOGGING;
-
- scoped_ptr<base::Value> constants(NetInternalsUI::GetConstants());
- write_to_file_observer_.reset(new net::WriteToFileNetLogObserver());
- write_to_file_observer_->set_capture_mode(GetCaptureModeForLogType(log_type));
- write_to_file_observer_->StartObserving(chrome_net_log_, file.Pass(),
- constants.get(), nullptr);
-}
-
-void NetLogTempFile::StopNetLog() {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- if (state_ != STATE_LOGGING)
- return;
-
- write_to_file_observer_->StopObserving(nullptr);
- write_to_file_observer_.reset();
- state_ = STATE_NOT_LOGGING;
-}
-
-bool NetLogTempFile::SetUpNetExportLogPath() {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- base::FilePath temp_dir;
- if (!GetNetExportLogBaseDirectory(&temp_dir))
- return false;
-
- // Delete log file at old location, if present.
- DeleteFile(temp_dir.Append(kOldLogRelativePath), false);
-
- base::FilePath log_path = temp_dir.Append(kLogRelativePath);
-
- if (!base::CreateDirectoryAndGetError(log_path.DirName(),
- nullptr)) {
- return false;
- }
-
- log_path_ = log_path;
- return true;
-}
-
-bool NetLogTempFile::NetExportLogExists() const {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING);
- DCHECK(!log_path_.empty());
- return base::PathExists(log_path_);
-}

Powered by Google App Engine
This is Rietveld 408576698