add support for proxying over Orbot (Tor) proxying
This commit is contained in:
parent
b9f0211354
commit
eecf5be200
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "external/netcipher"]
|
||||
path = external/netcipher
|
||||
url = https://github.com/guardianproject/NetCipher.git
|
@ -31,6 +31,7 @@
|
||||
android:targetSdkVersion="19" />
|
||||
|
||||
<application
|
||||
android:name="acr.browser.lightning.BrowserApp"
|
||||
android:allowBackup="true"
|
||||
android:hardwareAccelerated="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
|
1
external/netcipher
vendored
Submodule
1
external/netcipher
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit ba9d13676669f7ef32df43a023a4d4a33385e013
|
@ -69,7 +69,7 @@
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
|
@ -158,5 +158,6 @@
|
||||
<string name="powered_by_google">Powered by Google</string>
|
||||
<string name="title_adblock">AdBlock</string>
|
||||
<string name="message_adblock">AdBlock is currently only available in the browser\'s paid version, Lightning Browser+. It is available to download on Google Play.</string>
|
||||
<string name="use_tor_prompt">It looks like you have Orbot installed. Do you want to use Tor?</string>
|
||||
|
||||
</resources>
|
@ -4,6 +4,9 @@
|
||||
|
||||
package acr.browser.lightning;
|
||||
|
||||
import info.guardianproject.onionkit.ui.OrbotHelper;
|
||||
import info.guardianproject.onionkit.web.WebkitProxy;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
@ -73,27 +76,27 @@ import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.webkit.ValueCallback;
|
||||
import android.webkit.WebChromeClient.CustomViewCallback;
|
||||
import android.webkit.CookieManager;
|
||||
import android.webkit.CookieSyncManager;
|
||||
import android.webkit.ValueCallback;
|
||||
import android.webkit.WebChromeClient.CustomViewCallback;
|
||||
import android.webkit.WebIconDatabase;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebView.HitTestResult;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.VideoView;
|
||||
import android.widget.TextView.OnEditorActionListener;
|
||||
import android.widget.VideoView;
|
||||
|
||||
public class BrowserActivity extends Activity implements BrowserController {
|
||||
private static DrawerLayout mDrawerLayout;
|
||||
@ -445,8 +448,60 @@ public class BrowserActivity extends Activity implements BrowserController {
|
||||
WebIconDatabase.getInstance().open(
|
||||
getDir("icons", MODE_PRIVATE).getPath());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
checkForTor ();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* If Orbot/Tor is installed, prompt the user if they want to enable proxying for this session
|
||||
*/
|
||||
public void checkForTor ()
|
||||
{
|
||||
|
||||
OrbotHelper oh = new OrbotHelper(this);
|
||||
if (oh.isOrbotInstalled())
|
||||
{
|
||||
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which){
|
||||
case DialogInterface.BUTTON_POSITIVE:
|
||||
initializeTor ();
|
||||
break;
|
||||
|
||||
case DialogInterface.BUTTON_NEGATIVE:
|
||||
//No button clicked
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage(R.string.use_tor_prompt).setPositiveButton(android.R.string.yes, dialogClickListener)
|
||||
.setNegativeButton(android.R.string.no, dialogClickListener).show();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize WebKit Proxying for Tor
|
||||
*/
|
||||
public void initializeTor ()
|
||||
{
|
||||
|
||||
OrbotHelper oh = new OrbotHelper(this);
|
||||
if (!oh.isOrbotRunning())
|
||||
oh.requestOrbotStart(this);
|
||||
|
||||
WebkitProxy wkp = new WebkitProxy();
|
||||
try {
|
||||
wkp.setProxy("acr.browser.lightning.BrowserApp", getApplicationContext(), "localhost",8118);
|
||||
} catch (Exception e) {
|
||||
Log.d("Lightning","error enabling web proxying",e);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void initializeTabs() {
|
||||
mIdGenerator = 0;
|
||||
|
||||
|
7
src/acr/browser/lightning/BrowserApp.java
Normal file
7
src/acr/browser/lightning/BrowserApp.java
Normal file
@ -0,0 +1,7 @@
|
||||
package acr.browser.lightning;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
public class BrowserApp extends Application {
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user