Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start documenting Servonk + suggested structure #25

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
af29862
Update readme.md
madb1lly May 20, 2018
73dfabd
Create Target-devices-and-platforms.md
madb1lly Jun 12, 2018
2853dff
Update readme.md
madb1lly Jun 12, 2018
ab3bb74
Update Target-devices-and-platforms.md
madb1lly Jun 12, 2018
007c4c9
Update Target-devices-and-platforms.md
madb1lly Jun 12, 2018
f18f901
Change filename to lower case and remove empty section
madb1lly Jun 13, 2018
4fa4b83
Remove reference to "wiki"
madb1lly Jun 13, 2018
046c6bd
Add OSX and Windows to other possibilities
madb1lly Jun 13, 2018
c6edec0
typo
madb1lly Jun 13, 2018
d0788aa
Create organisation.md
madb1lly Jun 14, 2018
edd6216
Create troubleshooting.md
madb1lly Jun 14, 2018
c6c16dc
Create build-process.md
madb1lly Jun 14, 2018
595e088
Create architecture-and-execution.md
madb1lly Jun 14, 2018
b3f412e
Create build-linux-glutin.md
madb1lly Jun 14, 2018
d868b81
Create build-aries-l
madb1lly Jun 14, 2018
c77e8f3
Rename build-aries-l to build-aries-l.md
madb1lly Jun 14, 2018
ae0c032
Create build-nexus-5-l.md
madb1lly Jun 14, 2018
c32c406
Create get-servonk.md
madb1lly Jun 14, 2018
2854a50
Create run-releases.md
madb1lly Jun 14, 2018
3d4425a
Update target-devices-and-platforms.md
madb1lly Jun 26, 2018
e156261
Add descriptions of files in root
madb1lly Jun 26, 2018
3ce8ec3
Fix hyperlinks
madb1lly Jun 27, 2018
a37b28e
Describe servonk script.
madb1lly Jun 28, 2018
748ef97
Merge branch 'master' into patch-4
madb1lly Jun 28, 2018
34e9fae
Merge pull request #2 from madb1lly/patch-4
madb1lly Jun 28, 2018
7734f60
Merge pull request #1 from fabricedesre/master
madb1lly Jun 28, 2018
b54cdac
Merge pull request #3 from madb1lly/patch-1
madb1lly Jun 28, 2018
bd970b6
Revert "Update readme.md"
madb1lly Jun 28, 2018
fda08cc
Merge pull request #4 from madb1lly/revert-3-patch-1
madb1lly Jun 28, 2018
b3fa1ec
Add more work in progress
madb1lly Jun 29, 2018
e3e71c7
Updated todo.md with TODO notes in source files.
madb1lly Jul 5, 2018
ac5f9a2
Merge remote-tracking branch 'upstream/master'
madb1lly Sep 15, 2018
c8f6370
Correct rust-toolchain description + typos
madb1lly Oct 10, 2018
5cb18af
Whitespace removal
madb1lly Oct 10, 2018
984d941
Remove placeholder files
madb1lly Oct 11, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/architecture-and-execution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe the architecture of Servonk and how it executes.
1 change: 1 addition & 0 deletions docs/build-aries-l.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe how to build for the Sony Xperia Z3 Compact based on Android L/5.0. This device is known as the aries-l. The instructions will be confirmed using Docker.
1 change: 1 addition & 0 deletions docs/build-linux-glutin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe how to build for Linux using Glutin. Instructions will be confirmed using Docker.
1 change: 1 addition & 0 deletions docs/build-nexus-5-l.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe how to build for the Nexus 5. The instructions will be confirmed using Docker.
1 change: 1 addition & 0 deletions docs/build-process.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will decribe the flow of the build process for Servonk including the dependent repositories. Note that it will not attempty to fully describe the build process for the platforms (Gonk, GNU/Linux, etc) nor Servo as these should be described elsewhere.
1 change: 1 addition & 0 deletions docs/get-servonk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe how to get a running version of Servonk.
40 changes: 40 additions & 0 deletions docs/organisation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
This will describe the files in the Servonk repo AND the other dependent repos.

# [Servonk repo](https://github.com/fabricedesre/servonk)
## Root
### [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain)
Contains the current version of the Rust toolchain which is used by Servo. This is updated by manually running update-servo.sh script.

