Implement ewk_settings_auto_fitting_set
authorGrzegorz Czajkowski <g.czajkowski@samsung.com>
Tue, 3 Nov 2015 12:08:13 +0000 (13:08 +0100)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 07:55:23 +0000 (07:55 +0000)
Some pages, for example, google.com are classified as mobile content due to
following condition:

// Document.cpp
if (m_docType->publicId().startsWith("-//wapforum//dtd xhtml mobile 1."))
m_isMobileDocument = true;

This results in collecting xhtmlmp.css style to define viewport properties:

@viewport {
width: auto;
/* Ideally these should be removed. Currently here to avoid test result regressions. */
min-zoom: 0.25;
max-zoom: 5;
}

As a result, we end up using 0.25 page scale while rendering. To prevent this,
mobile builds are adjusting content to viewport by:

void RenderView::ApplyWebPreferences(...) {
...
settings->setShrinksViewportContentToFit(true);
}

"ubrowser --mobile" needs to call ewk_settings_auto_fitting_set(true) to adjust content.

To implement this API, divide EwkSettings into:
1. content::WebPreferences (managed by chromium's content).
2. WebPreferencesEfl (Efl specific settings that renderer needs to be aware of).
3. public methods (set/get) to manage particular settings (accessible inside
Browser process only).

Get rid of |WebViewSettings::link_effects_enabled| which does not need to be sent
to renderer. Instead, define EwkSettings::get/setLinkEffectEnabled().

Reuse content::WebPreferences to pass javascript_can_open_windows_automatically.

Rename WebViewSettings to WebPreferencesEfl to be main store for EFL settings which
do not exist inside content::WebPreferences.

This is squash of beta/m42 patches:
1. http://165.213.202.130/gerrit/#/c/88657/
reviewed by: Antonio Gomes, DONGJUN KiM, Janusz Majnert, SeungSeop Park, arno renevier

2. http://165.213.202.130/gerrit/#/c/88881/
reviewed by: DONGJUN KiM, Janusz Majnert

3. http://165.213.202.130/gerrit/#/c/91502/
reviewed by: Antonio Gomes, Janusz Majnert

Together with: Id93cf96af154384d9ee0da76c982e68c8880867b

Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=14640

Reviewed by: a1.gomes, sns.park

Change-Id: I31c80affdd9c2e26bc583b84841db2cd4002b391
Signed-off-by: Grzegorz Czajkowski <g.czajkowski@samsung.com>
13 files changed:
tizen_src/ewk/efl_integration/browser/web_view_browser_message_filter.cc
tizen_src/ewk/efl_integration/common/render_messages_ewk.h
tizen_src/ewk/efl_integration/common/web_preferences_efl.h [new file with mode: 0644]
tizen_src/ewk/efl_integration/common/web_view_settings.h [deleted file]
tizen_src/ewk/efl_integration/efl_integration.gypi
tizen_src/ewk/efl_integration/eweb_view.cc
tizen_src/ewk/efl_integration/private/ewk_settings_private.h
tizen_src/ewk/efl_integration/public/ewk_settings.cc
tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc
tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h
tizen_src/ewk/efl_integration/renderer/render_view_observer_efl.cc
tizen_src/ewk/efl_integration/renderer/render_view_observer_efl.h
tizen_src/ewk/ubrowser/window.cc

index 0a7abfb00dc91847ffff1f5c31ce063f5e037d0e..5816ecc48a248899231a466b95a87d3406619ee3 100644 (file)
@@ -90,7 +90,7 @@ class WebViewBrowserMessageFilterPrivate
     if (!web_view_)
       return;
 
-    if (is_link && web_view_->GetSettings()->getWebViewSettings().link_effect_enabled)
+    if (is_link && web_view_->GetSettings()->getLinkEffectEnabled())
       sound_effect::playLinkEffect();
     web_view_->HandleTapGestureForSelection(is_content_editable);
   }
index 6f2c9976d46042f2142c0e9a2118855d151378ec..6e2fd76d35ee959084faf2223bbb627446f484e6 100644 (file)
@@ -10,7 +10,7 @@
 #include "common/error_params.h"
 #include "common/cache_params_efl.h"
 #include "common/navigation_policy_params.h"
-#include "common/web_view_settings.h"
+#include "common/web_preferences_efl.h"
 #include "ipc/ipc_message_macros.h"
 #include "ipc/ipc_channel_handle.h"
 #include "private/ewk_hit_test_private.h"
@@ -34,9 +34,8 @@ IPC_STRUCT_TRAITS_BEGIN(Ewk_Wrt_Message_Data)
   IPC_STRUCT_TRAITS_MEMBER(reference_id)
 IPC_STRUCT_TRAITS_END()
 
-IPC_STRUCT_TRAITS_BEGIN(WebViewSettings)
-  IPC_STRUCT_TRAITS_MEMBER(javascript_can_open_windows)
-  IPC_STRUCT_TRAITS_MEMBER(link_effect_enabled)
+IPC_STRUCT_TRAITS_BEGIN(WebPreferencesEfl)
+  IPC_STRUCT_TRAITS_MEMBER(shrinks_viewport_content_to_fit)
 IPC_STRUCT_TRAITS_END()
 
 IPC_STRUCT_TRAITS_BEGIN(ErrorParams)
@@ -223,7 +222,7 @@ IPC_MESSAGE_ROUTED1(EwkViewMsg_PlainTextGet,
 IPC_MESSAGE_ROUTED1(EwkViewMsg_SelectionTextStyleState,
                     SelectionStylePrams /* params */)
 
-IPC_MESSAGE_ROUTED1(EflViewMsg_UpdateSettings, WebViewSettings)
+IPC_MESSAGE_ROUTED1(EwkSettingsMsg_UpdateWebKitPreferencesEfl, WebPreferencesEfl)
 
 IPC_MESSAGE_ROUTED2(EwkHostMsg_HandleTapGestureWithContext,
                     bool /* is_link */,
diff --git a/tizen_src/ewk/efl_integration/common/web_preferences_efl.h b/tizen_src/ewk/efl_integration/common/web_preferences_efl.h
new file mode 100644 (file)
index 0000000..67bf49d
--- /dev/null
@@ -0,0 +1,19 @@
+// Copyright (c) 2014, 2015 Samsung Electronics Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEB_PREFERENCES_EFL_H
+#define WEB_PREFERENCES_EFL_H
+
+// Contains settings from Ewk_Settings that do not belong to content::WebPreferences
+// and need to be sent to renderer.
+struct WebPreferencesEfl {
+  bool shrinks_viewport_content_to_fit =
+#if defined(OS_TIZEN_MOBILE)
+      true;
+#else
+      false;
+#endif
+};
+
+#endif // WEB_PREFERENCES_EFL_H
diff --git a/tizen_src/ewk/efl_integration/common/web_view_settings.h b/tizen_src/ewk/efl_integration/common/web_view_settings.h
deleted file mode 100644 (file)
index d5c468e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WEB_VIEW_SETTINGS_H
-#define WEB_VIEW_SETTINGS_H
-
-struct WebViewSettings {
-  WebViewSettings()
-    : javascript_can_open_windows(false),
-      link_effect_enabled(true) {}
-
-  bool javascript_can_open_windows;
-  bool link_effect_enabled;
-};
-
-#endif // WEB_VIEW_SETTINGS_H
index d6eda0825b03aa4c3b078c74da5b5ca0fca04c6c..c7262975ec813437f1d246cb04e19d556d458181 100644 (file)
       'common/version_info.cc',
       'common/web_contents_utils.cc',
       'common/web_contents_utils.h',
-      'common/web_view_settings.h',
+      'common/web_preferences_efl.h',
 
       'private/back_forward_list.h',
       'private/ewk_auth_challenge_private.h',
index 10f9de12f02e27abfe39306cea01e4abc7a28142..02a27652dd96319b9f7bce2e43bf42bc09821c90 100644 (file)
@@ -889,8 +889,8 @@ void EWebView::UpdateWebKitPreferences() {
   render_view_host->UpdateWebkitPreferences(settings_->getPreferences());
 
   IPC::Message* message =
-      new EflViewMsg_UpdateSettings(render_view_host->GetRoutingID(),
-                                    settings_->getWebViewSettings());
+      new EwkSettingsMsg_UpdateWebKitPreferencesEfl(render_view_host->GetRoutingID(),
+                                                    settings_->getPreferencesEfl());
 
   if (render_view_host->IsRenderViewLive()) {
     render_view_host->Send(message);
index 9df748d0a0b8d37dd355a1b2ac7b1964f76b8110..a5f8ae8635b1114ebab15dc13eb4e5579bc0f5d2 100644 (file)
@@ -8,8 +8,8 @@
 #include <Eina.h>
 #include <Evas.h>
 
-#include "common/web_view_settings.h"
 #include <content/public/common/web_preferences.h>
+#include "common/web_preferences_efl.h"
 #include "public/ewk_settings.h"
 
 class Ewk_Settings {
@@ -30,7 +30,6 @@ class Ewk_Settings {
         , m_defaultKeypadEnabled(true)
         , m_useKeyPadWithoutUserAction(true)
         , m_textStyleState(true)
-        , m_autoFitting(false)
         , m_detectContentsAutomatically(true)
         , m_evas_object(evas_object)
 #if defined(OS_TIZEN_TV)
@@ -45,6 +44,7 @@ class Ewk_Settings {
         , m_openPanelEnabled(true)
         , m_allowRestrictedURL(true)
         , m_URLBarHide(false)
+        , m_linkEffectEnabled(true)
     { }
 
     const char* defaultTextEncoding() const {
@@ -79,17 +79,18 @@ class Ewk_Settings {
     void setUseKeyPadWithoutUserAction(bool enable) { m_useKeyPadWithoutUserAction = enable; }
     bool textStyleStateState() const { return m_textStyleState; }
     void setTextStyleStateState(bool enable) { m_textStyleState = enable; }
-    bool autoFitting() const {return m_autoFitting; }
-    void setAutoFitting(bool enable) {m_autoFitting = enable; }
     void setSpdyEnabled(bool flag);
     void setDetectContentsAutomatically(bool enable) { m_detectContentsAutomatically = enable; }
     bool detectContentsAutomatically() const { return m_detectContentsAutomatically; }
-    WebViewSettings& getWebViewSettings() { return m_settings; }
-    const WebViewSettings& getWebViewSettings() const { return m_settings; }
 
     Evas_Object* getEvasObject() { return m_evas_object; }
+
     content::WebPreferences& getPreferences() { return m_preferences; }
     const content::WebPreferences& getPreferences() const { return m_preferences; }
+
+    WebPreferencesEfl& getPreferencesEfl() { return m_preferences_efl; }
+    const WebPreferencesEfl& getPreferencesEfl() const { return m_preferences_efl; }
+
 #if defined(OS_TIZEN_TV)
     void setCacheBuilderEnabled(bool enable) { m_cacheBuilderEnabled = enable; }
 #endif
@@ -113,10 +114,13 @@ class Ewk_Settings {
     bool getAllowRestrictedURLEnabled() const { return m_allowRestrictedURL; }
     void setURLBarHideEnabled(bool enable) { m_URLBarHide = enable; }
     bool getURLBarHideEnabled() const { return m_URLBarHide; }
+    void setLinkEffectEnabled(bool enable) { m_linkEffectEnabled = enable; }
+    bool getLinkEffectEnabled() const { return m_linkEffectEnabled; }
 
   private:
     content::WebPreferences m_preferences;
-    WebViewSettings m_settings;
+    WebPreferencesEfl m_preferences_efl;
+
     bool m_autofillPasswordForm;
     bool m_formCandidateData;
     bool m_autofillProfileForm;
@@ -149,6 +153,7 @@ class Ewk_Settings {
     bool m_openPanelEnabled;
     bool m_allowRestrictedURL;
     bool m_URLBarHide;
+    bool m_linkEffectEnabled;
 };
 
 #endif // ewk_settings_private_h
index 518992ba27305aabab86310ce6ede58210817a2f..300b2da727045a210136296eeed8d2b51f240f3b 100644 (file)
@@ -106,10 +106,7 @@ Eina_Bool ewk_settings_plugins_enabled_get(const Ewk_Settings* settings)
 Eina_Bool ewk_settings_auto_fitting_set(Ewk_Settings* settings, Eina_Bool enable)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
-  // FIXME: To be implemented when the functionality is required.
-  // To be added in WebkitPreferences -> WebSettings -> Settings
-  settings->setAutoFitting(enable);
-  settings->getPreferences().initialize_at_minimum_page_scale = enable;
+  settings->getPreferencesEfl().shrinks_viewport_content_to_fit = enable;
   ewkUpdateWebkitPreferences(settings->getEvasObject());
   return true;
 }
@@ -117,9 +114,7 @@ Eina_Bool ewk_settings_auto_fitting_set(Ewk_Settings* settings, Eina_Bool enable
 Eina_Bool ewk_settings_auto_fitting_get(const Ewk_Settings* settings)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
-  // FIXME: To be implemented when the functionality is required.
-  // To be added in WebkitPreferences -> WebSettings -> Settings
-  return settings->autoFitting();
+  return settings->getPreferencesEfl().shrinks_viewport_content_to_fit;
 }
 
 Eina_Bool ewk_settings_force_zoom_set(Ewk_Settings* settings, Eina_Bool enable)
@@ -285,15 +280,14 @@ Eina_Bool ewk_settings_link_magnifier_enabled_get(const Ewk_Settings *settings)
 Eina_Bool ewk_settings_link_effect_enabled_set(Ewk_Settings* settings, Eina_Bool linkEffectEnabled)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
-  settings->getWebViewSettings().link_effect_enabled = linkEffectEnabled;
-  ewkUpdateWebkitPreferences(settings->getEvasObject());
+  settings->setLinkEffectEnabled(linkEffectEnabled);
   return true;
 }
 
 Eina_Bool ewk_settings_link_effect_enabled_get(const Ewk_Settings* settings)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
-  return settings->getWebViewSettings().link_effect_enabled ? true : false;
+  return settings->getLinkEffectEnabled();
 }
 
 Eina_Bool ewk_settings_uses_encoding_detector_set(Ewk_Settings* settings, Eina_Bool use)
@@ -621,7 +615,7 @@ Eina_Bool ewk_settings_default_text_encoding_name_set(Ewk_Settings* settings, co
 Eina_Bool ewk_settings_scripts_can_open_windows_set(Ewk_Settings* settings, Eina_Bool enable)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
-  settings->getWebViewSettings().javascript_can_open_windows = (enable == true);
+  settings->getPreferences().javascript_can_open_windows_automatically = enable;
   ewkUpdateWebkitPreferences(settings->getEvasObject());
   return true;
 }
@@ -629,7 +623,7 @@ Eina_Bool ewk_settings_scripts_can_open_windows_set(Ewk_Settings* settings, Eina
 Eina_Bool ewk_settings_scripts_can_open_windows_get(const Ewk_Settings* settings)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
-  return settings->getWebViewSettings().javascript_can_open_windows ? true : false;
+  return settings->getPreferences().javascript_can_open_windows_automatically;
 }
 
 Eina_Bool ewk_settings_encoding_detector_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
index 8610b57926c44924a6b921124b4d11d53720e3e8..da4636336487fdb5f5bb08ee238bcbb892a542cd 100644 (file)
@@ -71,7 +71,8 @@ class WrtUrlParseImpl : public content::WrtUrlParseBase {
   WrtWidget* wrt_widget_;
 };
 
-ContentRendererClientEfl::ContentRendererClientEfl() {
+ContentRendererClientEfl::ContentRendererClientEfl()
+    : render_view_(nullptr) {
 }
 
 ContentRendererClientEfl::~ContentRendererClientEfl() {
@@ -124,8 +125,7 @@ void ContentRendererClientEfl::RenderFrameCreated(content::RenderFrame* render_f
 }
 
 void ContentRendererClientEfl::RenderViewCreated(content::RenderView* render_view) {
-  content::RenderViewImpl* rvi = static_cast<content::RenderViewImpl*>(render_view);
-  ApplyCustomSettings(rvi->webview());
+  ApplyCustomSettings(render_view->GetWebView());
 
   // Deletes itself when render_view is destroyed.
   new RenderViewObserverEfl(render_view, this);
@@ -134,6 +134,7 @@ void ContentRendererClientEfl::RenderViewCreated(content::RenderView* render_vie
 #if !defined(EWK_BRINGUP)
   render_view->SetWrtUrlParser(wrt_url_parser_.get());
 #endif
+  render_view_ = render_view;
 }
 
 bool ContentRendererClientEfl::OverrideCreatePlugin(
@@ -163,6 +164,12 @@ bool ContentRendererClientEfl::WillSendRequest(blink::WebFrame* frame,
   return true;
 }
 
+bool ContentRendererClientEfl::AllowPopup() {
+  return render_view_
+      ? render_view_->GetWebkitPreferences().javascript_can_open_windows_automatically
+      : false;
+}
+
 void ContentRendererClientEfl::WillReleaseScriptContext(blink::WebFrame* frame,
                                                         v8::Handle<v8::Context> context,
                                                         int world_id) {
index 2e3cbbf69e4a175a445119a08456a3ce08e524f5..f490b2bc6782ded3ba038353052356a1c61560c5 100644 (file)
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTER_RENDERER_CLIENT_EFL_H
-#define CONTER_RENDERER_CLIENT_EFL_H
+#ifndef CONTENT_RENDERER_CLIENT_EFL_H
+#define CONTENT_RENDERER_CLIENT_EFL_H
 
-#include "common/web_view_settings.h"
 #include "content/public/renderer/content_renderer_client.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "renderer/content_renderer_client_efl.h"
@@ -53,9 +52,7 @@ class ContentRendererClientEfl : public content::ContentRendererClient
                                 v8::Handle<v8::Context>,
                                 int world_id);
 
-  bool AllowPopup() override {
-    return m_settings.javascript_can_open_windows;
-  }
+  bool AllowPopup() override;
 
   bool WillSendRequest(blink::WebFrame* frame,
                        ui::PageTransition transition_type,
@@ -75,7 +72,6 @@ class ContentRendererClientEfl : public content::ContentRendererClient
                                      size_t length) override;
 
   bool IsLinkVisited(unsigned long long link_hash) override;
-  void SetWebViewSettings(const WebViewSettings& settings) { m_settings = settings; }
 
   blink::WebSpeechSynthesizer* OverrideSpeechSynthesizer(
       blink::WebSpeechSynthesizerClient* client) override;
@@ -87,7 +83,7 @@ class ContentRendererClientEfl : public content::ContentRendererClient
   scoped_ptr<WrtUrlParseImpl> wrt_url_parser_;
   scoped_ptr<RenderProcessObserverEfl> render_process_observer_;
   scoped_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_;
-  WebViewSettings m_settings;
+  content::RenderView* render_view_;
 };
 
 #endif
index 529fe8c9f13208ae95eb692d4d7af7f25d1b4ada..c5b212c3155985e0e42a6ba4638899b87168e5ff 100644 (file)
@@ -33,6 +33,7 @@
 #include "third_party/WebKit/public/web/WebPageSerializer.h"
 #include "third_party/WebKit/public/web/WebView.h"
 #include "third_party/WebKit/public/web/WebNodeList.h"
+#include "third_party/WebKit/public/web/WebSettings.h"
 
 // XXX: config.h needs to be included before internal blink headers.
 //      It'd be great if we did not include not internal blibk headers.
@@ -149,7 +150,6 @@ RenderViewObserverEfl::RenderViewObserverEfl(
   : content::RenderViewObserver(render_view),
     cached_min_page_scale_factor_(-1.0),
     cached_max_page_scale_factor_(-1.0),
-    link_effect_enabled_(true),
     renderer_client_(render_client)
 {
 }
@@ -179,7 +179,7 @@ bool RenderViewObserverEfl::OnMessageReceived(const IPC::Message& message)
     IPC_MESSAGE_HANDLER(EwkViewMsg_SetBrowserFont, OnSetBrowserFont);
     IPC_MESSAGE_HANDLER(EwkViewMsg_SuspendScheduledTask, OnSuspendScheduledTasks);
     IPC_MESSAGE_HANDLER(EwkViewMsg_ResumeScheduledTasks, OnResumeScheduledTasks);
-    IPC_MESSAGE_HANDLER(EflViewMsg_UpdateSettings, OnUpdateSettings);
+    IPC_MESSAGE_HANDLER(EwkSettingsMsg_UpdateWebKitPreferencesEfl, OnUpdateWebKitPreferencesEfl);
     IPC_MESSAGE_HANDLER(ViewMsg_SetViewMode, OnSetViewMode);
 
     IPC_MESSAGE_UNHANDLED(handled = false)
@@ -600,13 +600,16 @@ void RenderViewObserverEfl::OnSetViewMode(blink::WebViewMode view_mode) {
     view->setViewMode(view_mode);
 }
 
-void RenderViewObserverEfl::OnUpdateSettings(const WebViewSettings& settings)
+void RenderViewObserverEfl::OnUpdateWebKitPreferencesEfl(const WebPreferencesEfl& web_preferences_efl)
 {
-  DCHECK(renderer_client_);
-  if (renderer_client_) {
-    static_cast<ContentRendererClientEfl*>(renderer_client_)->SetWebViewSettings(settings);
+  // FIXME(g.czajkowski@samsung.com) web_preferences_efl should be probably stored
+  // to be restored when new RenderView is being created.
+  // Otherwise, changed settings will *do not* apply to newly created WebView.
+  blink::WebView* view = render_view()->GetWebView();
+  if (view && view->settings()) {
+    view->settings()->setShrinksViewportContentToFit(web_preferences_efl.shrinks_viewport_content_to_fit);
+    // and more if they exist in web_preferences_efl.
   }
-  link_effect_enabled_ = settings.link_effect_enabled;
 }
 
 void RenderViewObserverEfl::HandleTap(const blink::WebGestureEvent& event)
index 4e08de4890be7c1dce8f6edba8f456d52daeb36d..ad425183625f11c7371b0343e3f63a88452bce4d 100644 (file)
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "base/timer/timer.h"
+#include "common/web_preferences_efl.h"
 #include "content/public/renderer/render_view_observer.h"
 #include "content/public/renderer/render_view_observer.h"
 #include "renderer/content_renderer_client_efl.h"
@@ -38,7 +39,6 @@ class WebGestureEvent;
 
 class EwkViewMsg_LoadData_Params;
 class Hit_Test_Params;
-class WebViewSettings;
 
 class RenderViewObserverEfl: public content::RenderViewObserver {
  public:
@@ -83,7 +83,7 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
   void CheckContentsSize();
   void OnSuspendScheduledTasks();
   void OnResumeScheduledTasks();
-  void OnUpdateSettings(const WebViewSettings& settings);
+  void OnUpdateWebKitPreferencesEfl(const WebPreferencesEfl&);
 
   void HandleTap(const blink::WebGestureEvent& event);
 
@@ -95,8 +95,6 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
   gfx::Size last_sent_contents_size_;
   base::OneShotTimer check_contents_size_timer_;
 
-  bool link_effect_enabled_;
-
   content::ContentRendererClient* renderer_client_;
 };
 
index b114fa2f92c24682334b9cf778dd3348a104ba30..a973c54eaab4b09c95b61ee57163caadbd66899a 100644 (file)
@@ -77,6 +77,9 @@ Window::Window(Browser& browser, int width, int height)
   ewk_settings_form_profile_data_enabled_set(GetEwkSettings(), true);
   ewk_settings_form_candidate_data_enabled_set(GetEwkSettings(), true);
 
+  // Auto fit is already turned on for mobile, enable it for "ubrowser --mobile" as well.
+  ewk_settings_auto_fitting_set(GetEwkSettings(), !browser_.IsDesktop());
+
   if (elm_win_wm_rotation_supported_get(window_)) {
     static const int rots[] = {0, 90, 270};
     elm_win_wm_rotation_available_rotations_set(