\documentclass[aspectratio=169]{beamer} \mode { \usetheme{Hannover} \setbeamertemplate{authors}{} % Remove navigation symbols. \setbeamertemplate{navigation symbols}{} } \usepackage{color} \usepackage[utf8]{inputenc} \usepackage{listings} \usepackage{graphicx} \usepackage[font=tiny,skip=0pt]{caption} \usepackage{array} \graphicspath{{img/}} % Use symbols instead of numerals for footnotes. \renewcommand{\thefootnote}{\fnsymbol{footnote}} % Reset footnote counter every section. \makeatletter \@addtoreset{footnote}{subsection} \makeatother \newcommand{\iconframe}[2] { \begin{minipage}[t]{2.5em} \includegraphics[width=\textwidth]{app-icons/#1} \captionof*{figure}{#2} \end{minipage} } \title[The Chromium mess meets Android]{The Chromium mess meets Android} \subtitle{Proposals on how to get a fully free WebView build or replace it by something completely new} \author{David Ludovino \and Jeremy Rand \thanks{\footnotesize with support from Andrés D and Kurtis Hanna}} \institute[Replicant]{Replicant} \date{} \logo{\includegraphics[scale=0.25]{logo}} \titlegraphic{\includegraphics[width=4em]{logo}} \begin{document} \begin{frame} \maketitle \end{frame} \section{What is WebView?} \begin{frame}[fragile] \frametitle{What is WebView?} \begin{columns} \begin{column}{0.6\textwidth} Renders web content (HTML, CSS, JavaScript) inside apps.\\\bigskip API has been around since Android 1.\\\bigskip \lstset{ language=Java, basicstyle=\scriptsize\ttfamily, keywordstyle=\color{blue}, stringstyle=\color{orange}, } \begin{lstlisting} public class MainActivity extends Activity { @Override protected void onCreate(Bundle state) { super.onCreate(state); WebView v = new WebView(this); setContentView(v); v.loadUrl("https://replicant.us"); } } \end{lstlisting} \end{column} \begin{column}{0.3\textwidth} \includegraphics[width=\textwidth]{webview-sample} \end{column} \end{columns} \end{frame} \subsection{Which apps use it?} \begin{frame} \frametitle{Which apps use WebView?} Apps that render HTML: email clients, RSS readers, etc.\\\bigskip Became pervasive with the advent of cross-platform mobile frameworks.\\\medskip \begin{block}{Half of the apps listed at PRISM Break depend on WebView} \vspace{1ex} \centering \begin{tabular}{c | c} uses WebView & does not use WebView \\ \hline \iconframe{k9mail}{K-9 Mail} \iconframe{osmand}{OsmAnd} \iconframe{nextcloud}{Nextcloud} \iconframe{ttrss}{Tiny Tiny RSS} \iconframe{i2p}{I2P} & \iconframe{orbot}{Orbot} \iconframe{fdroid}{F-Droid} \iconframe{andotp}{andOTP} \iconframe{shaarlier}{Shaarlier} \iconframe{briar}{Briar} \\ \iconframe{wallabag}{wallabag} \iconframe{openkeychain}{OpenKeychain} \iconframe{etesync}{EteSync} \iconframe{syncthing}{Syncthing} \iconframe{signal}{Signal} & \iconframe{conversations}{Conversations} \iconframe{silence}{Silence} \iconframe{tincapp}{Tinc App} \iconframe{keepassdx}{KeePass DX} \iconframe{jami}{Jami} \\ \iconframe{dandelion}{dandelion*} \iconframe{nomad}{Nomad} \iconframe{tusky}{Tusky} \iconframe{movim}{Movim} & \iconframe{bitmask}{Bitmask} \iconframe{wireguard}{Wireguard} \iconframe{fennec}{Fennec F-Droid} \iconframe{torbrowser}{Tor Browser} \iconframe{thorium}{Thorium} \\ \end{tabular} \end{block} \end{frame} \subsection{What's underneath it?} \begin{frame} \frametitle{What is underneath WebView?} \includegraphics[width=3em]{webkit} WebKit until Android 4.3 Jelly Bean (API 18).\\ \vspace{3\baselineskip} \includegraphics[width=3em]{chromium} Chromium from Android 4.4 KitKat (API 19) onwards. \end{frame} \section{What's the matter with Chromium?} \begin{frame} \frametitle{What's the matter with Chromium?} \end{frame} \section{Feedback?} \begin{frame} \frametitle{Feedback?} \begin{itemize} \item Questions \item Comments \item Ideas \item Collaboration \end{itemize} All welcomed! \end{frame} \begin{frame} \frametitle{Licenses (I)} \begin{tabular}{>{\scriptsize}l | >{\scriptsize}l | >{\scriptsize}l} item & source & license \\ \hline K-9 Mail logo & \url{https://github.com/k9mail/k-9} & Apache-2.0 \\ OsmAnd logo & \url{https://github.com/osmandapp/Osmand} & CC-BY-NC-ND 4.0 \\ Nextcloud logo & \url{https://github.com/nextcloud/android} & AGPLv3 \\ Tiny Tiny RSS logo & \url{https://gitlab.com/derSchabi/tttrsss} & GPLv3 \\ I2P logo & \url{https://github.com/i2p/i2p.android.base} & Apache-2.0 \\ Orbot logo & \url{https://gitweb.torproject.org/orbot.git} & BSD \\ F-Droid logo & \url{https://gitlab.com/fdroid/fdroidclient} & GPLv3 \\ andOTP logo & \url{https://github.com/andOTP/andOTP} & MIT \\ Shaarlier logo & \url{https://github.com/dimtion/Shaarlier} & GPLv3 \\ wallabag logo & \url{https://github.com/wallabag/android-app} & GPLv3 \\ OpenKeychain logo & \url{https://github.com/open-keychain/open-keychain} & GPLv3 \\ EteSync logo & \url{https://github.com/etesync/android} & GPLv3 \\ Syncthing logo & \url{https://github.com/syncthing/syncthing-android} & MPLv2 \\ Briar logo & \url{https://code.briarproject.org/briar/briar} & GPLv3 \\ \end{tabular} \end{frame} \begin{frame} \frametitle{Licenses (II)} \begin{tabular}{>{\scriptsize}l | >{\scriptsize}l | >{\scriptsize}l} item & source & license \\ \hline Conversations logo & \url{https://github.com/siacs/Conversations} & GPLv3 \\ Signal logo & \url{https://github.com/signalapp/Signal-Android} & GPLv3 \\ Silence logo & \url{https://git.silence.dev/Silence/Silence-Android} & GPLv3 \\ Tinc App logo & \url{https://github.com/pacien/tincapp} & GPLv3 \\ KeePass DX logo & \url{https://github.com/Kunzisoft/KeePassDX} & GPLv3 \\ dandelion* logo & \url{https://github.com/gsantner/dandelion} & GPLv3 \\ Nomad logo & \url{https://framagit.org/disroot/AndHub} & GPLv3 \\ Tusky logo & \url{https://github.com/tuskyapp/Tusky} & GPLv3 \\ Movim logo & \url{https://github.com/movim/movim_android} & AGPLv3 \\ Jami logo & \url{https://git.jami.net/savoirfairelinux/ring-client-android} & GPLv3 \\ Bitmask logo & \url{https://0xacab.org/leap/bitmask_android} & GPLv3 \\ WireGuard logo & \url{https://git.zx2c4.com/wireguard-android} & Apache-2.0 \\ Fennec F-Droid logo & \url{https://hg.mozilla.org/releases/mozilla-esr68} & MPL-2.0 \\ Tor Browser logo & \url{https://gitweb.torproject.org/tor-browser.git} & MPL-2.0 \\ \end{tabular} \end{frame} \begin{frame} \frametitle{Licenses (II)} \begin{tabular}{>{\scriptsize}l | >{\scriptsize}l | >{\scriptsize}l} item & source & license \\ \hline Thorium logo & \url{https://github.com/sschueller/peertube-android} & AGPLv3 \\ WebKit logo & \url{https://en.wikipedia.org/wiki/File:WebKit_logo_(2015).svg} & non-free (fair use) \\ Chromium logo & \url{https://commons.wikimedia.org/wiki/File:Chromium_11_Logo.svg} & CC-BY 2.5 \\ everything else & this slideshow & CC BY-SA 4.0 \end{tabular} \end{frame} \end{document}