browsers

This your brain on the internet

notes

  • ctrl-shift-R for force cache reload
  • ctrl-w for close tab
  • ctrl-t for new tab
  • ctrl-tab for switch tab
  • threads provided via web workers
  • offline webapp manifest support with service worker
  • ARIA elements for accessibility
  • third-party iframe service workers can only register themselves if third party cookies are enabled chrome://settings/cookies
  • URL hash fragments can store information that the browser should not send to backend (customization)
  • webgpu has issues on wayland with gl backend

pwa

  • managed under brave://apps/ or chrome://apps
  • progressive web apps have a manifest and service worker for offline installable apps
    • must have name, icons, start-url and display
    • can be published as a TWA (trusted web app) android application with bubblewrap
    • service workers should not cache the manifest, itself or icons (16x16 and 32x32 should be cached for browser favicons)
    • service workers require https or chrome://flags/#unsafely-treat-insecure-origin-as-secure to be set locally
  • add the manifest to the html <head> as <link rel="manifest" href="./manifest.json">
  • Isolated Web Apps for signed updates
{
    "name": "Progressive Web App",
    "short_name": "PWA",
    "icons": [{
      "src": "./icon-256.png",
        "sizes": "256x256",
        "type": "image/png"
      }],
    "lang": "en-US",
    "start_url": "./index.html",
    "display": "standalone",
    "background_color": "white",
    "theme_color": "white"
}
<script>
    // register ServiceWorker
    window.onload = () => {
        'use strict';
        if ('serviceWorker' in navigator) {
            navigator.serviceWorker
                    .register('./service_worker.js');
        }
    }
</script>
var cacheName = 'pwa';
var filesToCache = [
  './',
  './index.html',
  './build/bundle.js',
  './build/bundle.wasm'
];
/* Start the service worker and cache all of the app's content */
self.addEventListener('install', function(e) {
  e.waitUntil(
    caches.open(cacheName).then(function(cache) {
      return cache.addAll(filesToCache);
    })
  );
});
/* Serve cached content when offline */
self.addEventListener('fetch', function(e) {
  e.respondWith(
    caches.match(e.request).then(function(response) {
      return response || fetch(e.request);
    })
  );
});

chrome

  • Type thisisunsafe anywhere on the SSL ERROR window and the browser will let you visit the page.
  • chrome://tracing for browser tracing
  • dev tools wasm dwarf debug extension https://chrome.google.com/webstore/detail/cc%20%20-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb
  • enable wayland scaling with --enable-features=UseOzonePlatform --ozone-platform=wayland cli args
  • set size at launch window-size=1920,1080
  • --ignore-certificate-errors cli arg to enable expired certs
  • pozzed by google
    • changed to suit their needs
  • blink and V8 for engine
  • fork of chromium
  • forks
    • brave
      • brave://gpu
      • brave://flags
        • WebGPU flag --enable-features=Vulkan
      • builtin tor, ad block
      • disable wallet, sidebar
      • F12 Dev Tools -> Ctrl+Shift+P -> type 'shot' for screen capture options
      • brave://flags/#ozone-platform-hint set to auto for wayland default instead of x11
      • Alt w to close tab, ctrl tab to cycle, ctrl shift T to reopened closed tab
    • ungoogled-chromium
    • microsoft edge
    • terminal browser
    • cobalt embeded app
    • Vanadium
      • grapheneOS fork of hardened chromium for android

safari

  • webkit based

search engines

ddg

  • fingerprinted users multiple times
  • no js version at lite.duckduckgo.com
  • uses bing (Micro$haft), yahoo

brave

sites