Browse Source

fix signature of zoom getter apis

deepak1556 8 years ago
parent
commit
203a920c64

+ 2 - 2
atom/browser/api/atom_api_web_contents.cc

@@ -1672,9 +1672,9 @@ void WebContents::BuildPrototype(v8::Isolate* isolate,
       .SetMethod("getFrameRate", &WebContents::GetFrameRate)
       .SetMethod("invalidate", &WebContents::Invalidate)
       .SetMethod("setZoomLevel", &WebContents::SetZoomLevel)
-      .SetMethod("getZoomLevel", &WebContents::GetZoomLevel)
+      .SetMethod("_getZoomLevel", &WebContents::GetZoomLevel)
       .SetMethod("setZoomFactor", &WebContents::SetZoomFactor)
-      .SetMethod("getZoomFactor", &WebContents::GetZoomFactor)
+      .SetMethod("_getZoomFactor", &WebContents::GetZoomFactor)
       .SetMethod("getType", &WebContents::GetType)
       .SetMethod("getWebPreferences", &WebContents::GetWebPreferences)
       .SetMethod("getOwnerBrowserWindow", &WebContents::GetOwnerBrowserWindow)

+ 20 - 0
lib/browser/api/web-contents.js

@@ -206,6 +206,26 @@ WebContents.prototype.printToPDF = function (options, callback) {
   this._printToPDF(printingSetting, callback)
 }
 
+WebContents.prototype.getZoomLevel = function (callback) {
+  if (typeof callback !== 'function') {
+    throw new Error('Must pass function as an argument')
+  }
+  process.nextTick(() => {
+    const zoomLevel = this._getZoomLevel()
+    callback(zoomLevel)
+  })
+}
+
+WebContents.prototype.getZoomFactor = function (callback) {
+  if (typeof callback !== 'function') {
+    throw new Error('Must pass function as an argument')
+  }
+  process.nextTick(() => {
+    const zoomFactor = this._getZoomFactor()
+    callback(zoomFactor)
+  })
+}
+
 // Add JavaScript wrappers for WebContents class.
 WebContents.prototype._init = function () {
   // The navigation controller.

+ 10 - 8
lib/browser/guest-view-manager.js

@@ -184,7 +184,6 @@ const attachGuest = function (event, elementInstanceId, guestInstanceId, params)
     guestInstanceId: guestInstanceId,
     nodeIntegration: params.nodeintegration != null ? params.nodeintegration : false,
     plugins: params.plugins,
-    zoomFactor: embedder.getZoomFactor(),
     webSecurity: !params.disablewebsecurity,
     blinkFeatures: params.blinkfeatures,
     disableBlinkFeatures: params.disableblinkfeatures
@@ -213,15 +212,18 @@ const attachGuest = function (event, elementInstanceId, guestInstanceId, params)
     return
   }
 
-  webViewManager.addGuest(guestInstanceId, elementInstanceId, embedder, guest, webPreferences)
-  guest.attachParams = params
-  embedderElementsMap[key] = guestInstanceId
+  embedder.getZoomFactor(function (zoomFactor) {
+    webPreferences.zoomFactor = zoomFactor
+    webViewManager.addGuest(guestInstanceId, elementInstanceId, embedder, guest, webPreferences)
+    guest.attachParams = params
+    embedderElementsMap[key] = guestInstanceId
 
-  guest.setEmbedder(embedder)
-  guestInstance.embedder = embedder
-  guestInstance.elementInstanceId = elementInstanceId
+    guest.setEmbedder(embedder)
+    guestInstance.embedder = embedder
+    guestInstance.elementInstanceId = elementInstanceId
 
-  watchEmbedder(embedder)
+    watchEmbedder(embedder)
+  })
 }
 
 // Destroy an existing guest instance.