From c37ba6dce65eadeafda5d18287eef6fedf6d1235 Mon Sep 17 00:00:00 2001
From: Michal Klocek <michal.klocek@qt.io>
Date: Thu, 13 Sep 2018 15:17:50 +0200
Subject: [PATCH] Add kerberos feature to configure system

Task-number: QTBUG-51082
Change-Id: I2c3ed5b42b054a9385f358eb9311646bc2a6cde0
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
---
 src/core/config/common.pri      | 6 ++++++
 src/core/config/linux.pri       | 1 -
 src/core/config/mac_osx.pri     | 1 -
 src/core/config/windows.pri     | 1 -
 src/core/configure.json         | 9 +++++++++
 src/core/profile_io_data_qt.cpp | 2 +-
 6 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/core/config/common.pri b/src/core/config/common.pri
index c41348f28..bb318f1f0 100644
--- a/src/core/config/common.pri
+++ b/src/core/config/common.pri
@@ -100,4 +100,10 @@ qtConfig(webengine-v8-snapshot) {
     gn_args += v8_use_snapshot=false
 }
 
+qtConfig(webengine-kerberos) {
+    gn_args += use_kerberos=true
+} else {
+    gn_args += use_kerberos=false
+}
+
 !msvc: gn_args += enable_iterator_debugging=false
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index 8ffc276de..7f634472d 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -5,7 +5,6 @@ gn_args += \
     use_cups=false \
     use_gio=false \
     use_gnome_keyring=false \
-    use_kerberos=false \
     linux_use_bundled_binutils=false \
     use_udev=true \
     use_bundled_fontconfig=false \
diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
index e5e819e04..4426901cf 100644
--- a/src/core/config/mac_osx.pri
+++ b/src/core/config/mac_osx.pri
@@ -24,7 +24,6 @@ system("$${QMAKE_CLANG_PATH} --version")
 gn_args += \
     is_clang=true \
     use_sysroot=false \
-    use_kerberos=false \
     clang_base_path=\"$${QMAKE_CLANG_DIR}\" \
     clang_use_chrome_plugins=false \
     mac_deployment_target=\"$${QMAKE_MACOSX_DEPLOYMENT_TARGET}\" \
diff --git a/src/core/config/windows.pri b/src/core/config/windows.pri
index 5aa511da3..3b42a0b9a 100644
--- a/src/core/config/windows.pri
+++ b/src/core/config/windows.pri
@@ -3,7 +3,6 @@ include(common.pri)
 gn_args += \
     is_clang=false \
     use_sysroot=false \
-    use_kerberos=true \
     enable_session_service=false \
     ninja_use_custom_environment_files=false \
     is_multi_dll_chrome=false \
diff --git a/src/core/configure.json b/src/core/configure.json
index 000faf686..a72e6ca55 100644
--- a/src/core/configure.json
+++ b/src/core/configure.json
@@ -24,6 +24,7 @@
             "webengine-geolocation": "boolean",
             "webengine-v8-snapshot": "boolean",
             "webengine-webchannel": "boolean",
+            "webengine-kerberos": "boolean",
             "alsa": { "type": "boolean", "name": "webengine-alsa" },
             "pulseaudio": { "type": "boolean", "name": "webengine-pulseaudio" },
             "ffmpeg": { "type": "enum", "name": "webengine-system-ffmpeg", "values": { "system": "yes", "qt": "no" } },
@@ -518,6 +519,13 @@
             "autoDetect": false,
             "output": [ "privateFeature" ]
         },
+        "webengine-kerberos": {
+            "label": "Kerberos Authentication",
+            "purpose": "Enables Kerberos Authentication Support",
+            "autoDetect": "config.win32",
+            "section": "WebEngine",
+            "output": [ "privateFeature" ]
+        },
         "webengine-spellchecker": {
             "label": "Spellchecker",
             "purpose": "Provides a spellchecker.",
@@ -695,6 +703,7 @@
                 "webengine-geolocation",
                 "webengine-webchannel",
                 "webengine-v8-snapshot",
+                "webengine-kerberos",
                 {
                     "type": "feature",
                     "args": "webengine-v8-snapshot-support",
diff --git a/src/core/profile_io_data_qt.cpp b/src/core/profile_io_data_qt.cpp
index fdd9a881c..91ffef152 100644
--- a/src/core/profile_io_data_qt.cpp
+++ b/src/core/profile_io_data_qt.cpp
@@ -89,7 +89,7 @@ namespace QtWebEngineCore {
 
 static const char* const kDefaultAuthSchemes[] = { net::kBasicAuthScheme,
                                                    net::kDigestAuthScheme,
-#if defined(USE_KERBEROS) && !defined(OS_ANDROID)
+#if QT_CONFIG(webengine_kerberos)
                                                    net::kNegotiateAuthScheme,
 #endif
                                                    net::kNtlmAuthScheme };
-- 
GitLab