Browse Source

#10039 add BrowserView.fromId

Siyuan Liu 7 years ago
parent
commit
ae7c1ae741

+ 2 - 1
atom/browser/api/atom_api_browser_view.cc

@@ -152,7 +152,8 @@ void Initialize(v8::Local<v8::Object> exports,
 
   mate::Dictionary browser_view(
       isolate, BrowserView::GetConstructor(isolate)->GetFunction());
-
+  browser_view.SetMethod("fromId",
+                          &mate::TrackableObject<BrowserView>::FromWeakMapID);
   mate::Dictionary dict(isolate, exports);
   dict.Set("BrowserView", browser_view);
 }

+ 8 - 0
docs/api/browser-view.md

@@ -38,6 +38,14 @@ view.webContents.loadURL('https://electron.atom.io')
 * `options` Object (optional)
   * `webPreferences` Object (optional) - See [BrowserWindow](browser-window.md).
 
+### Static Methods
+
+#### `BrowserView.fromId(id)`
+
+* `id` Integer
+
+Returns `BrowserView` - The view with the given `id`.
+
 ### Instance Properties
 
 Objects created with `new BrowserView` have the following properties:

+ 10 - 0
spec/api-browser-view-spec.js

@@ -100,4 +100,14 @@ describe('BrowserView module', function () {
       assert.ok(!view.webContents.getOwnerBrowserWindow())
     })
   })
+
+  describe('BrowserView.fromId()', function () {
+    it('returns the view with given id', function () {
+      view = new BrowserView()
+      w.setBrowserView(view)
+      assert.notEqual(view.id, null)
+      let view2 = BrowserView.fromId(view.id)
+      assert.equal(view2.webContents.id, view.webContents.id)
+    })
+  })
 })