From 8d4d8f41d729dd0354d12fd99bd7d91b436feee5 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Thu, 22 Apr 2021 14:48:51 -0700 Subject: [PATCH] Exit the full screen video mode if opening a new tab via an intent. https://redmine.stoutner.com/issues/659 --- .../main/assets/de/guide_local_storage.html | 39 ++-- .../main/assets/en/guide_local_storage.html | 2 +- .../main/assets/es/guide_local_storage.html | 37 ++-- .../main/assets/fr/guide_local_storage.html | 38 ++-- .../main/assets/it/guide_local_storage.html | 36 ++-- .../assets/pt-rBR/guide_local_storage.html | 2 +- .../main/assets/ru/guide_local_storage.html | 44 ++-- .../main/assets/tr/guide_local_storage.html | 2 +- .../activities/MainWebViewActivity.java | 190 +++++++----------- app/src/main/res/values-de/strings.xml | 8 +- app/src/main/res/values-es/strings.xml | 8 +- app/src/main/res/values-fr/strings.xml | 13 +- app/src/main/res/values-it/strings.xml | 10 +- app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 12 +- app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values/strings.xml | 2 - app/src/main/res/xml/preferences.xml | 4 +- 18 files changed, 228 insertions(+), 221 deletions(-) diff --git a/app/src/main/assets/de/guide_local_storage.html b/app/src/main/assets/de/guide_local_storage.html index 15bba0a2..ac0d3168 100644 --- a/app/src/main/assets/de/guide_local_storage.html +++ b/app/src/main/assets/de/guide_local_storage.html @@ -32,42 +32,45 @@

Erstanbieter-Cookies

-

Cookies können in zwei Typen unterteilt werden: Erstanbieter-Cookies sind Cookies, die von der aktuell besuchten Website gesetzt werden.

+

Cookies können in zwei Typen unterteilt werden: Erstanbieter-Cookies sind dabei Cookies, die von der aktuell besuchten Website gesetzt werden.

Mit solchen Erstanbieter-Cookies können Websites z.B. Informationen auf einem Computer speichern, um diese bei späteren Aufrufen derselben Seite wieder zu verwenden. Zum Beispiel kann eine Internet-Seite, die das Wetter anzeigt, den Benutzer nach seiner Postleitzahl fragen und diese in einem Cookie speichern. Beim nächsten Besuch der Website wird dem Benutzer dann automatisch das Wetter für diese Postleitzahl/Region angezeigt, ohne dass der Benutzer diese erneut eingeben muss.

-

Wie viele anderen Dingen im Internet werden solche Cookies jedoch mittlerweile auch für Zwecke missbraucht, die Website-Besucher normalerweise nicht gestatten würden, wenn sie davon wüssten. +

Wie viele andere Dinge im Internet werden solche Cookies jedoch mittlerweile auch für Zwecke missbraucht, die Website-Besucher normalerweise nicht gestatten würden, wenn sie davon wüssten. Zum Beispiel können Websites eindeutige Kennzeichen oder Seriennummern in Cookies speichern. Jedes Mal wenn der Benutzer dann mit seinem Gerät diese Website aufruft, können dessen Bewegungen mit dem Profil dieser Seriennummer verknüpft werden, auch wenn dem Gerät inzwischen eine andere IP-Adresse zugewiesen wurde. So entstehen umfangreiche Profile über die Vorlieben von Website-Besuchern.

-

Almost all websites with logins require cookies to be enabled for a user to log in. - That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.

+

Für nahezu alle Internet-Seiten, bei denen man sich anmelden muss, müssen Cookies aktiviert sein. + Durch die Nutzung von Cookies stellen diese Internet-Seiten sicher, daß es sich um denselben angemeldeten Benutzer handelt, der von Seite zu Seite innerhalb einer Website navigiert. + Dies ist vermutlich die einzige legitime Nutzung von Cookies.

-

If cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

+

Wenn Cookies aktiviert sind, aber JavaScript deaktiviert ist, wird das Privatsphären-Icon zur Warnung in gelb dargestellt.

Drittanbieter-Cookies

-

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. - There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to - disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not - differentiate - between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

+

Drittanbieter-Cookies werden von Teilen von Websites gesetzt, die von anderen Servern geladen werden als von dem, dessen Adresse (URL) in der Adresszeile des Browsers angezeigt wird. + Es gibt eigentlich keinen guten Grund, solche Cookies überhaupt zuzulassen. Ab Privacy Browser Version 3.8 wurde die Option daher entfernt und selbst Google plant, + Drittanbieter-Cookies in Zukunft zu deaktivieren. + Auf Geräten mit Android KitKat (Version 4.4, API 19), unterscheidet WebView nicht + zwischen Erstanbieter- und Drittanbieter-Cookies. + Daher werden bei solchen Geräten immer auch Drittanbieter-Cookies zugelassen, sobald Cookies aktiviert sind.

DOM-Speicher

-

Document Object Model storage, also known as web storage, is like cookies on steroids. Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, - DOM storage can hold megabytes per site. Unlike cookies, DOM storage does not send all the data in the headers with every request. - Rather, it uses JavaScript to read and write data, which means it does not function when JavaScript is disabled.

+

Der Document-Object-Model-Speicher - auch als Web-Speicher bekannt - funktioniert wie "gedopte" Cookies. + Während alle Cookies einer einzelnen Internet-Adresse (URL) gemeinsam nur 4 Kilobytes an Daten speichern können, + können im DOM-Speicher mehrere Megabytes pro Internet-Seite gespeichert werden. + Die gespeicherten Daten werden dabei - im Gegensatz zu Cookies - nicht bei jeder Anfrage zur Gänze im Header mitgeschickt, + sondern mittels JavaScript gelesen und geschrieben, sodass diese Form der Datenspeicherung nicht funktioniert, wenn JavaScript deaktiviert ist.

Formulardaten

-

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. - Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. Beginning in Android Oreo (version 8.0, API 26), - WebView’s form data was replaced by the Autofill service. - As such, controls for form data no longer appear on newer Android devices.

+

Formulardaten enthalten Informationen, die in Web-Formulare eingegeben wurden (wie z.B. Benutzernamen, Adressen, Telefonnummern, usw.) und werden bei späteren Besuchen in Auswahl-Dialogen angezeigt. + Im Gegensatz zu in Cookies und im DOM-Speicher gespeicherten Daten werden diese Informationen nur nach Benutzer-Interaktion an den Webserver gesandt. Ab Android Oreo (Version 8.0, API 26) wurden + WebViews Formulardaten durch Googles Autofill-Service ersetzt. + Daher erscheinen Formulardaten auf neueren Android-Geräten nicht mehr.

\ No newline at end of file diff --git a/app/src/main/assets/en/guide_local_storage.html b/app/src/main/assets/en/guide_local_storage.html index d1e17176..2be2e650 100644 --- a/app/src/main/assets/en/guide_local_storage.html +++ b/app/src/main/assets/en/guide_local_storage.html @@ -51,7 +51,7 @@

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not + On devices with Android KitKat (version 4.4, API 19), WebView does not differentiate between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

diff --git a/app/src/main/assets/es/guide_local_storage.html b/app/src/main/assets/es/guide_local_storage.html index f09b8c99..3f93bab3 100644 --- a/app/src/main/assets/es/guide_local_storage.html +++ b/app/src/main/assets/es/guide_local_storage.html @@ -42,34 +42,37 @@ Luego, cada vez que un usuario visite la página web con ese dispositivo, puede vincularse a un perfil único que el servidor mantiene para ese número de serie, incluso si el dispositivo se conecta desde diferentes direcciones IP.

-

Almost all websites with logins require cookies to be enabled for a user to log in. - That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.

+

Casi todas las páginas web con logins requieren que las cookies estén habilitadas para que el usuario pueda iniciar sesión. + Así es como se aseguran de que sigues siendo tú al pasar de una página a otra de la web, y es, en mi opinión, el único uso legítimo de las cookies.

-

If cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

+

Si las cookies están activadas pero JavaScript está desactivado, el icono de privacidad será amarillo como advertencia.

-

Cookies de terceras partes

+

Cookies de terceros

-

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. - There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to - disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not - differentiate - between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

+

Las cookies de terceros son instaladas por partes de un sitio web que se cargan desde servidores diferentes a la URL que aparece en la parte superior de la página. + No hay ninguna buena razón para activar las cookies de terceros. La versión 3.8 de Privacy Browser eliminó la opción, e incluso Google planea + desactivarlas en un futuro.. + En dispositivos con Android KitKat (versión 4.4, API 19), WebView no + distingue entre cookies de origen y de terceros. + Por lo tanto, si se habilitan las cookies, también se habilitarán las de terceros.

Almacenamiento DOM

-

Document Object Model storage, also known as web storage, is like cookies on steroids. Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, - DOM storage can hold megabytes per site. Unlike cookies, DOM storage does not send all the data in the headers with every request. - Rather, it uses JavaScript to read and write data, which means it does not function when JavaScript is disabled.

+

El almacenamiento del Modelo de Objetos del Documento, también conocido como almacenamiento web, es como cookies con esteroides. + Mientras que el tamaño máximo de almacenamiento combinado para todas las cookies de una sola URL es de 4 kilobytes, el almacenamiento DOM puede soportar + megabytes por sitio. A diferencia de las cookies, el almacenamiento DOM no envía todos los datos de las cabeceras con cada solicitud. + Más bien, utiliza JavaScript para leer y escribir datos, lo que significa que no funciona cuando JavaScript está desactivado.

Datos de formulario

-

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. - Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. Beginning in Android Oreo (version 8.0, API 26), - WebView’s form data was replaced by the Autofill service. - As such, controls for form data no longer appear on newer Android devices.

+

