| Index: ui/compositor/compositor.cc
|
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
|
| index f263927ae16d7a09ed593251bf1b78032a1e93c3..1941c6d3eb81107e681546badf816e2e933824e7 100644
|
| --- a/ui/compositor/compositor.cc
|
| +++ b/ui/compositor/compositor.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/stl_util.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_split.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/sys_info.h"
|
| @@ -83,6 +84,15 @@ Compositor::Compositor(const cc::FrameSinkId& frame_sink_id,
|
| refresh_rate_ = context_factory_->GetRefreshRate();
|
| settings.main_frame_before_activation_enabled = false;
|
|
|
| + if (command_line->HasSwitch(switches::kLimitFps)) {
|
| + std::string fps_str =
|
| + command_line->GetSwitchValueASCII(switches::kLimitFps);
|
| + double fps;
|
| + if (base::StringToDouble(fps_str, &fps) && fps > 0) {
|
| + forced_refresh_rate_ = fps;
|
| + }
|
| + }
|
| +
|
| if (command_line->HasSwitch(cc::switches::kUIShowCompositedLayerBorders)) {
|
| std::string layer_borders_string = command_line->GetSwitchValueASCII(
|
| cc::switches::kUIShowCompositedLayerBorders);
|
| @@ -371,6 +381,10 @@ void Compositor::SetAuthoritativeVSyncInterval(
|
|
|
| void Compositor::SetDisplayVSyncParameters(base::TimeTicks timebase,
|
| base::TimeDelta interval) {
|
| + if (forced_refresh_rate_) {
|
| + timebase = base::TimeTicks();
|
| + interval = base::TimeDelta::FromSeconds(1) / forced_refresh_rate_;
|
| + }
|
| if (interval.is_zero()) {
|
| // TODO(brianderson): We should not be receiving 0 intervals.
|
| interval = cc::BeginFrameArgs::DefaultInterval();
|
|
|