mirror of
https://github.com/servo/servo.git
synced 2025-06-06 00:25:37 +00:00
Add very simple Android browser page load support
This commit is contained in:
parent
3acb9540ff
commit
6beed30524
3 changed files with 80 additions and 1 deletions
|
@ -6,4 +6,5 @@
|
||||||
# lines (the "-p" and "10" are separate even though they are related).
|
# lines (the "-p" and "10" are separate even though they are related).
|
||||||
|
|
||||||
servo
|
servo
|
||||||
|
-w
|
||||||
http://en.wikipedia.org/wiki/Rust
|
http://en.wikipedia.org/wiki/Rust
|
||||||
|
|
|
@ -20,6 +20,28 @@
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<!-- Web browser intents -->
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<data android:scheme="http" />
|
||||||
|
<data android:scheme="https" />
|
||||||
|
<data android:scheme="data" />
|
||||||
|
<data android:scheme="javascript" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<data android:scheme="file" />
|
||||||
|
<data android:scheme="http" />
|
||||||
|
<data android:scheme="https" />
|
||||||
|
<data android:mimeType="text/html"/>
|
||||||
|
<data android:mimeType="text/plain"/>
|
||||||
|
<data android:mimeType="application/xhtml+xml"/>
|
||||||
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,64 @@
|
||||||
package com.mozilla.servo;
|
package com.mozilla.servo;
|
||||||
|
import android.app.NativeActivity;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
|
||||||
public class MainActivity extends android.app.NativeActivity {
|
public class MainActivity extends android.app.NativeActivity {
|
||||||
|
private static final String LOGTAG="servo_wrapper";
|
||||||
static {
|
static {
|
||||||
Log.i("servo_wrapper", "Loading the NativeActivity");
|
Log.i(LOGTAG, "Loading the NativeActivity");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void set_url(String url) {
|
||||||
|
try {
|
||||||
|
PrintStream out = new PrintStream(new FileOutputStream("/sdcard/servo/android_params"));
|
||||||
|
out.println("# The first line here should be the \"servo\" argument (without quotes) and the");
|
||||||
|
out.println("# last should be the URL to load.");
|
||||||
|
out.println("# Blank lines and those beginning with a '#' are ignored.");
|
||||||
|
out.println("# Each line should be a separate parameter as would be parsed by the shell.");
|
||||||
|
out.println("# For example, \"servo -p 10 http://en.wikipedia.org/wiki/Rust\" would take 4");
|
||||||
|
out.println("# lines (the \"-p\" and \"10\" are separate even though they are related).");
|
||||||
|
out.println("servo");
|
||||||
|
out.println("-w");
|
||||||
|
String absUrl = url.replace("file:///storage/emulated/0/", "/sdcard/");
|
||||||
|
out.println(absUrl);
|
||||||
|
out.flush();
|
||||||
|
out.close();
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
final Intent intent = getIntent();
|
||||||
|
if (intent.getAction().equals(Intent.ACTION_VIEW)) {
|
||||||
|
final String url = intent.getDataString();
|
||||||
|
Log.d(LOGTAG, "Received url "+url);
|
||||||
|
set_url(url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStop() {
|
||||||
|
super.onStop(); // Always call the superclass method first
|
||||||
|
|
||||||
|
Log.d(LOGTAG, "got onStop; finishing servo activity");
|
||||||
|
finish();
|
||||||
|
|
||||||
|
// Glutin and the Java wrapper libraries that we use currently do not support restoring
|
||||||
|
// Servo after Android has sent it to the background, as the resources were reclaimed.
|
||||||
|
// Until we either address that in glutin or move to a library that supports recreating
|
||||||
|
// the native resources after being restored, we just forcibly shut Servo down when it
|
||||||
|
// is sent to the background.
|
||||||
|
int pid = android.os.Process.myPid();
|
||||||
|
android.os.Process.killProcess(pid);
|
||||||
|
System.exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue