Chromium Code Reviews| Index: extensions/renderer/script_injection_manager.cc |
| diff --git a/extensions/renderer/script_injection_manager.cc b/extensions/renderer/script_injection_manager.cc |
| index 1e872e245909748d0ffef6b0814f5ea2117c400c..7c51400233ddd5f0a8dcaf265f647d041acd70ad 100644 |
| --- a/extensions/renderer/script_injection_manager.cc |
| +++ b/extensions/renderer/script_injection_manager.cc |
| @@ -20,6 +20,7 @@ |
| #include "extensions/common/extension.h" |
| #include "extensions/common/extension_messages.h" |
| #include "extensions/common/extension_set.h" |
| +#include "extensions/common/feature_switch.h" |
| #include "extensions/renderer/extension_frame_helper.h" |
| #include "extensions/renderer/extension_injection_host.h" |
| #include "extensions/renderer/programmatic_script_injector.h" |
| @@ -189,15 +190,23 @@ void ScriptInjectionManager::RFOHelper::DidFinishDocumentLoad() { |
| base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle, |
| weak_factory_.GetWeakPtr()), |
| base::TimeDelta::FromMilliseconds(kScriptIdleTimeoutInMs)); |
| + |
| + if (FeatureSwitch::yield_between_content_script_runs()->IsEnabled()) { |
|
Devlin
2017/03/02 02:33:17
IsEnabled() is non-trivial - let's cache the resul
Kunihiko Sakamoto
2017/03/06 09:11:05
Added cache to FeatureSwitch class.
(ScriptInjecti
|
| + ExtensionFrameHelper::Get(render_frame())->ScheduleAtDocumentIdle( |
| + base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle, |
| + weak_factory_.GetWeakPtr())); |
| + } |
| } |
| void ScriptInjectionManager::RFOHelper::DidFinishLoad() { |
| DCHECK(content::RenderThread::Get()); |
| - // Ensure that we don't block any UI progress by running scripts. |
| - base::ThreadTaskRunnerHandle::Get()->PostTask( |
| - FROM_HERE, |
| - base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle, |
| - weak_factory_.GetWeakPtr())); |
| + if (!FeatureSwitch::yield_between_content_script_runs()->IsEnabled()) { |
| + // Ensure that we don't block any UI progress by running scripts. |
| + base::ThreadTaskRunnerHandle::Get()->PostTask( |
| + FROM_HERE, |
| + base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle, |
| + weak_factory_.GetWeakPtr())); |
| + } |
| } |
| void ScriptInjectionManager::RFOHelper::FrameDetached() { |