\documentclass[aspectratio=169]{beamer}

\mode<presentation> {
\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}
