Merge pull request #10337 from overleaf/jpa-localized-network-error-messages

[web] pdf-caching: handle localize network error messages

GitOrigin-RevId: 41b0b9e87818d87d08c4cf24991751779243ae32
This commit is contained in:
Jakob Ackermann 2022-11-07 14:24:37 +00:00 committed by Copybot
parent 3db03ef678
commit 665ab24cbd
2 changed files with 74 additions and 1 deletions

View file

@ -9,6 +9,7 @@ import {
prefetchLargeEnabled, prefetchLargeEnabled,
trackPdfDownloadEnabled, trackPdfDownloadEnabled,
} from './pdf-caching-flags' } from './pdf-caching-flags'
import { isNetworkError } from '../../../utils/isNetworkError'
// 30 seconds: The shutdown grace period of a clsi pre-emp instance. // 30 seconds: The shutdown grace period of a clsi pre-emp instance.
const STALE_OUTPUT_REQUEST_THRESHOLD_MS = 30 * 1000 const STALE_OUTPUT_REQUEST_THRESHOLD_MS = 30 * 1000
@ -79,7 +80,6 @@ export function generatePdfCachingTransportFactory(PDFJS) {
const isStaleOutputRequest = () => const isStaleOutputRequest = () =>
performance.now() - this.startTime > STALE_OUTPUT_REQUEST_THRESHOLD_MS performance.now() - this.startTime > STALE_OUTPUT_REQUEST_THRESHOLD_MS
const is404 = err => err.message === 'non successful response status: 404' const is404 = err => err.message === 'non successful response status: 404'
const isNetworkError = err => err.message === 'Failed to fetch'
const isFromOutputPDFRequest = err => const isFromOutputPDFRequest = err =>
OError.getFullInfo(err).url === this.url OError.getFullInfo(err).url === this.url

View file

@ -0,0 +1,73 @@
const NETWORK_ERRORS = [
// fetch
'Failed to fetch',
// fetch
'NetworkError when attempting to fetch resource.',
// download body
'Load failed',
// dns
'A server with the specified hostname could not be found.',
'Es wurde kein Server mit dem angegebenen Hostnamen gefunden.',
'Impossibile trovare un server con il nome host specificato.',
'未能找到使用指定主机名的服务器。',
// offline
'The Internet connection appears to be offline.',
'Internetanslutningen verkar vara nedkopplad.',
// connection error
'Could not connect to the server.',
'Impossible de se connecter au serveur.',
'Verbindung zum Server konnte nicht hergestellt werden.',
'Не удалось подключиться к серверу.',
'يبدو أنه لا يوجد اتصال بالإنترنت.',
'无法连接服务器。',
// disconnected
'The network connection was lost.',
'A conexão de rede foi perdida.',
'A hálózati kapcsolat megszakadt.',
'A ligação de rede foi cortada.',
'Ağ bağlantısı kesildi.',
'Conexiunea de rețea a fost pierdută.',
'De netwerkverbinding is verbroken.',
'Die Netzwerkverbindung wurde unterbrochen.',
'La conexión de red se ha perdido.',
'La conexión de red se perdió.',
'La connessione è stata persa.',
'La connexion réseau a été perdue.',
'La connexió de xarxa sha perdut.',
'Mistet nettverksforbindelsen.',
'Netværksforbindelsen gik tabt.',
'Nätverksanslutningen förlorades.',
'Połączenie sieciowe zostało przerwane.',
'Veza s mrežom je prekinuta.',
'la connessione è stata persa.',
'Đã mất kết nối mạng.',
'Сетевое соединение потеряно.',
'החיבור לרשת אבד.',
'تم فقدان اتصال الشبكة.',
'キャンセルしました',
'ネットワーク接続が切れました。',
'已取消',
'網絡連線中斷。',
'網路連線中斷。',
// slow network
'The request timed out.',
'Begäran nådde en maxtidsgräns.',
'Esgotou-se o tempo limite da solicitação.',
'Il tempo di attesa della richiesta è scaduto.',
'La requête a expiré.',
'Przekroczenie limitu czasu żądania.',
'Se agotó el tiempo de espera.',
'Se ha agotado el tiempo de espera.',
'Tempo di richiesta scaduto.',
'Temps esgotat per a la sol·licitud.',
'Zeitüberschreitung bei der Anforderung.',
'Превышен лимит времени на запрос.',
'انتهت مهلة الطلب.',
'データベースの要求が時間切れになりました。',
'要求逾時。',
'요청한 시간이 초과되었습니다.',
]
export function isNetworkError(err) {
return NETWORK_ERRORS.includes(err?.message)
}