v1.14.0: las pestanas se presentan como navegador de escritorio
Google degrada sus apps cuando detecta un WebView embebido: Sheets abria en blanco y la sesion no terminaba de asentarse aunque la cuenta ya estuviera iniciada. Ahora cada pestana declara un User-Agent de Chrome de escritorio (por plataforma), que es lo que hacen los clientes de escritorio que embeben Google. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Este commit está contenido en:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "labstream-desktop",
|
"name": "labstream-desktop",
|
||||||
"version": "1.13.0",
|
"version": "1.14.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "App de escritorio (Windows) que envuelve Labstream OS — cliente del servidor del NAS.",
|
"description": "App de escritorio (Windows) que envuelve Labstream OS — cliente del servidor del NAS.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
2
src-tauri/Cargo.lock
generado
2
src-tauri/Cargo.lock
generado
@@ -2366,7 +2366,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "labstream-desktop"
|
name = "labstream-desktop"
|
||||||
version = "1.13.0"
|
version = "1.14.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"active-win-pos-rs",
|
"active-win-pos-rs",
|
||||||
"device_query",
|
"device_query",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "labstream-desktop"
|
name = "labstream-desktop"
|
||||||
version = "1.13.0"
|
version = "1.14.0"
|
||||||
description = "Cliente de escritorio de Labstream OS"
|
description = "Cliente de escritorio de Labstream OS"
|
||||||
authors = ["Labstream SAS"]
|
authors = ["Labstream SAS"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -67,6 +67,16 @@ const GOOGLE_HOSTS: &[&str] = &[
|
|||||||
"myaccount.google.com",
|
"myaccount.google.com",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Cadena de navegador de escritorio. Sin esto, WebView2 se anuncia como control embebido y
|
||||||
|
// Google Sheets/Docs se quedan en blanco. Se declara por plataforma porque Google tambien
|
||||||
|
// mira la coherencia entre el sistema declarado y el resto de la cadena.
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
const UA_ESCRITORIO: &str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
const UA_ESCRITORIO: &str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
||||||
|
#[cfg(not(any(target_os = "windows", target_os = "macos")))]
|
||||||
|
const UA_ESCRITORIO: &str = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
||||||
|
|
||||||
fn is_google_host(host: &str) -> bool {
|
fn is_google_host(host: &str) -> bool {
|
||||||
let h = host.to_ascii_lowercase();
|
let h = host.to_ascii_lowercase();
|
||||||
GOOGLE_HOSTS.iter().any(|d| h == *d || h.ends_with(&format!(".{}", d)))
|
GOOGLE_HOSTS.iter().any(|d| h == *d || h.ends_with(&format!(".{}", d)))
|
||||||
@@ -603,6 +613,7 @@ fn create_tab<R: Runtime>(app: &AppHandle<R>, url: Option<String>, activate: boo
|
|||||||
let init = INIT_JS_TPL.replace("__LABEL__", &label).replace("__ORIGIN__", SERVER_URL);
|
let init = INIT_JS_TPL.replace("__LABEL__", &label).replace("__ORIGIN__", SERVER_URL);
|
||||||
let app_zoom = app.clone();
|
let app_zoom = app.clone();
|
||||||
let builder = WebviewBuilder::new(&label, WebviewUrl::External(parsed))
|
let builder = WebviewBuilder::new(&label, WebviewUrl::External(parsed))
|
||||||
|
.user_agent(UA_ESCRITORIO)
|
||||||
.initialization_script(&init)
|
.initialization_script(&init)
|
||||||
// Deja pasar las descargas (entregables, exportaciones) Y avisa al terminar.
|
// Deja pasar las descargas (entregables, exportaciones) Y avisa al terminar.
|
||||||
// El aviso no es un adorno: en WebView2 la interfaz de descargas queda SIEMPRE
|
// El aviso no es un adorno: en WebView2 la interfaz de descargas queda SIEMPRE
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "Labstream OS",
|
"productName": "Labstream OS",
|
||||||
"version": "1.13.0",
|
"version": "1.14.0",
|
||||||
"identifier": "co.labstream.os",
|
"identifier": "co.labstream.os",
|
||||||
"build": {
|
"build": {
|
||||||
"frontendDist": "../dist"
|
"frontendDist": "../dist"
|
||||||
|
|||||||
Referencia en una nueva incidencia
Block a user