Los datos de formulario contienen la información introducida en los formularios web, como los nombres de los usuarios, las direcciones, los números de teléfono, etc., + y los listan en un cuadro desplegable en futuras visitas. + A diferencia de las otras formas de almacenamiento local, los datos de los formularios no se envían al servidor web sin una interacción específica del usuario. + A partir de Android Oreo (versión 8.0, API 26), los datos de formulario de WebView fueron sustituidos por el + servicio Autofill o Autorelleno. + Por ello, los controles para los datos de los formularios ya no aparecen en los dispositivos Android más nuevos.

\ No newline at end of file diff --git a/app/src/main/assets/fr/guide_local_storage.html b/app/src/main/assets/fr/guide_local_storage.html index d9d3208a..320143a9 100644 --- a/app/src/main/assets/fr/guide_local_storage.html +++ b/app/src/main/assets/fr/guide_local_storage.html @@ -43,34 +43,38 @@ Ensuite, chaque fois qu'un utilisateur visite le site Web sur cet appareil, il peut être lié à un profil unique que le serveur conserve pour ce numéro de série. même si le périphérique se connecte à partir d'adresses IP différentes.

-

Almost all websites with logins require cookies to be enabled for a user to log in. - That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.

+

La quasi-totalité des sites web avec des identifiants nécessitent que les cookies soient activés pour qu'un utilisateur puisse se connecter. + C'est ainsi qu'ils s'assurent qu'il s'agit toujours de vous lorsque vous passez d'une page à l'autre du site, et c'est, à mon avis, la seule utilisation légitime des cookies.

-

If cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

+

Si les cookies sont activés mais que JavaScript est désactivé, l'icône de confidentialité sera jaune en guise d'avertissement.

-

Cookies de tiers

+

Cookies tiers

-

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. - There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to - disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not - differentiate - between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

+

Les cookies tiers sont définis par les parties d'un site web qui sont chargées à partir de serveurs différents de l'URL en haut de la page. + Il n'y a aucune bonne raison d'activer les cookies tiers. Privacy Browser 3.8 a supprimé cette option, et même Google prévoit de + les désactiver à l'avenir. + Sur les appareils équipés d'Android KitKat (version 4.4, API 19), WebView n'est pas + différencié + entre les cookies internes et les cookies tiers. Par conséquent, l'activation des cookies activera également les cookies tiers.

Stockage du DOM

-

Document Object Model storage, also known as web storage, is like cookies on steroids. Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, - DOM storage can hold megabytes per site. Unlike cookies, DOM storage does not send all the data in the headers with every request. - Rather, it uses JavaScript to read and write data, which means it does not function when JavaScript is disabled.

+

Le stockage du Document Object Model, également connu sous le nom de stockage web, est comme des cookies sous stéroïdes. + Alors que la taille maximale de stockage combinée pour tous les cookies d'une même URL est de 4 kilo-octets, le stockage DOM peut contenir + des mégaoctets par site. + Contrairement aux cookies, le stockage DOM n'envoie pas toutes les données dans les en-têtes avec chaque requête. + Il utilise plutôt JavaScript pour lire et écrire les données, ce qui signifie qu'il ne fonctionne pas lorsque JavaScript est désactivé.

Données de formulaire

-

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. - Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. Beginning in Android Oreo (version 8.0, API 26), - WebView’s form data was replaced by the Autofill service. - As such, controls for form data no longer appear on newer Android devices.

+

Les données de formulaire contiennent les informations saisies dans les formulaires web, comme les noms d'utilisateur, les adresses, les numéros de téléphone, + etc. et les répertorient dans une boîte déroulante lors de visites ultérieures. + Contrairement aux autres formes de stockage local, les données de formulaire ne sont pas envoyées au serveur web sans interaction spécifique de l'utilisateur. + À partir d'Android Oreo (version 8.0, API 26), les données de formulaire de WebView ont été remplacées par le + service Autofill. + Ainsi, les contrôles des données de formulaire n'apparaissent plus sur les appareils Android plus récents.

\ No newline at end of file diff --git a/app/src/main/assets/it/guide_local_storage.html b/app/src/main/assets/it/guide_local_storage.html index 2e4b8dde..bd0fc858 100644 --- a/app/src/main/assets/it/guide_local_storage.html +++ b/app/src/main/assets/it/guide_local_storage.html @@ -43,34 +43,38 @@ In questo modo, ogni volta che l'utente visiterà il sito da quel dispositivo, sarà collegato ad un profilo unico mantenuto sul server per quel particolare numero seriale, anche se il dispositivo si connette con indirizzo IP diverso.

-

Almost all websites with logins require cookies to be enabled for a user to log in. - That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.

+

Quasi tutti i siti web con login richiedono che i cookies siano abilitati perché l'utente possa accedere. + E' questo il metodo che utilizzano per essere sicuri che sia sempre lo stesso utente che si sposta da una pagina all'altra del sito ed è, a nostro parere, l'unico utilizzo legittimo dei cookies.

-

If cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

