summaryrefslogtreecommitdiff
path: root/frontends
diff options
context:
space:
mode:
Diffstat (limited to 'frontends')
-rw-r--r--frontends/windows/Makefile2
-rw-r--r--frontends/windows/login.c297
-rw-r--r--frontends/windows/login.h39
-rw-r--r--frontends/windows/main.c1
4 files changed, 1 insertions, 338 deletions
diff --git a/frontends/windows/Makefile b/frontends/windows/Makefile
index 087edb627..ceb430867 100644
--- a/frontends/windows/Makefile
+++ b/frontends/windows/Makefile
@@ -54,7 +54,7 @@ S_RESOURCES := windows_resource.o
# sources purely for the windows build
S_FRONTEND := main.c window.c gui.c clipboard.c drawable.c plot.c findfile.c \
font.c bitmap.c about.c prefs.c download.c fetch.c file.c \
- local_history.c schedule.c windbg.c pointers.c login.c \
+ local_history.c schedule.c windbg.c pointers.c \
corewindow.c hotlist.c cookies.c global_history.c ssl_cert.c
# This is the final source build list
diff --git a/frontends/windows/login.c b/frontends/windows/login.c
deleted file mode 100644
index ca6c9163d..000000000
--- a/frontends/windows/login.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
-* Copyright 2018 Vincent Sanders <vince@netsurf-browser.org>
-*
-* This file is part of NetSurf, http://www.netsurf-browser.org/
-*
-* NetSurf is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; version 2 of the License.
-*
-* NetSurf is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * \file
- * This is The win32 API basic authentication login dialog implementation.
- */
-
-#include <stdio.h>
-
-#include "utils/config.h"
-
-#include <windows.h>
-
-#include "utils/log.h"
-#include "utils/messages.h"
-#include "utils/nsurl.h"
-#include "desktop/version.h"
-
-#include "windows/gui.h"
-#include "windows/window.h"
-#include "windows/login.h"
-#include "windows/resourceid.h"
-
-#include "windbg.h"
-
-struct login_ctx {
- char *username;
- char *password;
- char *description;
- nserror (*cb)(const char *username, const char *password, void *cbctx);
- void *cbctx;
-};
-
-
-/**
- * free login dialog context
- */
-static nserror
-free_loginctx(struct login_ctx *ctx)
-{
- free(ctx->username);
- free(ctx->password);
- free(ctx->description);
- free(ctx);
-
- return NSERROR_OK;
-}
-
-
-/**
- * generate the description of the login request
- */
-static nserror
-get_login_description(struct nsurl *url,
- const char *realm,
- char **out_str)
-{
- char *url_s;
- size_t url_l;
- nserror res;
- const char *fmt = "The site %s is requesting your username and password. The realm is \"%s\"";
- char *str = NULL;
- int strlen;
-
- res = nsurl_get(url, NSURL_SCHEME | NSURL_HOST, &url_s, &url_l);
- if (res != NSERROR_OK) {
- return res;
- }
-
- strlen = snprintf(str, 0, fmt, url_s, realm) + 1;
- str = malloc(strlen);
- if (str == NULL) {
- res = NSERROR_NOMEM;
- } else {
- snprintf(str, strlen, fmt, url_s, realm);
- *out_str = str;
- }
-
- free(url_s);
-
- return res;
-}
-
-/**
- * win32 login dialog initialisation handler
- */
-static BOOL
-login_dialog_init(HWND hwndDlg, WPARAM wParam, LPARAM lParam)
-{
- struct login_ctx *ctx;
- HWND hwndOwner;
- RECT rc, rcDlg, rcOwner;
- ctx = (struct login_ctx *)lParam;
-
- /* make context available in future calls */
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
-
- /* set default contents */
- SetDlgItemText(hwndDlg, IDC_LOGIN_USERNAME, ctx->username);
- SetDlgItemText(hwndDlg, IDC_LOGIN_PASSWORD, ctx->password);
- SetDlgItemText(hwndDlg, IDC_LOGIN_DESCRIPTION, ctx->description);
-
- /* Get the owner window and dialog box rectangles. */
- if ((hwndOwner = GetParent(hwndDlg)) == NULL) {
- hwndOwner = GetDesktopWindow();
- }
-
- GetWindowRect(hwndOwner, &rcOwner);
- GetWindowRect(hwndDlg, &rcDlg);
- CopyRect(&rc, &rcOwner);
-
- /* Offset the owner and dialog box rectangles so that right
- * and bottom values represent the width and height, and then
- * offset the owner again to discard space taken up by the
- * dialog box.
- */
-
- OffsetRect(&rcDlg, -rcDlg.left, -rcDlg.top);
- OffsetRect(&rc, -rc.left, -rc.top);
- OffsetRect(&rc, -rcDlg.right, -rcDlg.bottom);
-
- /* The new position is the sum of half the remaining space and
- * the owner's original position.
- */
- SetWindowPos(hwndDlg,
- HWND_TOP,
- rcOwner.left + (rc.right / 2),
- rcOwner.top + (rc.bottom / 2),
- 0, 0, /* Ignores size arguments. */
- SWP_NOSIZE);
-
- /* ensure username gets focus */
- if (GetDlgCtrlID((HWND) wParam) != IDC_LOGIN_USERNAME) {
- SetFocus(GetDlgItem(hwndDlg, IDC_LOGIN_USERNAME));
- return FALSE;
- }
-
- return TRUE;
-}
-
-
-/**
- * win32 login dialog ok handler
- */
-static BOOL
-login_dialog_ok(HWND hwndDlg, struct login_ctx *ctx)
-{
- char username[255];
- char password[255];
-
- if (GetDlgItemText(hwndDlg,
- IDC_LOGIN_USERNAME,
- username,
- sizeof(username)) == 0) {
- username[0]=0;
- }
-
- if (GetDlgItemText(hwndDlg,
- IDC_LOGIN_PASSWORD,
- password,
- sizeof(password)) == 0) {
- password[0]=0;
- }
-
- NSLOG(netsurf, DEBUG,
- "context %p, user:\"%s\" pw:\"%s\"", ctx, username, password);
-
- ctx->cb(username, password, ctx->cbctx);
-
- DestroyWindow(hwndDlg);
-
- nsw32_del_dialog(hwndDlg);
-
- free_loginctx(ctx);
-
- return TRUE;
-}
-
-
-/**
- * win32 login dialog cancel handler
- */
-static BOOL
-login_dialog_cancel(HWND hwndDlg, struct login_ctx *ctx)
-{
- NSLOG(netsurf, DEBUG, "context %p", ctx);
-
- ctx->cb(NULL, NULL, ctx->cbctx);
-
- DestroyWindow(hwndDlg);
-
- nsw32_del_dialog(hwndDlg);
-
- free_loginctx(ctx);
-
- return TRUE;
-}
-
-
-/**
- * win32 API callback for login dialog
- */
-static BOOL CALLBACK
-login_dialog_callback(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- struct login_ctx *ctx;
-
- LOG_WIN_MSG(hwndDlg, message, wParam, lParam);
-
- /* obtain login dialog context */
- ctx = (struct login_ctx *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- switch (message) {
- case WM_INITDIALOG:
- return login_dialog_init(hwndDlg, wParam, lParam);
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDOK:
- return login_dialog_ok(hwndDlg, ctx);
-
- case IDCANCEL:
- return login_dialog_cancel(hwndDlg, ctx);
- }
- }
- return FALSE;
-}
-
-
-/**
- * Request credentials for http login
- */
-nserror
-nsw32_401login(nsurl *url,
- const char *realm,
- const char *username,
- const char *password,
- nserror (*cb)(const char *username,
- const char *password,
- void *cbctx),
- void *cbctx)
-{
- HWND hwndDlg;
- struct login_ctx *nctx;
- struct gui_window *gw;
- nserror res;
-
- /* locate parent window */
- gw = nsws_get_gui_window(GetActiveWindow());
- if (gw == NULL) {
- return NSERROR_INIT_FAILED;
- }
-
- /* setup context for parameters */
- nctx = calloc(1, sizeof(struct login_ctx));
- if (nctx == NULL) {
- return NSERROR_NOMEM;
- }
-
- nctx->username = strdup(username);
- nctx->password = strdup(password);
- nctx->cb = cb;
- nctx->cbctx = cbctx;
-
- res = get_login_description(url, realm, &nctx->description);
- if (res != NSERROR_OK) {
- free_loginctx(nctx);
- return res;
- }
-
- /* create modeless dialog */
- hwndDlg = CreateDialogParam(NULL,
- MAKEINTRESOURCE(IDD_LOGIN),
- gw->main,
- login_dialog_callback,
- (LPARAM)nctx);
-
- nsw32_add_dialog(hwndDlg);
-
- return NSERROR_OK;
-}
diff --git a/frontends/windows/login.h b/frontends/windows/login.h
deleted file mode 100644
index 411306230..000000000
--- a/frontends/windows/login.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2018 Vincent Sanders <vince@netsurf-browser.org>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * \file
- * Basic authentication login interfaces.
- */
-
-#ifndef NSW32_LOGIN_H
-#define NSW32_LOGIN_H
-
-/**
- * login window request.
- */
-extern nserror nsw32_401login(nsurl *url,
- const char *realm,
- const char *username,
- const char *password,
- nserror (*cb)(const char *username,
- const char *password,
- void *cbctx),
- void *cbctx);
-
-#endif
diff --git a/frontends/windows/main.c b/frontends/windows/main.c
index ea9d99571..e36ae2c31 100644
--- a/frontends/windows/main.c
+++ b/frontends/windows/main.c
@@ -46,7 +46,6 @@
#include "windows/drawable.h"
#include "windows/corewindow.h"
#include "windows/ssl_cert.h"
-#include "windows/login.h"
#include "windows/download.h"
#include "windows/local_history.h"
#include "windows/window.h"