1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright 2019 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 "components/ui_devtools/agent_util.h"
- #include "base/command_line.h"
- #include "base/files/file_path.h"
- #include "base/files/file_util.h"
- #include "base/logging.h"
- #include "base/path_service.h"
- #include "base/run_loop.h"
- #include "base/task/task_traits.h"
- #include "base/task/thread_pool.h"
- namespace ui_devtools {
- namespace {
- void OnSourceFile(base::OnceClosure quit_closure,
- bool* return_value,
- bool read_file_result) {
- *return_value = read_file_result;
- std::move(quit_closure).Run();
- }
- } // namespace
- const char kChromiumCodeSearchURL[] = "https://cs.chromium.org/";
- const char kChromiumCodeSearchSrcURL[] =
- "https://cs.chromium.org/chromium/src/";
- bool GetSourceCode(std::string path, std::string* source_code) {
- base::FilePath src_dir;
- base::PathService::Get(base::DIR_SOURCE_ROOT, &src_dir);
- src_dir = src_dir.AppendASCII(path);
- base::RunLoop run_loop(base::RunLoop::Type::kNestableTasksAllowed);
- bool return_value;
- base::ThreadPool::PostTaskAndReplyWithResult(
- FROM_HERE,
- {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
- base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
- base::BindOnce(&base::ReadFileToString, src_dir, source_code),
- base::BindOnce(&OnSourceFile, run_loop.QuitClosure(), &return_value));
- run_loop.Run();
- if (!return_value)
- DLOG(ERROR) << "Could not get source file of " << src_dir.value() << ".";
- return return_value;
- }
- } // namespace ui_devtools
|