+

Se i cookies sono abilitati ma JavaScript è disabilitato, l'icona della privacy sarà gialla come avvertimento.

Cookies di terze parti

-

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. - There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to - disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not - differentiate - between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

+

I cookies di terze parti sono impostati da porzioni di un sito web che sono caricate da server diversi dalla URL in cima alla pagina web. + Non esiste mai alcuna ragione valida per abilitare i cookies di terze parti. Privacy Browser 3.8 ha rimosso questa opzione, e anche Google sta pianificando di + disabilitarli in futuro. + Sui dispositivi con Android KitKat (versione 4.4, API 19), WebView non + fa distinzione + tra i cookies proprietari e i cookies di terze parti. In questo modo abilitare i cookies significa abilitare anche quelli di terze parti.

DOM Storage

-

Document Object Model storage, also known as web storage, is like cookies on steroids. Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, - DOM storage can hold megabytes per site. Unlike cookies, DOM storage does not send all the data in the headers with every request. - Rather, it uses JavaScript to read and write data, which means it does not function when JavaScript is disabled.

+

Il Document Object Model storage, conosciuto anche come web storage, è come se fossero i cookies con gli steroidi. + Laddove la massima dimensione di memeoria utilizzata da tutti i cookies di una singola URL è di 4 kilobyte, il DOM storage può memorizzare anche + alcuni megabyte per ogni sito. + A differenza dei cookies, il DOM storage non invia tutti i dati nelle intestazioni con ogni richiesta. + Al contrario utilizza JavaScript per leggere e scrivere i dati, il che significa che non può funzionare se JavaScript è disabilitato.

Dati dei moduli

-

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. - Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. Beginning in Android Oreo (version 8.0, API 26), - WebView’s form data was replaced by the Autofill service. - As such, controls for form data no longer appear on newer Android devices.

+

I dati dei moduli contengono informazioni che sono digitate nei web forms, come il nome dell'utente, gli indirizzi, numeri di telefono, ecc., + e li elenca in un menù a tendina in caso di accessi futuri. + A differenza delle altre modalità di memorizzazione locale, i dati dei moduli non vengono inviati ai web server senza che ci sia una interazione con l'utente. + A partire da Android Oreo (versione 8.0, API 26), i dati dei moduli di WebView sono stati sostituiti dal + servizio Autofill. + Per questo motivo i controlli dei dati dei moduli non sono presenti nei dispositivi Android più recenti.

\ No newline at end of file diff --git a/app/src/main/assets/pt-rBR/guide_local_storage.html b/app/src/main/assets/pt-rBR/guide_local_storage.html index 31a61a2f..a4db74a4 100644 --- a/app/src/main/assets/pt-rBR/guide_local_storage.html +++ b/app/src/main/assets/pt-rBR/guide_local_storage.html @@ -53,7 +53,7 @@

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not + On devices with Android KitKat (version 4.4, API 19), WebView does not differentiate between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

diff --git a/app/src/main/assets/ru/guide_local_storage.html b/app/src/main/assets/ru/guide_local_storage.html index 56c44663..e5769d57 100644 --- a/app/src/main/assets/ru/guide_local_storage.html +++ b/app/src/main/assets/ru/guide_local_storage.html @@ -29,45 +29,47 @@

Первичные файлы cookie

-

Первичные файлы cookie устанавливаются тем веб-сайтом, который указан в строке URL.

+

Первичные файлы cookie устанавливаются веб-сайтом, указанным в адресной строке.

-

С первых дней интернета стало очевидным, что веб-сайтам было бы выгодно иметь возможность хранить информацию на компьютере для последующего доступа к ней. +

Еще на заре эпохи интернета стало очевидным, что веб-сайтам было бы выгодно иметь возможность хранить информацию на компьютере для последующего доступа к ней. Например, веб-сайт, предоставляющий информацию о погоде, может запросить у пользователя название города, а затем сохранить его в файле cookie. При следующем посещении веб-сайта информация о погоде будет автоматически загружена для этого города, без необходимости вводить его снова.

-

Как и со всем остальным в интернете, умные люди выяснили все способы злоупотребления cookie, чтобы делать то, что пользователи не одобрят, если узнают что именно происходит. +

Как и со всем остальным в интернете, умные люди нашли всевозможные способы злоупотребления cookie, в том числе делать то, что пользователи не одобрят, если узнают что именно происходит. Например, веб-сайт может установить файл cookie на устройстве с уникальным номером. - Затем каждый раз, когда пользователь посещает веб-сайт с этого устройства, он может быть связан с уникальным профилем, который сервер хранит для этого номера, + Затем при каждом посещении веб-сайта с этого устройства, он может быть связан с уникальным профилем, который сервер хранит для этого номера, даже если устройство подключается с разных IP-адресов.

-

Almost all websites with logins require cookies to be enabled for a user to log in. - That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.

+

Почти все сайты с логинами требуют, чтобы для авторизации пользователя были включены cookie. + Именно так они удостоверяются, что это все еще вы, когда переходите со страницы на страницу на сайте, и, на мой взгляд, это единственное законное использование файлов cookie.

-

If cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

+

Если cookie включены и при этом JavaScript отключен, то значок конфиденциальности будет желтого цвета в качестве предупреждения.

Сторонние файлы cookie

-

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. - There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to - disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not - differentiate - between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

+

Сторонние файлы cookie устанавливаются фрагментами сайта, которые загружаются с серверов, отличных от указанного в адресной строке. + Не существует никаких веских причин для включения сторонних файлов cookie. В Privacy Browser 3.8 эта опция была удалена, и даже Google + планирует отключить ее в будущем. + На устройствах под управлением Android KitKat (версия 4.4, API 19) WebView + не различает + первичные и сторонние файлы cookie. Таким образом, включение файлов cookie приводит и ко включению сторонних cookie.

DOM-хранилище

-

Document Object Model storage, also known as web storage, is like cookies on steroids. Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, - DOM storage can hold megabytes per site. Unlike cookies, DOM storage does not send all the data in the headers with every request. - Rather, it uses JavaScript to read and write data, which means it does not function when JavaScript is disabled.

+

Хранилище Document Object Model (объектной модели документа), также известное как интернет-хранилище, напоминает файлы cookie на стероидах. + Если максимальный совокупный размер для хранения всех файлов cookie с одного URL составляет 4 килобайта, + то DOM-хранилище может вмещать мегабайты на сайт. + В отличие от cookie, DOM-хранилище не передает все данные в заголовках с каждым запросом. + Вместо этого оно использует JavaScript для чтения и записи данных, а это означает, что оно не работает, когда JavaScript отключен.

-

Данные формы

+

Данные форм

-

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. - Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. Beginning in Android Oreo (version 8.0, API 26), - WebView’s form data was replaced by the Autofill service. - As such, controls for form data no longer appear on newer Android devices.

+

Данные форм содержат информацию, введенную в веб-формы, такую как имена пользователей, адреса, номера телефонов и т.д., и отображаются в выпадающем списке при последующих посещениях. + В отличие от других форм локального хранилища, данные форм не передаются на веб-сервер без определенного взаимодействия с пользователем. Начиная с Android Oreo (версия 8.0, API 26), + данные форм WebView были заменены сервисом автозаполнения. + Таким образом, элементы управления данными формы больше не отображаются на новых Android-устройствах.

\ No newline at end of file diff --git a/app/src/main/assets/tr/guide_local_storage.html b/app/src/main/assets/tr/guide_local_storage.html index 14963e66..b2a6ea32 100644 --- a/app/src/main/assets/tr/guide_local_storage.html +++ b/app/src/main/assets/tr/guide_local_storage.html @@ -52,7 +52,7 @@

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. There is no good reason to ever enable third-party cookies. Privacy Browser 3.8 removed the option, and even Google is planning to disable them in the future. - On devices with Android KitKat (version 4.4.4, API 20), WebView does not + On devices with Android KitKat (version 4.4, API 19), WebView does not differentiate between first-party and third-party cookies. Thus, enabling cookies will also enable third-party cookies.

diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java index b00e19a7..d47cb5ae 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -537,6 +537,15 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Only process the URI if it contains data or it is a web search. If the user pressed the desktop icon after the app was already running the URI will be null. if (intentUriData != null || intentStringExtra != null || isWebSearch) { + // Exit the full screen video if it is displayed. + if (displayingFullScreenVideo) { + // Exit full screen video mode. + exitFullScreenVideo(); + + // Reload the current WebView. Otherwise, it can display entirely black. + currentWebView.reload(); + } + // Get the shared preferences. SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); @@ -2693,62 +2702,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // close the bookmarks drawer. drawerLayout.closeDrawer(GravityCompat.END); } else if (displayingFullScreenVideo) { // A full screen video is shown. - // Re-enable the screen timeout. - fullScreenVideoFrameLayout.setKeepScreenOn(false); - - // Unset the full screen video flag. - displayingFullScreenVideo = false; - - // Remove all the views from the full screen video frame layout. - fullScreenVideoFrameLayout.removeAllViews(); - - // Hide the full screen video frame layout. - fullScreenVideoFrameLayout.setVisibility(View.GONE); - - // Enable the sliding drawers. - drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); - - // Show the main content relative layout. - mainContentRelativeLayout.setVisibility(View.VISIBLE); - - // Apply the appropriate full screen mode flags. - if (fullScreenBrowsingModeEnabled && inFullScreenBrowsingMode) { // Privacy Browser is currently in full screen browsing mode. - // Hide the banner ad in the free flavor. - if (BuildConfig.FLAVOR.contentEquals("free")) { - // Get a handle for the ad view. This cannot be a class variable because it changes with each ad load. - View adView = findViewById(R.id.adview); - - // Hide the banner ad. - AdHelper.hideAd(adView); - } - - /* Hide the system bars. - * SYSTEM_UI_FLAG_FULLSCREEN hides the status bar at the top of the screen. - * SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN makes the root frame layout fill the area that is normally reserved for the status bar. - * SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bar on the bottom or right of the screen. - * SYSTEM_UI_FLAG_IMMERSIVE_STICKY makes the status and navigation bars translucent and automatically re-hides them after they are shown. - */ - rootFrameLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); - - // Reload the website if the app bar is hidden. Otherwise, there is some bug in Android that causes the WebView to be entirely black. - if (hideAppBar) { - // Reload the WebView. - currentWebView.reload(); - } - } else { // Switch to normal viewing mode. - // Remove the `SYSTEM_UI` flags from the root frame layout. - rootFrameLayout.setSystemUiVisibility(0); - } - - // Reload the ad for the free flavor if not in full screen mode. - if (BuildConfig.FLAVOR.contentEquals("free") && !inFullScreenBrowsingMode) { - // Get a handle for the ad view. This cannot be a class variable because it changes with each ad load. - View adView = findViewById(R.id.adview); - - // Reload the ad. `getContext()` can be used instead of `getActivity.getApplicationContext()` once the minimum API >= 23. - AdHelper.loadAd(adView, getApplicationContext(), this, getString(R.string.ad_unit_id)); - } + // Exit the full screen video. + exitFullScreenVideo(); } else if (currentWebView.canGoBack()) { // There is at least one item in the current WebView history. // Get the current web back forward list. WebBackForwardList webBackForwardList = currentWebView.copyBackForwardList(); @@ -4779,6 +4734,68 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } } + private void exitFullScreenVideo() { + // Re-enable the screen timeout. + fullScreenVideoFrameLayout.setKeepScreenOn(false); + + // Unset the full screen video flag. + displayingFullScreenVideo = false; + + // Remove all the views from the full screen video frame layout. + fullScreenVideoFrameLayout.removeAllViews(); + + // Hide the full screen video frame layout. + fullScreenVideoFrameLayout.setVisibility(View.GONE); + + // Enable the sliding drawers. + drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); + + // Show the main content relative layout. + mainContentRelativeLayout.setVisibility(View.VISIBLE); + + // Apply the appropriate full screen mode flags. + if (fullScreenBrowsingModeEnabled && inFullScreenBrowsingMode) { // Privacy Browser is currently in full screen browsing mode. + // Hide the app bar if specified. + if (hideAppBar) { + // Hide the tab linear layout. + tabsLinearLayout.setVisibility(View.GONE); + + // Hide the action bar. + actionBar.hide(); + } + + // Hide the banner ad in the free flavor. + if (BuildConfig.FLAVOR.contentEquals("free")) { + // Get a handle for the ad view. This cannot be a class variable because it changes with each ad load. + View adView = findViewById(R.id.adview); + + // Hide the banner ad. + AdHelper.hideAd(adView); + } + + /* Hide the system bars. + * SYSTEM_UI_FLAG_FULLSCREEN hides the status bar at the top of the screen. + * SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN makes the root frame layout fill the area that is normally reserved for the status bar. + * SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bar on the bottom or right of the screen. + * SYSTEM_UI_FLAG_IMMERSIVE_STICKY makes the status and navigation bars translucent and automatically re-hides them after they are shown. + */ + rootFrameLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + } else { // Switch to normal viewing mode. + // Remove the `SYSTEM_UI` flags from the root frame layout. + rootFrameLayout.setSystemUiVisibility(0); + } + + // Reload the ad for the free flavor if not in full screen mode. + if (BuildConfig.FLAVOR.contentEquals("free") && !inFullScreenBrowsingMode) { + // Get a handle for the ad view. This cannot be a class variable because it changes with each ad load. + View adView = findViewById(R.id.adview); + + // Reload the ad. + AdHelper.loadAd(adView, this, this, getString(R.string.ad_unit_id)); + } + } + private void clearAndExit() { // Get a handle for the shared preferences. SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); @@ -5521,65 +5538,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Exit full screen video. @Override public void onHideCustomView() { - // Re-enable the screen timeout. - fullScreenVideoFrameLayout.setKeepScreenOn(false); - - // Unset the full screen video flag. - displayingFullScreenVideo = false; - - // Remove all the views from the full screen video frame layout. - fullScreenVideoFrameLayout.removeAllViews(); - - // Hide the full screen video frame layout. - fullScreenVideoFrameLayout.setVisibility(View.GONE); - - // Enable the sliding drawers. - drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); - - // Show the main content relative layout. - mainContentRelativeLayout.setVisibility(View.VISIBLE); - - // Apply the appropriate full screen mode flags. - if (fullScreenBrowsingModeEnabled && inFullScreenBrowsingMode) { // Privacy Browser is currently in full screen browsing mode. - // Hide the app bar if specified. - if (hideAppBar) { - // Hide the tab linear layout. - tabsLinearLayout.setVisibility(View.GONE); - - // Hide the action bar. - actionBar.hide(); - } - - // Hide the banner ad in the free flavor. - if (BuildConfig.FLAVOR.contentEquals("free")) { - // Get a handle for the ad view. This cannot be a class variable because it changes with each ad load. - View adView = findViewById(R.id.adview); - - // Hide the banner ad. - AdHelper.hideAd(adView); - } - - /* Hide the system bars. - * SYSTEM_UI_FLAG_FULLSCREEN hides the status bar at the top of the screen. - * SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN makes the root frame layout fill the area that is normally reserved for the status bar. - * SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bar on the bottom or right of the screen. - * SYSTEM_UI_FLAG_IMMERSIVE_STICKY makes the status and navigation bars translucent and automatically re-hides them after they are shown. - */ - rootFrameLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); - } else { // Switch to normal viewing mode. - // Remove the `SYSTEM_UI` flags from the root frame layout. - rootFrameLayout.setSystemUiVisibility(0); - } - - // Reload the ad for the free flavor if not in full screen mode. - if (BuildConfig.FLAVOR.contentEquals("free") && !inFullScreenBrowsingMode) { - // Get a handle for the ad view. This cannot be a class variable because it changes with each ad load. - View adView = findViewById(R.id.adview); - - // Reload the ad. `getContext()` can be used instead of `getActivity.getApplicationContext()` once the minimum API >= 23. - AdHelper.loadAd(adView, getApplicationContext(), activity, getString(R.string.ad_unit_id)); - } + // Exit the full screen video. + exitFullScreenVideo(); } // Upload files. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index bf5f6e32..dc7c66bf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -35,6 +35,8 @@ Privater Modus JavaScript aktiviert JavaScript deaktiviert + Cookies aktiviert + Cookies deaktiviert DOM-Speicher aktiviert DOM-Speicher deaktiviert Formulardaten aktiviert @@ -128,6 +130,7 @@ JavaScript Aktualisieren Stop + Cookies DOM-Speicher Formulardaten Daten löschen @@ -440,9 +443,11 @@ Privatsphäre - JavaScript JavaScript ermöglicht es Websites, Programme (Scripts) auf Ihrem Gerät auszuführen. + Cookie-Einstellungen gelten auf Anwendungs-Ebene. + Sind Cookies im aktiven Tab aktiviert, sind diese auch für alle Netzwerk-Anfragen anderer Tabs im Hintergrund aktiviert. DOM-Speicher + JavaScript muss aktiviert sein, damit der DOM-(Document Object Model)-Speicher funktioniert. Formulardaten Mit gespeicherten Formulardaten können Formularfelder auf Websites automatisch ausgefüllt werden. User Agent @@ -546,6 +551,7 @@ Löscht Cookies, DOM-Storage, Formular-Daten, das Logcat Systemlogbuch und den WebView-Cache, sowie die gesamten “app_webview”- und “cache”-Ordner. Cookies löschen + Löscht Cookies. DOM Storage löschen Löscht DOM storage (aka Web Storage oder Supercookies). Formulardaten löschen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d89e6fb4..2f29a254 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -31,6 +31,8 @@ Modo Privado Javascript habilitado Javascript deshabilitado + Cookies habilitadas + Cookies deshabilitadas Almacenamiento DOM habilitado Almacenamiento DOM deshabilitado Datos de formulario habilitados @@ -124,6 +126,7 @@ Javascript Actualizar Parar + Cookies Almacenamiento DOM Datos de formulario Borrar datos @@ -437,9 +440,11 @@ Privacidad - Javascript Javascript permite a las webs ejecutar programas (scripts) en el dispositivo. + Las cookies son un ajuste a nivel de aplicación. + Cuando la pestaña activa tiene las cookies habilitadas, cualquier solicitud de red realizada en segundo plano por otra pestaña también tiene las cookies habilitadas. Almacenamiento DOM + JavaScript debe estar activado para que el almacenamiento del Modelo de Objetos del Documento funcione. Datos de formulario Los datos de formularios guardados pueden rellenar automáticamente las casillas o campos de las webs. Agente de usuario @@ -544,6 +549,7 @@ Borra cookies, almacenamiento DOM, datos de formulario, el logcat y la caché de WebView. A continuación borra manualmente los directorios “app_webview” y “cache”. Borrar cookies + Borra las cookies. Borrar almacenamiento DOM Borra el almacenamiento DOM. Borrar datos de formulario diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 07e3f44b..5590d1d7 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -32,6 +32,8 @@ Mode privé JavaScript activé JavaScript désactivé + Cookies activés + Cookies désactivés Stockage du DOM activé Stockage du DOM désactivé Données de formulaires activé @@ -114,6 +116,7 @@ Vider l\'historique Ouvrir Téléchargements + Le système ne peut pas détecter un gestionnaire de fichiers compatible. Paramètres Importer/Exporter Journal système @@ -124,6 +127,7 @@ JavaScript Rafraîchir Stop + Cookies Stockage DOM Formulaire de données Effacer les données @@ -180,6 +184,10 @@ Précédent Suivant + + Le fichier est une archive web MHT. + Parfois, les archives web MHT (MIME Encapsulated HTML) doivent être spécifiées manuellement pour être ouvertes correctement. + Enregistrer l\'URL Enregistrer l\'archive @@ -432,9 +440,11 @@ Vie privée - JavaScript JavaScript permet aux sites web de lancer des programmes (scripts) sur le terminal. + Les cookies sont un paramètre au niveau de l\'application. Lorsque l\'onglet actif a les cookies activés, + toute requête réseau effectuée en arrière-plan par un autre onglet a également les cookies activés. Stockage du DOM + JavaScript doit être activé pour que le stockage du Document Object Model fonctionne. Formulaire de données Les formulaires de données sauvegardés peuvent remplir automatiquement des champs sur les sites web. User agent @@ -539,6 +549,7 @@ Efface les cookies, le stockage DOM, les données de formulaire, le logcat et le cache de WebView. Supprime ensuite manuellement les répertoires entiers «app_webview» et «cache». Effacer les cookies + Efface les cookies. Effacer le stockage DOM Efface le stockage du DOM. Effacer les données de formulaire diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ffcda4ce..f21ca42d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -31,6 +31,8 @@ Modalità privata JavaScript abilitato JavaScript disabilitato + Cookies abilitati + Cookies disabilitati DOM Storage abilitato DOM Storage disabilitato Dati dei Moduli abilitati @@ -124,6 +126,7 @@ JavaScript Aggiorna Stop + Cookies DOM storage Dati dei moduli Elimina dati @@ -436,9 +439,11 @@ Privacy - JavaScript Permetti a JavaScript di eseguire programmi (script) sul dispositivo. + I Cookies sono un\'impostazione a livello di app. + Quando la scheda attiva ha i cookies abilitati, anche ogni altra richiesta di rete effettuata in background da altre schede ha i cookies abilitati. DOM Storage + JavaScript deve essere abilitato per permettere il funzionamento del Document Object Model storage. Dati dei moduli I dati dei moduli salvati permettono di auto-compilare i campi dei moduli nei siti web. User agent @@ -543,11 +548,12 @@ Cancella i cookies, il DOM storage, i dati dei moduli, il logcat e la cache di WebView. Cancella completamente le cartelle “app_webview” e “cache”. Elimina i cookie + Cancella i cookies. Elimina il DOM storage Cancella solo il DOM storage. Elimina i dati dei moduli Cancella solo i dati dei moduli. - Cancella logcat + Elimina il logcat Cancella il logcat. Elimina la cache Cancella solo la cache di WebView. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 249bd687..320b0d3a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -429,7 +429,6 @@ Privacidade - JavaScript JavaScript permite que sites executem programas (scripts) no dispositivo. Armazenamento DOM Dados do formulário diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c1ae2baa..09a75250 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -29,6 +29,8 @@ Режим приватности JavaScript включен JavaScript отключен + Cookie включены + Cookie отключены DOM-хранилище включено DOM-хранилище отключено Данные формы включены @@ -121,6 +123,7 @@ JavaScript Обновить Остановить + Cookie DOM-хранилище Данные формы Очистить данные @@ -433,9 +436,11 @@ Конфиденциальность - JavaScript JavaScript позволяет веб-сайтам запускать программы (скрипты) на устройстве. + Файлы cookie - это настройка уровня приложения. + Включение cookie на активной вкладке также приведет к их включению и на фоновых вкладках для выполняемых сетевых запросов. DOM-хранилище + Для работы DOM-хранилища необходимо включить JavaScript. Сохранение данных формы Сохраненные данные формы могут автоматически заполнять поля на веб-сайтах. User agent @@ -537,8 +542,9 @@ Скрывает панель приложения, которая содержит URL. Очистить все - Очищает файлы cookie, DOM-хранилище, данные форм, logcat и кэш WebView. После этого вручную удаляет каталоги "app_webview" и "cache". - Очистить файлы cookie + Очищает cookie, DOM-хранилище, данные форм, logcat и кэш WebView. После этого вручную удаляет каталоги "app_webview" и "cache". + Очистить cookie + Очищает cookie. Очистить DOM-хранилище Очищает DOM-хранилище. Очистка данных формы diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e8775bcd..3d515b67 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -388,7 +388,6 @@ Gizlilik - JavaScript JavaScript, web sitelerin cihazdaki programları (scriptler) çalıştırmasına izin verir. DOM depolama Form verisi diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5ef6920d..3f5aff2b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -447,9 +447,7 @@ Privacy - JavaScript JavaScript allows websites to run programs (scripts) on the device. - Cookies Cookies are an app level setting. When the active tab has cookies enabled, any network request made in the background by another tab also has cookies enabled. DOM storage diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 8aed8661..9291837e 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -25,13 +25,13 @@ -- 2.43.0