Browse Source

fix: make webContents.id work even after destroy (#27070)

Co-authored-by: Jeremy Rose <[email protected]>
trop[bot] 4 years ago
parent
commit
011315574c
1 changed files with 7 additions and 0 deletions
  1. 7 0
      lib/browser/api/web-contents.ts

+ 7 - 0
lib/browser/api/web-contents.ts

@@ -528,6 +528,13 @@ WebContents.prototype._init = function () {
   this.goToOffset = navigationController.goToOffset.bind(navigationController);
   this.getActiveIndex = navigationController.getActiveIndex.bind(navigationController);
   this.length = navigationController.length.bind(navigationController);
+  // Read off the ID at construction time, so that it's accessible even after
+  // the underlying C++ WebContents is destroyed.
+  const id = this.id;
+  Object.defineProperty(this, 'id', {
+    value: id,
+    writable: false
+  });
 
   this._windowOpenHandler = null;