### [bootstrap.sh](https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh)
This checks the current version of the [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain), installs the rust toolchain for your current platform and the target armv7-linux-androideabi uaing the current vrsion and sets the override so that within the Servonk directory it will use this installed version of the toolchain for work on Servonk. This will only work if you have already installed [rustup](https://github.com/rust-lang-nursery/rustup.rs), which is part of the dependencies for Servo (and therefore Servonk) as described [here](https://github.com/servo/servo/blob/master/README.md#setting-up-your-environment).

[Bindgen](https://github.com/rust-lang-nursery/rust-bindgen) is needed to generate Rust FFI bindings to the [mtdev C library](https://github.com/fabricedesre/servonk/tree/master/platform/gonk/mtdev/mtdev-1.1.5). "command -v bindgen >/dev/null 2>&1 || { etc..." checks if bindgen exists and if not it installs it with "cargo install -f bindgen".

### [servonk](https://github.com/fabricedesre/servonk/blob/master/servonk)
This is the main script for interfacing with Servonk. It's parameters are the functions you wish to perform, on which platform and with which options. The functions call other scripts in the [/platform](https://github.com/fabricedesre/servonk/tree/master/platform) for the specified platform, e.g. [/platform/gonk/support/scripts](https://github.com/fabricedesre/servonk/tree/master/platform/gonk/support/scripts) for Gonk.

Usage: ./servonk {build|clean|flash|package|run} {gonk|glutin} <opts>

Functions:
* _build_ Servonk for specified platform.
* _clean_ the Servonk build files for the specified platform.
* _flash_ Servonk to the specified platform (not for Glutin)
* _frontend_ which only flashes the frontend of Servonk, it does not update the rest (not for Glutin)
* _package_ the built Servonk runtimes for distribution, e.g. as a [release](https://github.com/fabricedesre/servonk/releases)
* _run_ Servonk for the specified platform

Supported platforms:
* _gonk_
* _glutin_

Options:
* These depend on the function; to be completed.

### [update-servo.sh](https://github.com/fabricedesre/servonk/blob/master/update-servo.sh)
This script updates the Servonk repo with key resources from a Servo repository. The location of the Servo repository is given as an argument to the script. The script copies:
* The /resources directory of the Servo repository into the [/platform/shared](https://github.com/fabricedesre/servonk/tree/master/platform/shared/resources) directory of the Servonk repository,
* The cargo.lock file into the [/platform/gonk](https://github.com/fabricedesre/servonk/tree/master/platform/gonk) and [/platform/glutin](https://github.com/fabricedesre/servonk/tree/master/platform/glutin) directories of the Servonk repository
* rust-toolchain into the Servonk respository
* For Gonk only, update the [cargo.lock](https://github.com/fabricedesre/servonk/blob/master/platform/gonk/Cargo.lock) with the package versions for Fabrice's forks of [mozjs_sys](https://github.com/fabricedesre/mozjs.git), [rust-webvr](https://github.com/fabricedesre/rust-webvr.git) and [rust-webvr-api](https://github.com/fabricedesre/rust-webvr.git).

The script also runs [bootstrap.sh](https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) to update the Rust toolchain and Bindgen.
1 change: 1 addition & 0 deletions docs/run-releases.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe how to run the ready-built releases of Servonk.
2 changes: 2 additions & 0 deletions docs/target-devices-and-platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Using Glutin:
To do: add links to the build instructions for each of the working devices.

# Work in progress
* AOSP 8.1 in Android Emulator - vmx from IRC #b2g, built but not running
* AOSP 6.0 - confirmed working by Fabrice in Telegram group
* macOS using Glutin - @novski in Telegram, confirmed built, instructions to be written and need confirmation it's running.
* Flame - @penserbjorne has stated a desire to get this working in the repo issues.

Expand Down
1 change: 1 addition & 0 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This will describe troubleshooting tips for building and running Servonk based on the experience of other contributors.
23 changes: 22 additions & 1 deletion todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ Servonk feature list

## Lockscreen
- [x] lock after 1min of inactivity or when pressing the power button.
- [ ] main.js: replace idle event listener with a proper signal from the Servo side.
- [ ] main.js: turn off and turn off the screen properly

## Virtual Keyboard
(see attachResizeListener)
- [ ] script injection to listen to focus/blur events for now.
- [ ] open keyboard... how to send back events?
- [ ] layout_dictionary_downloader.js: harden the verification
- [ ] candidate_panel_view.js: (latin too) Don't create a business logic object in these views

## Window manager
- [x] frames are layout side by side.
Expand All @@ -20,12 +24,20 @@ Servonk feature list
- [x] the window title is displayed in the status bar.
- [x] the favicon is displayed in the status bar.
- [ ] pressing the status bar opens details/action for the site (eg. bookmarking).
- [ ] browser_window.rs: Change the scale based on the phone display's DPI.

## Homescreen
- [ ] basic grid of bookmarked sites.
- [ ] reorganize icons by dragging them around.
- [ ] grouping by folders / sections?
- [ ] automatic grouping by origin?
- [ ] statusbar.js: Use a default favicon

## Search
- [ ] search_panel.js:
- [ ] Implement abortable fetch() in Servo instead for the search suggestion fetcher
- [ ] Don't hardcode Google as the default search engine (in utils.js too)
- [ ] Update top sites fetcher by dispatching to worker

## Menu (short press on the menu icon)
- [ ] opens a panel with the search field at the bottom and quick settings on top.
Expand All @@ -50,6 +62,7 @@ Servonk feature list
- [ ] wifi (open and wpa/wpa2).
- [ ] vibration?
- [ ] lights?
- [ ] lib.rs: Why is disable_signals() preventing shutdown?

# Notifications
- [ ] from the desktop notifications api.
Expand Down Expand Up @@ -84,7 +97,15 @@ Servonk feature list
- [x] Desktop packages (Linux).
- [ ] Desktop packages (Windows & Mac).


## Tests
- [ ] Embedding tests.
- [ ] Frontend tests.

## Dependencies
- [ ] bootstrap.sh: Check the current Rust version and only call rustup if needed

## Building
- [ ] mtdev/build.rs: Unwrap the directory less when generating mod.rs