Commit 60edb79c authored by Patrick Monette's avatar Patrick Monette Committed by Commit Bot

Minor cleanup of OnModuleLoad()

Remove the module load address parameter unused by the ModuleDatabase

Change-Id: I80a41dba4c0f33c9acb0c4d4a03934ad3b19ca54
Reviewed-on: https://chromium-review.googlesource.com/1237215Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Patrick Monette <pmonette@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594776}
parent aac501b9
......@@ -230,8 +230,7 @@ void DetectFaultTolerantHeap() {
// load event to the ModuleDatabase.
void HandleModuleLoadEventWithoutTimeDateStamp(
const base::FilePath& module_path,
size_t module_size,
uintptr_t load_address) {
size_t module_size) {
uint32_t size_of_image = 0;
uint32_t time_date_stamp = 0;
bool got_time_date_stamp = GetModuleImageSizeAndTimeDateStamp(
......@@ -246,9 +245,8 @@ void HandleModuleLoadEventWithoutTimeDateStamp(
if (!got_time_date_stamp)
return;
ModuleDatabase::GetInstance()->OnModuleLoad(content::PROCESS_TYPE_BROWSER,
module_path, module_size,
time_date_stamp, load_address);
ModuleDatabase::GetInstance()->OnModuleLoad(
content::PROCESS_TYPE_BROWSER, module_path, module_size, time_date_stamp);
}
// Helper function for getting the module size associated with a module in this
......@@ -329,8 +327,6 @@ bool TryGetModuleTimeDateStamp(void* module_load_address,
// them to the ModuleDatabase.
void OnModuleEvent(const ModuleWatcher::ModuleEvent& event) {
auto* module_database = ModuleDatabase::GetInstance();
uintptr_t load_address =
reinterpret_cast<uintptr_t>(event.module_load_address);
switch (event.event_type) {
case mojom::ModuleEventType::MODULE_ALREADY_LOADED: {
......@@ -342,7 +338,7 @@ void OnModuleEvent(const ModuleWatcher::ModuleEvent& event) {
&time_date_stamp)) {
module_database->OnModuleLoad(content::PROCESS_TYPE_BROWSER,
event.module_path, event.module_size,
time_date_stamp, load_address);
time_date_stamp);
} else {
// Failed to get the TimeDateStamp directly from memory. The next step
// to try is to read the file on disk. This must be done in a blocking
......@@ -352,14 +348,14 @@ void OnModuleEvent(const ModuleWatcher::ModuleEvent& event) {
{base::MayBlock(), base::TaskPriority::BEST_EFFORT,
base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
base::Bind(&HandleModuleLoadEventWithoutTimeDateStamp,
event.module_path, event.module_size, load_address));
event.module_path, event.module_size));
}
return;
}
case mojom::ModuleEventType::MODULE_LOADED: {
module_database->OnModuleLoad(
content::PROCESS_TYPE_BROWSER, event.module_path, event.module_size,
GetModuleTimeDateStamp(event.module_load_address), load_address);
GetModuleTimeDateStamp(event.module_load_address));
return;
}
}
......
......@@ -147,18 +147,16 @@ void ModuleDatabase::OnImeEnumerationFinished() {
void ModuleDatabase::OnModuleLoad(content::ProcessType process_type,
const base::FilePath& module_path,
uint32_t module_size,
uint32_t module_time_date_stamp,
uintptr_t module_load_address) {
uint32_t module_time_date_stamp) {
// Messages can arrive from any thread (UI thread for calls over IPC, and
// anywhere at all for calls from ModuleWatcher), so bounce if necessary.
// It is safe to use base::Unretained() because this class is a singleton that
// is never freed.
if (!task_runner_->RunsTasksInCurrentSequence()) {
task_runner_->PostTask(
FROM_HERE,
base::Bind(&ModuleDatabase::OnModuleLoad, base::Unretained(this),
process_type, module_path, module_size,
module_time_date_stamp, module_load_address));
FROM_HERE, base::Bind(&ModuleDatabase::OnModuleLoad,
base::Unretained(this), process_type, module_path,
module_size, module_time_date_stamp));
return;
}
......
......@@ -102,8 +102,7 @@ class ModuleDatabase : public ModuleDatabaseEventSource {
void OnModuleLoad(content::ProcessType process_type,
const base::FilePath& module_path,
uint32_t module_size,
uint32_t module_time_date_stamp,
uintptr_t module_load_address);
uint32_t module_time_date_stamp);
void OnModuleBlocked(const base::FilePath& module_path,
uint32_t module_size,
......
......@@ -34,9 +34,6 @@ constexpr size_t kSize2 = 20 * 4096;
constexpr uint32_t kTime1 = 0xDEADBEEF;
constexpr uint32_t kTime2 = 0xBAADF00D;
constexpr uintptr_t kGoodAddress1 = 0x04000000u;
constexpr uintptr_t kGoodAddress2 = 0x05000000u;
} // namespace
class ModuleDatabaseTest : public testing::Test {
......@@ -93,16 +90,14 @@ class ModuleDatabaseTest : public testing::Test {
TEST_F(ModuleDatabaseTest, TasksAreBounced) {
// Run a task on the current thread. This should not be bounced, so their
// results should be immediately available.
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
EXPECT_EQ(1u, modules().size());
// Run similar tasks on another thread with another module. These should be
// bounced.
base::PostTask(FROM_HERE,
base::Bind(&ModuleDatabase::OnModuleLoad,
base::Unretained(module_database()), kProcessType2,
dll2_, kSize1, kTime1, kGoodAddress1));
base::PostTask(FROM_HERE, base::Bind(&ModuleDatabase::OnModuleLoad,
base::Unretained(module_database()),
kProcessType2, dll2_, kSize1, kTime1));
EXPECT_EQ(1u, modules().size());
RunSchedulerUntilIdle();
EXPECT_EQ(2u, modules().size());
......@@ -112,8 +107,7 @@ TEST_F(ModuleDatabaseTest, DatabaseIsConsistent) {
EXPECT_EQ(0u, modules().size());
// Load a module.
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
EXPECT_EQ(1u, modules().size());
// Ensure that the process and module sets are up to date.
......@@ -123,8 +117,7 @@ TEST_F(ModuleDatabaseTest, DatabaseIsConsistent) {
m1->second.process_types);
// Provide a redundant load message for that module.
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
EXPECT_EQ(1u, modules().size());
// Ensure that the process and module sets haven't changed.
......@@ -133,8 +126,7 @@ TEST_F(ModuleDatabaseTest, DatabaseIsConsistent) {
m1->second.process_types);
// Load a second module into the process.
module_database()->OnModuleLoad(kProcessType1, dll2_, kSize2, kTime2,
kGoodAddress2);
module_database()->OnModuleLoad(kProcessType1, dll2_, kSize2, kTime2);
EXPECT_EQ(2u, modules().size());
// Ensure that the process and module sets are up to date.
......@@ -144,8 +136,7 @@ TEST_F(ModuleDatabaseTest, DatabaseIsConsistent) {
m2->second.process_types);
// Load the dummy.dll in the second process as well.
module_database()->OnModuleLoad(kProcessType2, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType2, dll1_, kSize1, kTime1);
EXPECT_EQ(ProcessTypeToBit(content::PROCESS_TYPE_BROWSER) |
ProcessTypeToBit(content::PROCESS_TYPE_RENDERER),
m1->second.process_types);
......@@ -196,8 +187,7 @@ TEST_F(ModuleDatabaseTest, Observers) {
module_database()->AddObserver(&before_load_observer);
EXPECT_EQ(0, before_load_observer.new_module_count());
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
RunSchedulerUntilIdle();
EXPECT_EQ(1, before_load_observer.new_module_count());
......@@ -231,8 +221,7 @@ TEST_F(ModuleDatabaseTest, OnKnownModuleLoaded) {
EXPECT_EQ(0, dummy_observer.known_module_loaded_count());
// Pretend the shell extension loads.
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
RunSchedulerUntilIdle();
EXPECT_EQ(1, dummy_observer.new_module_count());
......@@ -255,8 +244,7 @@ TEST_F(ModuleDatabaseTest, IsIdle) {
EXPECT_FALSE(module_database()->IsIdle());
// A load module event starts the timer.
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
EXPECT_FALSE(module_database()->IsIdle());
FastForwardToIdleTimer();
......@@ -277,8 +265,7 @@ TEST_F(ModuleDatabaseTest, IsIdle) {
module_database()->RemoveObserver(&is_idle_observer);
// Make the ModuleDabatase busy.
module_database()->OnModuleLoad(kProcessType2, dll2_, kSize2, kTime2,
kGoodAddress2);
module_database()->OnModuleLoad(kProcessType2, dll2_, kSize2, kTime2);
EXPECT_FALSE(module_database()->IsIdle());
// Adding an observer while busy doesn't.
......@@ -302,8 +289,7 @@ TEST_F(ModuleDatabaseTest, WaitUntilRegisteredModulesEnumerated) {
module_database()->AddObserver(&before_load_observer);
EXPECT_EQ(0, before_load_observer.new_module_count());
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1,
kGoodAddress1);
module_database()->OnModuleLoad(kProcessType1, dll1_, kSize1, kTime1);
FastForwardToIdleTimer();
// Idle state is prevented.
......
......@@ -134,7 +134,7 @@ void HandleModuleEvent(ModuleDatabase* module_database,
// Forward this to the module database.
module_database->OnModuleLoad(process_type, module_path, module_size,
module_time_date_stamp, load_address);
module_time_date_stamp);
}
} // namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment