You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/06/14 11:51:02 UTC

incubator-weex git commit: [WEEX-442][Core] Fix setViewport

Repository: incubator-weex
Updated Branches:
  refs/heads/master 44fd78c27 -> 578c35716


[WEEX-442][Core] Fix setViewport


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/578c3571
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/578c3571
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/578c3571

Branch: refs/heads/master
Commit: 578c35716166b12df30ac8f3039036cd922ce4af
Parents: 44fd78c
Author: miomin <mi...@foxmail.com>
Authored: Thu Jun 14 19:38:26 2018 +0800
Committer: miomin <mi...@foxmail.com>
Committed: Thu Jun 14 19:38:26 2018 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/WXSDKInstance.java     |  1 -
 .../java/com/taobao/weex/bridge/WXBridge.java   |  8 -----
 .../com/taobao/weex/bridge/WXBridgeManager.java |  4 ---
 .../java/com/taobao/weex/common/IWXBridge.java  |  2 --
 .../com/taobao/weex/ui/module/WXMetaModule.java |  1 -
 .../bridge/impl/weexcore_impl_android.cpp       |  8 -----
 .../jniprebuild/jniheader/WXBridge_jni.h        | 10 ------
 weex_core/Source/base/ViewUtils.h               |  4 +--
 weex_core/Source/core/bridge/js_bridge.cpp      |  4 +++
 .../core/render/manager/render_manager.cpp      | 34 ++++++++++++++++++++
 .../Source/core/render/manager/render_manager.h | 19 ++++++++++-
 .../Source/core/render/node/render_list.cpp     | 13 ++++----
 .../Source/core/render/node/render_mask.cpp     |  5 +--
 .../Source/core/render/node/render_object.cpp   | 11 +------
 .../Source/core/render/node/render_object.h     |  4 +--
 .../Source/core/render/page/render_page.cpp     |  3 +-
 weex_core/Source/core/render/page/render_page.h |  7 ----
 17 files changed, 71 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index d7d8581..9f59e30 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -318,7 +318,6 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
 
   public void setInstanceViewPortWidth(int instanceViewPortWidth) {
     this.mInstanceViewPortWidth = instanceViewPortWidth;
-    WXSDKManager.getInstance().getWXBridgeManager().setViewPortWidth(getInstanceId(), instanceViewPortWidth);
   }
 
   public int getInstanceViewPortWidth(){

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
index cc2d1a9..4059d97 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
@@ -94,9 +94,6 @@ public class WXBridge implements IWXBridge {
 
   private native void nativeRegisterCoreEnv(String key, String value);
 
-  private native void nativeSetViewPortWidth(String instanceId, float value);
-
-
   /**
    * update global config,
    * @param config params
@@ -565,11 +562,6 @@ public class WXBridge implements IWXBridge {
     nativeRegisterCoreEnv(key, value);
   }
 
-  @Override
-  public void setViewPortWidth(String instanceId, float value) {
-    nativeSetViewPortWidth(instanceId, value);
-  }
-
   public void reportNativeInitStatus(String statusCode, String errorMsg) {
     if (WXErrorCode.WX_JS_FRAMEWORK_INIT_SINGLE_PROCESS_SUCCESS.getErrorCode().equals(statusCode)
             || WXErrorCode.WX_JS_FRAMEWORK_INIT_FAILED.getErrorCode().equals(statusCode)) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index 5d20f14..9726098 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -2672,10 +2672,6 @@ public class WXBridgeManager implements Callback, BactchExecutor {
     return mWXBridge.getRenderFinishTime(instanceId);
   }
 
-  public void setViewPortWidth(String instanceId, float value) {
-    mWXBridge.setViewPortWidth(instanceId, value);
-  }
-
   public void setMargin(String instanceId, String ref, CSSShorthand.EDGE edge, float value) {
     mWXBridge.setMargin(instanceId, ref, edge, value);
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
index 25821e3..0207d86 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
@@ -186,7 +186,5 @@ public interface IWXBridge extends IWXObject {
 
   void registerCoreEnv(String key, String value);
 
-  void setViewPortWidth(String instanceId, float value);
-
   void reportNativeInitStatus(String statusCode, String errorMsg);
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java b/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java
index 93a01c7..c85fb5e 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java
@@ -65,7 +65,6 @@ public class WXMetaModule extends WXModule {
                 } else {
                     int width = jsObj.getInteger(WIDTH);
                     if (width > 0) {
-                        // todo 问题:js -> java -> native,应该在native就拦截下请求,并修改ViewPortWidth
                         mWXSDKInstance.setInstanceViewPortWidth(width);
                     }
                     WXLogUtils.d("[WXMetaModule] setViewport success[width]=" + width);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
index e731026..94a3ac6 100644
--- a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
+++ b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
@@ -289,14 +289,6 @@ static void RegisterCoreEnv(JNIEnv *env, jobject jcaller, jstring key, jstring v
   WXCoreEnvironment::getInstance()->AddOption(jString2StrFast(env, key), jString2StrFast(env, value));
 }
 
-static void SetViewPortWidth(JNIEnv *env, jobject jcaller, jstring instanceId, jfloat value) {
-    const char *cInstanceId = env->GetStringUTFChars(instanceId, JNI_FALSE);
-    WeexCoreManager::getInstance()->getPlatformBridge()->setViewPortWidth(
-            cInstanceId,value
-    );
-}
-
-
 static jint InitFramework(JNIEnv *env, jobject object, jstring script, jobject params) {
   jThis = env->NewGlobalRef(object);
   jclass tempClass = env->FindClass(

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h b/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
index 424b1f2..3af71be 100644
--- a/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
+++ b/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
@@ -134,10 +134,6 @@ static void RegisterCoreEnv(JNIEnv* env, jobject jcaller,
     jstring key,
     jstring value);
 
-static void SetViewPortWidth(JNIEnv* env, jobject jcaller,
-    jstring instanceId,
-    jfloat value);
-
 static void UpdateGlobalConfig(JNIEnv* env, jobject jcaller,
     jstring config);
 
@@ -305,12 +301,6 @@ static const JNINativeMethod kMethodsWXBridge[] = {
 "Ljava/lang/String;"
 ")"
 "V", reinterpret_cast<void*>(RegisterCoreEnv) },
-    { "nativeSetViewPortWidth",
-"("
-"Ljava/lang/String;"
-"F"
-")"
-"V", reinterpret_cast<void*>(SetViewPortWidth) },
     { "nativeUpdateGlobalConfig",
 "("
 "Ljava/lang/String;"

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/base/ViewUtils.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/base/ViewUtils.h b/weex_core/Source/base/ViewUtils.h
index f73aeca..d6cbf4e 100644
--- a/weex_core/Source/base/ViewUtils.h
+++ b/weex_core/Source/base/ViewUtils.h
@@ -64,7 +64,7 @@ namespace WeexCore {
 
     float realPx = (src * WXCoreEnvironment::getInstance()->DeviceWidth() /
                     viewport);
-    float result = realPx > 0.005 && realPx < 1 ? 1 : rint(realPx);
+    float result = realPx > 0.005 && realPx < 1 ? 1.0f : realPx;
     return result;
   }
 
@@ -120,7 +120,7 @@ namespace WeexCore {
       return NAN;
 
     float realPx = (pxValue * customViewport / WXCoreEnvironment::getInstance()->DeviceWidth());
-    float result = realPx > 0.005 && realPx < 1 ? 1 : rint(realPx);
+    float result = realPx > 0.005 && realPx < 1 ? 1.0f : realPx;
     return result;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/bridge/js_bridge.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/bridge/js_bridge.cpp b/weex_core/Source/core/bridge/js_bridge.cpp
index 17608d8..1163f05 100644
--- a/weex_core/Source/core/bridge/js_bridge.cpp
+++ b/weex_core/Source/core/bridge/js_bridge.cpp
@@ -47,6 +47,10 @@ namespace WeexCore {
     void *JSBridge::onCallNativeModule(const char *pageId, const char *module, const char *method,
                                        const char *arguments, int argumentsLength, const char *options,
                                        int optionsLength) {
+
+        RenderManager::GetInstance()->CallNativeModule(pageId, module, method, arguments, argumentsLength,
+                                                       options, optionsLength);
+
         return WeexCoreManager::getInstance()->getPlatformBridge()->callNativeModule(
                 pageId, module, method, arguments,
                 argumentsLength, options,

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/manager/render_manager.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp
index 0eebc82..699c29f 100644
--- a/weex_core/Source/core/render/manager/render_manager.cpp
+++ b/weex_core/Source/core/render/manager/render_manager.cpp
@@ -19,7 +19,10 @@
 
 #include <utility>
 #include <vector>
+#include <wson_parser.h>
 
+#include "base/ViewUtils.h"
+#include "core/css/constants_name.h"
 #include "base/TimeUtils.h"
 #include "core/layout/measure_func_adapter.h"
 #include "core/parser/dom_wson.h"
@@ -183,6 +186,37 @@ bool RenderManager::CreateFinish(const std::string &page_id) {
   return page->CreateFinish();
 }
 
+bool RenderManager::CallNativeModule(const char *pageId, const char *module, const char *method,
+                                     const char *arguments, int argumentsLength,
+                                     const char *options, int optionsLength) {
+  if (strcmp(module, "meta") == 0) {
+    CallMetaModule(method, arguments);
+  }
+}
+
+bool RenderManager::CallMetaModule(const char *method, const char *arguments) {
+
+  if (strcmp(method, "setViewport") == 0) {
+    wson_parser parser(arguments);
+    if (parser.isArray(parser.nextType())) {
+      int size = parser.nextArraySize();
+      for (int i = 0; i < size; i++) {
+        uint8_t value_type = parser.nextType();
+        if (parser.isMap(value_type)) {
+          int map_size = parser.nextMapSize();
+          for (int j = 0; j < map_size; j++) {
+            std::string key = parser.nextMapKeyUTF8();
+            std::string value = parser.nextStringUTF8(parser.nextType());
+            if (strcmp(key.c_str(), WIDTH) == 0) {
+              RenderManager::GetInstance()->set_viewport_width(getFloat(value.c_str()));
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
 RenderPage *RenderManager::GetPage(const std::string &page_id) {
   std::map<std::string, RenderPage *>::iterator iter =
       this->pages_.find(page_id);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/manager/render_manager.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h
index 9abe2da..e7e0f44 100644
--- a/weex_core/Source/core/render/manager/render_manager.h
+++ b/weex_core/Source/core/render/manager/render_manager.h
@@ -22,13 +22,17 @@
 #include <map>
 #include <string>
 
+#include "core/css/constants_value.h"
+
 namespace WeexCore {
 
 class RenderPage;
 
 class RenderManager {
  private:
-  RenderManager() {}
+  RenderManager() {
+    this->viewport_width_ = kDefaultViewPortWidth;
+  }
 
   ~RenderManager() {}
 
@@ -75,6 +79,12 @@ class RenderManager {
 
   bool CreateFinish(const std::string &page_id);
 
+  bool CallNativeModule(const char *pageId, const char *module, const char *method,
+                        const char *arguments, int argumentsLength, const char *options,
+                        int optionsLength);
+
+  bool CallMetaModule(const char *method, const char *arguments);
+
   RenderPage *GetPage(const std::string &page_id);
 
   bool ClosePage(const std::string &page_id);
@@ -86,9 +96,16 @@ class RenderManager {
     return g_pInstance;
   }
 
+  inline float viewport_width() const { return this->viewport_width_; }
+
+  inline void set_viewport_width(float viewport_width) {
+    this->viewport_width_ = viewport_width;
+  }
+
  private:
   static RenderManager *g_pInstance;
   std::map<std::string, RenderPage *> pages_;
+  float viewport_width_ = -1;
 };
 }  // namespace WeexCore
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/node/render_list.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_list.cpp b/weex_core/Source/core/render/node/render_list.cpp
index 84df8ec..bce9384 100644
--- a/weex_core/Source/core/render/node/render_list.cpp
+++ b/weex_core/Source/core/render/node/render_list.cpp
@@ -18,6 +18,7 @@
  */
 #include <cmath>
 #include <utility>
+#include <core/render/manager/render_manager.h>
 
 #include "base/ViewUtils.h"
 #include "core/css/constants_name.h"
@@ -112,8 +113,8 @@ void RenderList::PreCalculateCellWidth() {
 
     this->available_width_ =
         TakeStyleWidth() -
-        getWebPxByWidth(getPaddingLeft(), GetRenderPage()->viewport_width()) -
-        getWebPxByWidth(getPaddingRight(), GetRenderPage()->viewport_width());
+        getWebPxByWidth(getPaddingLeft(), RenderManager::GetInstance()->viewport_width()) -
+        getWebPxByWidth(getPaddingRight(), RenderManager::GetInstance()->viewport_width());
 
     if (AUTO_VALUE == this->column_count_ &&
         AUTO_VALUE == this->column_width_) {
@@ -216,19 +217,19 @@ std::string RenderList::CalculateSpanOffset() {
 
 float RenderList::TakeStyleWidth() {
   float width =
-      getWebPxByWidth(getLayoutWidth(), GetRenderPage()->viewport_width());
+      getWebPxByWidth(getLayoutWidth(), RenderManager::GetInstance()->viewport_width());
   if (isnan(width) || width <= 0) {
     if (getParent() != nullptr) {
       width = getWebPxByWidth(getParent()->getLayoutWidth(),
-                              GetRenderPage()->viewport_width());
+                              RenderManager::GetInstance()->viewport_width());
     }
     if (isnan(width) || width <= 0) {
       width = getWebPxByWidth(RenderObject::getStyleWidth(),
-                              GetRenderPage()->viewport_width());
+                              RenderManager::GetInstance()->viewport_width());
     }
   }
   if (isnan(width) || width <= 0) {
-    width = GetViewPortWidth();
+    width = RenderManager::GetInstance()->viewport_width();
   }
   return width;
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/node/render_mask.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_mask.cpp b/weex_core/Source/core/render/node/render_mask.cpp
index df925a2..8c80d0b 100644
--- a/weex_core/Source/core/render/node/render_mask.cpp
+++ b/weex_core/Source/core/render/node/render_mask.cpp
@@ -20,6 +20,7 @@
 #include <utility>
 
 #include "base/ViewUtils.h"
+#include "core/render/manager/render_manager.h"
 #include "core/config/core_environment.h"
 #include "core/css/constants_name.h"
 #include "core/render/node/render_mask.h"
@@ -54,9 +55,9 @@ std::map<std::string, std::string> *RenderMask::GetDefaultStyle() {
 
   style->insert(std::pair<std::string, std::string>(POSITION, "absolute"));
   style->insert(std::pair<std::string, std::string>(
-      WIDTH, to_string(getWebPxByWidth(width, GetViewPortWidth()))));
+      WIDTH, to_string(getWebPxByWidth(width, RenderManager::GetInstance()->viewport_width()))));
   style->insert(std::pair<std::string, std::string>(
-      HEIGHT, to_string(getWebPxByWidth(height, GetViewPortWidth()))));
+      HEIGHT, to_string(getWebPxByWidth(height, RenderManager::GetInstance()->viewport_width()))));
   style->insert(std::pair<std::string, std::string>(TOP, "0"));
   return style;
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/node/render_object.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp
index fe0d25f..97f9287 100644
--- a/weex_core/Source/core/render/node/render_object.cpp
+++ b/weex_core/Source/core/render/node/render_object.cpp
@@ -305,15 +305,6 @@ const std::string RenderObject::GetAttr(const std::string &key) {
   }
 }
 
-float RenderObject::GetViewPortWidth() {
-  if (this->viewport_width_ >= 0) return this->viewport_width_;
-
-  RenderPage *page = GetRenderPage();
-  if (page == nullptr) return kDefaultViewPortWidth;
-
-  return page->viewport_width();
-}
-
 int RenderObject::AddRenderObject(int index, RenderObject *child) {
   if (child == nullptr || index < -1) {
     return index;
@@ -356,7 +347,7 @@ bool RenderObject::UpdateStyleInternal(const std::string key,
     functor(fallback);
     ret = true;
   } else {
-    float fvalue = getFloatByViewport(value, GetViewPortWidth());
+    float fvalue = getFloatByViewport(value, RenderManager::GetInstance()->viewport_width());
     if (!isnan(fvalue)) {
       functor(fvalue);
       ret = true;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/node/render_object.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h
index 1a6352c..95e0c1a 100644
--- a/weex_core/Source/core/render/node/render_object.h
+++ b/weex_core/Source/core/render/node/render_object.h
@@ -31,8 +31,7 @@
 
 #define convert_render_object_to_long(render) ((jlong)((intptr_t)render))
 
-#define convert_long_to_render_object(ptr) \
-  ((RenderObject *)((intptr_t)ptr))
+#define convert_long_to_render_object(ptr) ((RenderObject *)((intptr_t)ptr))
 
 namespace WeexCore {
 
@@ -151,7 +150,6 @@ class RenderObject : public IRenderObject {
   std::map<std::string, std::string> *styles_;
   std::map<std::string, std::string> *attributes_;
   std::set<std::string> *events_;
-  float viewport_width_ = -1;
   bool is_root_render_;
   bool is_sticky_ = false;
 };

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/page/render_page.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp
index 7e9bee5..c5be5e2 100644
--- a/weex_core/Source/core/render/page/render_page.cpp
+++ b/weex_core/Source/core/render/page/render_page.cpp
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include "core/render/page/render_page.h"
 #include "base/TimeUtils.h"
 #include "base/ViewUtils.h"
+#include "core/render/page/render_page.h"
 #include "core/config/core_environment.h"
 #include "core/css/constants_value.h"
 #include "core/layout/layout.h"
@@ -49,7 +49,6 @@ RenderPage::RenderPage(std::string page_id) {
 
   this->page_id_ = page_id;
   this->render_performance_ = new RenderPerformance();
-  this->viewport_width_ = kDefaultViewPortWidth;
   this->render_page_size_.first =
       WXCoreEnvironment::getInstance()->DeviceWidth();
   this->render_page_size_.second = NAN;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/578c3571/weex_core/Source/core/render/page/render_page.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/page/render_page.h b/weex_core/Source/core/render/page/render_page.h
index 9310e16..4fe91c1 100644
--- a/weex_core/Source/core/render/page/render_page.h
+++ b/weex_core/Source/core/render/page/render_page.h
@@ -143,12 +143,6 @@ public:
 
   inline std::string page_id() { return this->page_id_; }
 
-  inline float viewport_width() const { return this->viewport_width_; }
-
-  inline void set_viewport_width(float viewport_width) {
-    this->viewport_width_ = viewport_width;
-  }
-
   inline bool is_dirty() { return this->is_dirty_.load(); }
 
   inline void set_is_dirty(bool dirty) { this->is_dirty_.store(dirty); }
@@ -167,7 +161,6 @@ public:
   std::atomic_bool has_fore_layout_action_{false};
 
  private:
-  float viewport_width_;
   RenderObject *render_root_ = nullptr;
   std::string page_id_;
   std::pair<float, float> render_page_size_;