| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/extensions/dispatcher.h" | 5 #include "chrome/renderer/extensions/dispatcher.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/debug/alias.h" | 9 #include "base/debug/alias.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 IPC_MESSAGE_UNHANDLED(handled = false) | 512 IPC_MESSAGE_UNHANDLED(handled = false) |
| 513 IPC_END_MESSAGE_MAP() | 513 IPC_END_MESSAGE_MAP() |
| 514 | 514 |
| 515 return handled; | 515 return handled; |
| 516 } | 516 } |
| 517 | 517 |
| 518 void Dispatcher::WebKitInitialized() { | 518 void Dispatcher::WebKitInitialized() { |
| 519 // For extensions, we want to ensure we call the IdleHandler every so often, | 519 // For extensions, we want to ensure we call the IdleHandler every so often, |
| 520 // even if the extension keeps up activity. | 520 // even if the extension keeps up activity. |
| 521 if (is_extension_process_) { | 521 if (is_extension_process_) { |
| 522 forced_idle_timer_.Start(FROM_HERE, | 522 forced_idle_timer_.reset(new base::RepeatingTimer<content::RenderThread>); |
| 523 forced_idle_timer_->Start(FROM_HERE, |
| 523 base::TimeDelta::FromMilliseconds(kMaxExtensionIdleHandlerDelayMs), | 524 base::TimeDelta::FromMilliseconds(kMaxExtensionIdleHandlerDelayMs), |
| 524 RenderThread::Get(), &RenderThread::IdleHandler); | 525 RenderThread::Get(), &RenderThread::IdleHandler); |
| 525 } | 526 } |
| 526 | 527 |
| 527 // Initialize host permissions for any extensions that were activated before | 528 // Initialize host permissions for any extensions that were activated before |
| 528 // WebKit was initialized. | 529 // WebKit was initialized. |
| 529 for (std::set<std::string>::iterator iter = active_extension_ids_.begin(); | 530 for (std::set<std::string>::iterator iter = active_extension_ids_.begin(); |
| 530 iter != active_extension_ids_.end(); ++iter) { | 531 iter != active_extension_ids_.end(); ++iter) { |
| 531 const Extension* extension = extensions_.GetByID(*iter); | 532 const Extension* extension = extensions_.GetByID(*iter); |
| 532 CHECK(extension); | 533 CHECK(extension); |
| 533 } | 534 } |
| 534 | 535 |
| 535 EnableCustomElementWhiteList(); | 536 EnableCustomElementWhiteList(); |
| 536 | 537 |
| 537 is_webkit_initialized_ = true; | 538 is_webkit_initialized_ = true; |
| 538 } | 539 } |
| 539 | 540 |
| 540 void Dispatcher::IdleNotification() { | 541 void Dispatcher::IdleNotification() { |
| 541 if (is_extension_process_) { | 542 if (is_extension_process_) { |
| 542 // Dampen the forced delay as well if the extension stays idle for long | 543 // Dampen the forced delay as well if the extension stays idle for long |
| 543 // periods of time. | 544 // periods of time. |
| 544 int64 forced_delay_ms = std::max( | 545 int64 forced_delay_ms = std::max( |
| 545 RenderThread::Get()->GetIdleNotificationDelayInMs(), | 546 RenderThread::Get()->GetIdleNotificationDelayInMs(), |
| 546 kMaxExtensionIdleHandlerDelayMs); | 547 kMaxExtensionIdleHandlerDelayMs); |
| 547 forced_idle_timer_.Stop(); | 548 forced_idle_timer_->Stop(); |
| 548 forced_idle_timer_.Start(FROM_HERE, | 549 forced_idle_timer_->Start(FROM_HERE, |
| 549 base::TimeDelta::FromMilliseconds(forced_delay_ms), | 550 base::TimeDelta::FromMilliseconds(forced_delay_ms), |
| 550 RenderThread::Get(), &RenderThread::IdleHandler); | 551 RenderThread::Get(), &RenderThread::IdleHandler); |
| 551 } | 552 } |
| 552 } | 553 } |
| 553 | 554 |
| 554 void Dispatcher::OnRenderProcessShutdown() { | 555 void Dispatcher::OnRenderProcessShutdown() { |
| 555 v8_schema_registry_.reset(); | 556 v8_schema_registry_.reset(); |
| 557 forced_idle_timer_.reset(); |
| 556 } | 558 } |
| 557 | 559 |
| 558 void Dispatcher::OnSetFunctionNames( | 560 void Dispatcher::OnSetFunctionNames( |
| 559 const std::vector<std::string>& names) { | 561 const std::vector<std::string>& names) { |
| 560 function_names_.clear(); | 562 function_names_.clear(); |
| 561 for (size_t i = 0; i < names.size(); ++i) | 563 for (size_t i = 0; i < names.size(); ++i) |
| 562 function_names_.insert(names[i]); | 564 function_names_.insert(names[i]); |
| 563 } | 565 } |
| 564 | 566 |
| 565 void Dispatcher::OnSetSystemFont(const std::string& font_family, | 567 void Dispatcher::OnSetSystemFont(const std::string& font_family, |
| (...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1697 } | 1699 } |
| 1698 | 1700 |
| 1699 void Dispatcher::ClearPortData(int port_id) { | 1701 void Dispatcher::ClearPortData(int port_id) { |
| 1700 // Only the target port side has entries in |port_to_tab_id_map_|. If | 1702 // Only the target port side has entries in |port_to_tab_id_map_|. If |
| 1701 // |port_id| is a source port, std::map::erase() will just silently fail | 1703 // |port_id| is a source port, std::map::erase() will just silently fail |
| 1702 // here as a no-op. | 1704 // here as a no-op. |
| 1703 port_to_tab_id_map_.erase(port_id); | 1705 port_to_tab_id_map_.erase(port_id); |
| 1704 } | 1706 } |
| 1705 | 1707 |
| 1706 } // namespace extensions | 1708 } // namespace extensions |
| OLD | NEW |