diff --git a/client/public/assets/apple-touch-icon-180x180.png b/client/public/assets/apple-touch-icon-180x180.png new file mode 100644 index 00000000..ebc0be50 Binary files /dev/null and b/client/public/assets/apple-touch-icon-180x180.png differ diff --git a/client/public/favicon.png b/client/public/assets/favicon.png similarity index 100% rename from client/public/favicon.png rename to client/public/assets/favicon.png diff --git a/client/public/assets/safari-pinned-tab.svg b/client/public/assets/safari-pinned-tab.svg new file mode 100644 index 00000000..d2cd031d --- /dev/null +++ b/client/public/assets/safari-pinned-tab.svg @@ -0,0 +1,16 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="144.000000pt" height="144.000000pt" viewBox="0 0 144.000000 144.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.11, written by Peter Selinger 2001-2013 +</metadata> +<g transform="translate(0.000000,144.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M485 1424 c-159 -24 -332 -74 -449 -130 l-39 -19 6 -130 c4 -71 13 +-166 21 -210 66 -364 268 -656 608 -883 89 -59 79 -59 176 4 336 218 540 516 +608 884 11 60 14 91 20 216 l6 120 -78 33 c-267 112 -604 156 -879 115z"/> +</g> +</svg> diff --git a/client/public/index.html b/client/public/index.html index 56d4bfda..ecf811ec 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -6,7 +6,9 @@ <meta name="theme-color" content="#000000"> <meta name="google" content="notranslate"> <meta http-equiv="x-dns-prefetch-control" content="off"> - <link rel="icon" type="image/png" href="favicon.png" sizes="48x48"> + <link rel="apple-touch-icon" sizes="180x180" href="assets/apple-touch-icon-180x180.png" /> + <link rel="mask-icon" href="assets/safari-pinned-tab.svg" color="#5bbad5"> + <link rel="icon" type="image/png" href="assets/favicon.png" sizes="48x48"> <title>AdGuard Home</title> </head> <body> diff --git a/client/public/install.html b/client/public/install.html index 2fd3bb7d..3a09704c 100644 --- a/client/public/install.html +++ b/client/public/install.html @@ -5,7 +5,9 @@ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="theme-color" content="#000000"> <meta name="google" content="notranslate"> - <link rel="icon" type="image/png" href="favicon.png" sizes="48x48"> + <link rel="apple-touch-icon" sizes="180x180" href="assets/apple-touch-icon-180x180.png" /> + <link rel="mask-icon" href="assets/safari-pinned-tab.svg" color="#5bbad5"> + <link rel="icon" type="image/png" href="assets/favicon.png" sizes="48x48"> <title>Setup AdGuard Home</title> </head> <body> diff --git a/client/public/login.html b/client/public/login.html index 03179b42..9f06fc03 100644 --- a/client/public/login.html +++ b/client/public/login.html @@ -5,7 +5,9 @@ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="theme-color" content="#000000"> <meta name="google" content="notranslate"> - <link rel="icon" type="image/png" href="favicon.png" sizes="48x48"> + <link rel="apple-touch-icon" sizes="180x180" href="assets/apple-touch-icon-180x180.png" /> + <link rel="mask-icon" href="assets/safari-pinned-tab.svg" color="#5bbad5"> + <link rel="icon" type="image/png" href="assets/favicon.png" sizes="48x48"> <title>Login</title> </head> <body> diff --git a/client/webpack.common.js b/client/webpack.common.js index 99b6dbae..f4f0bae4 100644 --- a/client/webpack.common.js +++ b/client/webpack.common.js @@ -14,9 +14,10 @@ const ENTRY_LOGIN = path.resolve(RESOURCES_PATH, 'src/login/index.js'); const HTML_PATH = path.resolve(RESOURCES_PATH, 'public/index.html'); const HTML_INSTALL_PATH = path.resolve(RESOURCES_PATH, 'public/install.html'); const HTML_LOGIN_PATH = path.resolve(RESOURCES_PATH, 'public/login.html'); -const FAVICON_PATH = path.resolve(RESOURCES_PATH, 'public/favicon.png'); +const ASSETS_PATH = path.resolve(RESOURCES_PATH, 'public/assets'); const PUBLIC_PATH = path.resolve(__dirname, '../build/static'); +const PUBLIC_ASSETS_PATH = path.resolve(PUBLIC_PATH, 'assets'); const config = { target: 'web', @@ -134,7 +135,7 @@ const config = { filename: '[name].[contenthash].css', }), new CopyPlugin([ - { from: FAVICON_PATH, to: PUBLIC_PATH }, + { from: ASSETS_PATH, to: PUBLIC_ASSETS_PATH }, ]), ], }; diff --git a/home/auth.go b/home/auth.go index c72ca546..a2d6d5f2 100644 --- a/home/auth.go +++ b/home/auth.go @@ -380,11 +380,10 @@ func optionalAuth(handler func(http.ResponseWriter, *http.Request)) func(http.Re } } - } else if r.URL.Path == "/favicon.png" || - strings.HasPrefix(r.URL.Path, "/login.") || - strings.HasPrefix(r.URL.Path, "/__locales/") { + } else if strings.HasPrefix(r.URL.Path, "/assets/") || + strings.HasPrefix(r.URL.Path, "/login.") { // process as usual - + // no additional auth requirements } else if Context.auth != nil && Context.auth.AuthRequired() { // redirect to login page if not authenticated ok := false diff --git a/home/control.go b/home/control.go index 310b9f20..744fc327 100644 --- a/home/control.go +++ b/home/control.go @@ -188,7 +188,7 @@ func postInstall(handler func(http.ResponseWriter, *http.Request)) func(http.Res if Context.firstRun && !strings.HasPrefix(r.URL.Path, "/install.") && - r.URL.Path != "/favicon.png" { + !strings.HasPrefix(r.URL.Path, "/assets/") { http.Redirect(w, r, "/install.html", http.StatusFound) return }