The native window.open system has been better for quite a while now, and it resolves a lot of issues. We should make it the default and deprecate the old `BrowserWindowProxy`-based method.
shell/browser/web_contents_preferences.cc
prefs->fantasy_font_family_map[blink::web_pref::kCommonScript] = font;
  }
  int size;
  if (GetAsInteger(&preference_, "defaultFontSize", &size))
    prefs->default_font_size = size;
  if (GetAsInteger(&preference_, "defaultMonospaceFontSize", &size))
    prefs->default_fixed_font_size = size;
  if (GetAsInteger(&preference_, "minimumFontSize", &size))
    prefs->minimum_font_size = size;
  std::string encoding;
  if (GetAsString(&preference_, "defaultEncoding", &encoding))
    prefs->default_encoding = encoding;
  
  std::string color;
  if (GetAsString(&preference_, options::kBackgroundColor, &color)) {
    prefs->background_color = color;
  } else if (!IsEnabled(options::kOffscreen)) {
    prefs->background_color = "#fff";
  }
  
  int opener_id;
  if (GetAsInteger(&preference_, options::kOpenerID, &opener_id))
    prefs->opener_id = opener_id;
  
  prefs->context_isolation = IsEnabled(options::kContextIsolation, true);
  int guest_instance_id = 0;
  if (GetAsInteger(&preference_, options::kGuestInstanceID, &guest_instance_id))
    prefs->guest_instance_id = guest_instance_id;
  prefs->hidden_page = false;
  if (guest_instance_id) {