Commit 62f1b330 authored by samuong@chromium.org's avatar samuong@chromium.org

[chromedriver] Rename "emulateViewport" to "mobile".

BUG=chromedriver:843
TBR=stgao@chromium.org

Review URL: https://codereview.chromium.org/379803007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282089 0039d316-1c4b-4281-b951-d872f2087c98
parent 91700448
......@@ -8,7 +8,7 @@ DeviceMetrics::DeviceMetrics(int width, int height, double device_scale_factor)
: width(width),
height(height),
device_scale_factor(device_scale_factor),
emulate_viewport(false),
mobile(false),
fit_window(true),
text_autosizing(true),
font_scale_factor(1) {}
......
......@@ -12,7 +12,7 @@ struct DeviceMetrics {
int width;
int height;
double device_scale_factor;
bool emulate_viewport;
bool mobile;
bool fit_window;
bool text_autosizing;
double font_scale_factor;
......
......@@ -7,11 +7,15 @@
#include "chrome/test/chromedriver/chrome/devtools_client.h"
#include "chrome/test/chromedriver/chrome/mobile_emulation_override_manager.h"
#include "chrome/test/chromedriver/chrome/status.h"
#include "chrome/test/chromedriver/chrome/version.h"
MobileEmulationOverrideManager::MobileEmulationOverrideManager(
DevToolsClient* client,
const DeviceMetrics* device_metrics)
: client_(client), overridden_device_metrics_(device_metrics) {
const DeviceMetrics* device_metrics,
const BrowserInfo* browser_info)
: client_(client),
overridden_device_metrics_(device_metrics),
browser_info_(browser_info) {
if (overridden_device_metrics_)
client_->AddListener(this);
}
......@@ -39,13 +43,24 @@ Status MobileEmulationOverrideManager::ApplyOverrideIfNeeded() {
if (overridden_device_metrics_ == NULL)
return Status(kOk);
// Old revisions of Blink expect a parameter named |emulateViewport| but in
// Blink revision 177367 (Chromium revision 281046, build number 2081) this
// was renamed to |mobile|.
std::string tmp = "mobile";
if (browser_info_->browser_name == "chrome") {
if (browser_info_->build_no <= 2081)
tmp = "emulateViewport";
} else {
if (browser_info_->blink_revision < 177367)
tmp = "emulateViewport";
}
base::DictionaryValue params;
params.SetInteger("width", overridden_device_metrics_->width);
params.SetInteger("height", overridden_device_metrics_->height);
params.SetDouble("deviceScaleFactor",
overridden_device_metrics_->device_scale_factor);
params.SetBoolean("emulateViewport",
overridden_device_metrics_->emulate_viewport);
params.SetBoolean(tmp, overridden_device_metrics_->mobile);
params.SetBoolean("fitWindow", overridden_device_metrics_->fit_window);
params.SetBoolean("textAutosizing",
overridden_device_metrics_->text_autosizing);
......
......@@ -16,6 +16,7 @@ namespace base {
class DictionaryValue;
}
struct BrowserInfo;
class DevToolsClient;
struct DeviceMetrics;
class Status;
......@@ -25,7 +26,8 @@ class Status;
class MobileEmulationOverrideManager : public DevToolsEventListener {
public:
MobileEmulationOverrideManager(DevToolsClient* client,
const DeviceMetrics* device_metrics);
const DeviceMetrics* device_metrics,
const BrowserInfo* browser_info);
virtual ~MobileEmulationOverrideManager();
// Overridden from DevToolsEventListener:
......@@ -39,6 +41,7 @@ class MobileEmulationOverrideManager : public DevToolsEventListener {
DevToolsClient* client_;
const DeviceMetrics* overridden_device_metrics_;
const BrowserInfo* browser_info_;
DISALLOW_COPY_AND_ASSIGN(MobileEmulationOverrideManager);
};
......
......@@ -11,6 +11,7 @@
#include "chrome/test/chromedriver/chrome/mobile_emulation_override_manager.h"
#include "chrome/test/chromedriver/chrome/status.h"
#include "chrome/test/chromedriver/chrome/stub_devtools_client.h"
#include "chrome/test/chromedriver/chrome/version.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
......@@ -58,19 +59,19 @@ void AssertDeviceMetricsCommand(const Command& command,
ASSERT_EQ("Page.setDeviceMetricsOverride", command.method);
int width, height;
double device_scale_factor, font_scale_factor;
bool emulate_viewport, fit_window, text_autosizing;
bool mobile, fit_window, text_autosizing;
ASSERT_TRUE(command.params.GetInteger("width", &width));
ASSERT_TRUE(command.params.GetInteger("height", &height));
ASSERT_TRUE(command.params.GetDouble("deviceScaleFactor",
&device_scale_factor));
ASSERT_TRUE(command.params.GetBoolean("emulateViewport", &emulate_viewport));
ASSERT_TRUE(command.params.GetBoolean("mobile", &mobile));
ASSERT_TRUE(command.params.GetBoolean("fitWindow", &fit_window));
ASSERT_TRUE(command.params.GetBoolean("textAutosizing", &text_autosizing));
ASSERT_TRUE(command.params.GetDouble("fontScaleFactor", &font_scale_factor));
ASSERT_EQ(device_metrics.width, width);
ASSERT_EQ(device_metrics.height, height);
ASSERT_EQ(device_metrics.device_scale_factor, device_scale_factor);
ASSERT_EQ(device_metrics.emulate_viewport, emulate_viewport);
ASSERT_EQ(device_metrics.mobile, mobile);
ASSERT_EQ(device_metrics.fit_window, fit_window);
ASSERT_EQ(device_metrics.text_autosizing, text_autosizing);
ASSERT_EQ(device_metrics.font_scale_factor, font_scale_factor);
......@@ -81,7 +82,10 @@ void AssertDeviceMetricsCommand(const Command& command,
TEST(MobileEmulationOverrideManager, SendsCommandOnConnect) {
RecorderDevToolsClient client;
DeviceMetrics device_metrics(1, 2, 3.0);
MobileEmulationOverrideManager manager(&client, &device_metrics);
BrowserInfo browser_info;
MobileEmulationOverrideManager manager(&client,
&device_metrics,
&browser_info);
ASSERT_EQ(0u, client.commands_.size());
ASSERT_EQ(kOk, manager.OnConnected(&client).code());
......@@ -95,7 +99,10 @@ TEST(MobileEmulationOverrideManager, SendsCommandOnConnect) {
TEST(MobileEmulationOverrideManager, SendsCommandOnNavigation) {
RecorderDevToolsClient client;
DeviceMetrics device_metrics(1, 2, 3.0);
MobileEmulationOverrideManager manager(&client, &device_metrics);
BrowserInfo browser_info;
MobileEmulationOverrideManager manager(&client,
&device_metrics,
&browser_info);
base::DictionaryValue main_frame_params;
ASSERT_EQ(kOk,
manager.OnEvent(&client, "Page.frameNavigated", main_frame_params)
......
......@@ -124,7 +124,9 @@ WebViewImpl::WebViewImpl(const std::string& id,
navigation_tracker_(new NavigationTracker(client.get(), browser_info)),
dialog_manager_(new JavaScriptDialogManager(client.get())),
mobile_emulation_override_manager_(
new MobileEmulationOverrideManager(client.get(), device_metrics)),
new MobileEmulationOverrideManager(client.get(),
device_metrics,
browser_info)),
geolocation_override_manager_(
new GeolocationOverrideManager(client.get())),
heap_snapshot_taker_(new HeapSnapshotTaker(client.get())),
......
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