<w>ipleak</w>
<w>isfolder</w>
<w>khtml</w>
+ <w>knackstedt</w>
<w>konqueror</w>
<w>linearlayout</w>
<w>listview</w>
--- /dev/null
+<!--
+ Copyright 2016 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+ Privacy Browser is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+<head>
+ <style>
+ h3 {
+ color: 0D4781;
+ }
+
+ strong {
+ color: B71C1C;
+ }
+
+ item {
+ color: 1976D2;
+ font-weight: bold;
+ }
+ </style>
+</head>
+
+<body>
+<h3>Privacy Browser Free</h3>
+<p><strong>Privacy Browser Free does not collect any user information</strong>.</p>
+
+
+<h3>Google Play</h3>
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Google provides <em>anonymized summary installation information</em> to developers, including the number of
+ installs organized by the following categories. <strong>Stoutner may use this information for any purpose</strong>.
+ Reasonable effort is made to not use this information in a way that would make users uncomfortable.</p>
+<ul>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Samsung Galaxy S6 [zeroflte])</li>
+ <li><item>Tablets</item> (eg. Tablets 10" and above)</li>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English [United States])</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Carrier</item> (eg. T-Mobile - US)</li>
+</ul>
+
+
+<h3>Google Play Ratings</h3>
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Google provides developers with <em>anonymized summaries</em> of the following information related to user ratings.
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made
+ to not use this information in a way that would make users uncomfortable.</p>
+<ul>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English)</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Google Nexus 5X [bullhead])</li>
+ <li><item>Tablets</item> (eg. Tablets 10" and above)</li>
+</ul>
+
+
+<h3>Google Play Reviews</h3>
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ In addition to the name of the reviewer, the rating, and the text of the review (which are all available publicly),
+ Google provides some or all of the following information to the developer. <strong>Stoutner may
+ use this information for any purpose</strong>. Reasonable effort is made to not use this
+ information in a way that would make the reviewer uncomfortable.</p>
+<ul>
+ <li><item>Version code</item> (eg. 7)</li>
+ <li><item>Version name</item> (eg. 1.6)</li>
+ <li><item>Android version</item> (eg. Android 5.1)</li>
+ <li><item>Device</item> (eg. Galaxy S6 Edge+ [zenlte])</li>
+ <li><item>Manufacturer</item> (eg. Samsung)</li>
+ <li><item>Device type</item> (eg. Phone)</li>
+ <li><item>CPU make</item> (eg. Samsung)</li>
+ <li><item>CPU model</item> (eg. Exynos 7420)</li>
+ <li><item>Screen density</item> (eg. 560 dpi)</li>
+ <li><item>Screen size</item> (eg. 2560 x 1440)</li>
+ <li><item>RAM</item> (eg. 4096 MB)</li>
+ <li><item>Native platform</item> (eg. armeabi-v7a,armeabi,arm64v8a)</li>
+ <li><item>OpenGL ES version</item> (eg. 3.1)</li>
+ <li><item>Device language</item> (eg. English)</li>
+</ul>
+
+
+<h3>Advertisements</h3>
+<p>Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network,
+ which has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Note that unless you have <a href="http://www.techrepublic.com/article/pro-tip-how-to-opt-out-of-interest-based-ads-on-your-android-phone/">opted out of interest-based ads</a>,
+ the advertiser will receive a copy of your unique device advertising ID, which allows them to track your device across apps.
+ AdMob reports <em>anonymized summaries</em> of the following information to developers.
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made to
+ not use this information in a way that would make users uncomfortable.</p>
+<ul>
+ <li><item>Total impressions</item></li>
+ <li><item>Total clicks</item></li>
+ <li><item>Platforms</item> (eg. high-end mobile devices, tablets)</li>
+ <li><item>Activity by country</item></li>
+</ul>
+
+
+<h3>Direct Communications</h3>
+<p>Users may choose to send direct communications to Stoutner, like email messages and comments on
+ <a href="https://www.stoutner.com/">stoutner.com</a>. <strong>Stoutner may use this information
+ for any purpose</strong>. Reasonable effort is made to not use this information in a way that
+ would make the author uncomfortable.</p>
+
+<hr />
+<p style="text-align: center;"><em>Revision 1.3, 14 November 2016</em></p>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!--
+ Copyright 2016-2017 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+ Privacy Browser is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+ <head>
+ <style>
+ h3 {
+ color: 0D4781;
+ }
+ </style>
+ </head>
+
+ <body>
+ <h3>Have full network access</h3>
+ <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INTERNET">android.permission.INTERNET</a></p>
+ <p>Required for the WebView to access the internet. Without this permission, Privacy Browser would be “No Browser: Protecting Your Privacy by Staying Completely Off the Internet”.</p>
+
+ <h3>Install shortcuts</h3>
+ <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INSTALL_SHORTCUT">com.android.launcher.permission.INSTALL_SHORTCUT</a></p>
+ <p>Required to add shortcuts for websites to the launcher desktop.</p>
+
+ <br/>
+ <hr/>
+ <br/>
+
+ <p>In addition, Privacy Browser Free displays ads from Google's AdMob network using the Firebase backend. For the free flavor, Firebase adds the following permissions even though they are not listed in the manifest file.</p>
+
+ <h3>View network connections</h3>
+ <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE">android.permission.ACCESS_NETWORK_STATE</a></p>
+ <p>Allows the ads to tell when you are connected to the internet and when you aren't (presumably so they don't try to reload an ad when you are disconnected). They can also tell if you are connected via Wi-Fi, 2G, 3G, 4G, etc.</p>
+
+ <h3>Prevent phone from sleeping</h3>
+ <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#WAKE_LOCK">android.permission.WAKE_LOCK</a></p>
+ <p>Allows the ads to keep the processor from sleeping and the screen from dimming, although in my testing I don't think the ads actually do this.</p>
+
+ <h3>Receive data from Internet</h3>
+ <p><a href="http://androidpermissions.com/permission/com.google.android.c2dm.permission.RECEIVE">com.google.android.c2dm.permission.RECEIVE</a></p>
+ <p>Allows Google to send information directly to the AdView without having to receive a request first (cloud-to-device messaging).</p>
+
+ <h3>Receive data from Internet</h3>
+ <p><a href="https://developers.google.com/cloud-messaging/android/client">com.stoutner.privacybrowser.free.permission.C2D_MESSAGE</a></p>
+ <p>Secures the cloud-to-device messages so that only Privacy Browser Free can receive them.</p>
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<!--
+ Copyright 2016-2017 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+ Privacy Browser is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+ <head>
+ <style>
+ h3 {
+ color: 0D4781;
+ }
+
+ strong {
+ color: B71C1C;
+ }
+
+ item {
+ color: 1976D2;
+ font-weight: bold;
+ }
+ </style>
+ </head>
+
+ <body>
+ <h3>Privacy Browser Free</h3>
+ <p><strong>Privacy Browser Free does not collect any user information</strong>.</p>
+
+
+ <h3>Google Play</h3>
+ <p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Google provides <em>anonymized summary installation information</em> to developers, including the number of
+ installs organized by the following categories. <strong>Stoutner may use this information for any purpose</strong>.
+ Reasonable effort is made to not use this information in a way that would make users uncomfortable.</p>
+ <ul>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Samsung Galaxy S6 [zeroflte])</li>
+ <li><item>Tablets</item> (eg. Tablets 10" and above)</li>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English [United States])</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Carrier</item> (eg. T-Mobile - US)</li>
+ </ul>
+
+
+ <h3>Google Play Ratings</h3>
+ <p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Google provides developers with <em>anonymized summaries</em> of the following information related to user ratings.
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made
+ to not use this information in a way that would make users uncomfortable.</p>
+ <ul>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English)</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Google Nexus 5X [bullhead])</li>
+ <li><item>Tablets</item> (eg. Tablets 10" and above)</li>
+ </ul>
+
+
+ <h3>Google Play Reviews</h3>
+ <p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ In addition to the name of the reviewer, the rating, and the text of the review (which are all available publicly),
+ Google provides some or all of the following information to the developer. <strong>Stoutner may
+ use this information for any purpose</strong>. Reasonable effort is made to not use this
+ information in a way that would make the reviewer uncomfortable.</p>
+ <ul>
+ <li><item>Version code</item> (eg. 7)</li>
+ <li><item>Version name</item> (eg. 1.6)</li>
+ <li><item>Android version</item> (eg. Android 5.1)</li>
+ <li><item>Device</item> (eg. Galaxy S6 Edge+ [zenlte])</li>
+ <li><item>Manufacturer</item> (eg. Samsung)</li>
+ <li><item>Device type</item> (eg. Phone)</li>
+ <li><item>CPU make</item> (eg. Samsung)</li>
+ <li><item>CPU model</item> (eg. Exynos 7420)</li>
+ <li><item>Screen density</item> (eg. 560 dpi)</li>
+ <li><item>Screen size</item> (eg. 2560 x 1440)</li>
+ <li><item>RAM</item> (eg. 4096 MB)</li>
+ <li><item>Native platform</item> (eg. armeabi-v7a,armeabi,arm64v8a)</li>
+ <li><item>OpenGL ES version</item> (eg. 3.1)</li>
+ <li><item>Device language</item> (eg. English)</li>
+ </ul>
+
+
+ <h3>Advertisements</h3>
+ <p>Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network,
+ which has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Note that unless you have <a href="http://www.techrepublic.com/article/pro-tip-how-to-opt-out-of-interest-based-ads-on-your-android-phone/">opted out of interest-based ads</a>,
+ the advertiser will receive a copy of your unique device advertising ID, which allows them to track your device across apps.
+ AdMob reports <em>anonymized summaries</em> of the following information to developers.
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made to
+ not use this information in a way that would make users uncomfortable.</p>
+ <ul>
+ <li><item>Total impressions</item></li>
+ <li><item>Total clicks</item></li>
+ <li><item>Platforms</item> (eg. high-end mobile devices, tablets)</li>
+ <li><item>Activity by country</item></li>
+ </ul>
+
+
+ <h3>Direct Communications</h3>
+ <p>Users may choose to send direct communications to Stoutner, like email messages and comments on
+ <a href="https://www.stoutner.com/">stoutner.com</a>. <strong>Stoutner may use this information
+ for any purpose</strong>. Reasonable effort is made to not use this information in a way that
+ would make the author uncomfortable.</p>
+
+ <hr />
+ <p style="text-align: center;"><em>Revision 1.3, 14 November 2016</em></p>
+ </body>
+</html>
\ No newline at end of file
<http://www.gnu.org/licenses/>. -->
<html>
-<head>
- <style>
- h3 {
- color: 0D4781;
- }
- </style>
-</head>
-
-<body>
-<h3>Leitende Entwickler</h3>
-
-<p>Privacy Browser ist primär entwickelt von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
-
-
-<h3>Mitwirkende</h3>
-
-<p><a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: Deutsche Übersetzung</p>
-<p>Jose A. León Becerra: Spanisch Übersetzung</p>
-<p>Francesco Buratti: Italienisch Übersetzung</p>
-
-<br/>
-<p>Mitwirkung ist willkommen in Form von <a href="https://www.stoutner.com/privacy-browser/contributors/">Code und Übersetzung</a>.</p>
-</body>
+ <head>
+ <style>
+ h3 {
+ color: 0D4781;
+ }
+ </style>
+ </head>
+
+ <body>
+ <h3>Leitende Entwickler</h3>
+ <p>Privacy Browser ist primär entwickelt von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+
+ <h3>Coders</h3>
+ Hendrik Knackstedt
+
+ <h3>Mitwirkende</h3>
+ <p><a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: Deutsche Übersetzung</p>
+ <p>Jose A. León Becerra: Spanisch Übersetzung</p>
+ <p>Francesco Buratti: Italienisch Übersetzung</p>
+
+ <br/>
+ <p>Mitwirkung ist willkommen in Form von <a href="https://www.stoutner.com/privacy-browser/contributors/">Code und Übersetzung</a>.</p>
+ </body>
</html>
\ No newline at end of file
<h3>Principal Developer</h3>
<p>Privacy Browser is primarily developed by <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+ <h3>Coders</h3>
+ Hendrik Knackstedt
<h3>Translators</h3>
<a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: German Translation<br/>
<body>
<h3>Principle Developers</h3>
-
<p>Privacy Browser is primarily developed by <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+ <h3>Coders</h3>
+ Hendrik Knackstedt
<h3>Contributors</h3>
-
<p><a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: German Translation</p>
<p>Jose A. León Becerra: Spanish Translation</p>
<p>Francesco Buratti: Italian Translation</p>
<h3>Sviluppatori</h3>
<p>Privacy Browser è sviluppato da <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+ <h3>Coders</h3>
+ Hendrik Knackstedt
<h3>Traduttori</h3>
<a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: Traduzione in Tedesco<br/>
/**
* Copyright 2015-2017 Soren Stoutner <soren@stoutner.com>.
*
+ * Download cookie code contributed 2017 Hendrik Knackstedt. Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+ *
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
* Privacy Browser is free software: you can redistribute it and/or modify
// It is `Boolean` instead of `boolean` because `applySettings()` needs to know if it is `null`.
private Boolean javaScriptEnabled;
- // `firstPartyCookiesEnabled` is used in `onCreate()`, `onCreateOptionsMenu()`, `onPrepareOptionsMenu()`, `onOptionsItemSelected()`, and `applySettings()`.
+ // `firstPartyCookiesEnabled` is used in `onCreate()`, `onCreateOptionsMenu()`, `onPrepareOptionsMenu()`, `onOptionsItemSelected()`, `onDownloadImage()`, `onDownloadFile()`, and `applySettings()`.
private boolean firstPartyCookiesEnabled;
- // `thirdPartyCookiesEnabled` used in `onCreate()`, `onCreateOptionsMenu()`, `onPrepareOptionsMenu()`, `onOptionsItemSelected()`, and `applySettings()`.
+ // `thirdPartyCookiesEnabled` used in `onCreate()`, `onCreateOptionsMenu()`, `onPrepareOptionsMenu()`, `onOptionsItemSelected()`, `onDownloadImage()`, `onDownloadFile()`, and `applySettings()`.
private boolean thirdPartyCookiesEnabled;
// `domStorageEnabled` is used in `onCreate()`, `onCreateOptionsMenu()`, `onOptionsItemSelected()`, and `applySettings()`.
// Parse `imageUrl`.
DownloadManager.Request downloadRequest = new DownloadManager.Request(Uri.parse(imageUrl));
+ // Pass cookies to download manager if cookies are enabled. This is required to download item from websites that require a login.
+ if (firstPartyCookiesEnabled) {
+ String cookies = cookieManager.getCookie(imageUrl);
+ // In the HTTP request header, cookies are named `Cookie`.
+ downloadRequest.addRequestHeader("Cookie", cookies);
+ }
+
// Get the file name from `dialogFragment`.
EditText downloadImageNameEditText = (EditText) dialogFragment.getDialog().findViewById(R.id.download_image_name);
String imageName = downloadImageNameEditText.getText().toString();
// Parse `downloadUrl`.
DownloadManager.Request downloadRequest = new DownloadManager.Request(Uri.parse(downloadUrl));
+ // Pass cookies to download manager if cookies are enabled. This is required to download item from websites that require a login.
+ if (firstPartyCookiesEnabled) {
+ String cookies = cookieManager.getCookie(downloadUrl);
+ // In the HTTP request header, cookies are named `Cookie`.
+ downloadRequest.addRequestHeader("Cookie", cookies);
+ }
+
// Get the file name from `dialogFragment`.
EditText downloadFileNameEditText = (EditText) dialogFragment.getDialog().findViewById(R.id.download_file_name);
String fileName = downloadFileNameEditText.getText().toString();