// Engine/Source/Runtime/WebBrowser/Public/IWebBrowserCookieManager.h #pragma once #include "CoreMinimal.h" struct FWebInterfaceBrowserCookie { public: // The cookie name. FString Name; // The cookie value. FString Value; // If is empty a host cookie will be created instead of a domain // cookie. Domain cookies are stored with a leading "." and are visible to // sub-domains whereas host cookies are not. FString Domain; // If is non-empty only URLs at or below the path will get the cookie // value. FString Path; // If true the cookie will only be sent for HTTPS requests. bool bSecure; // If true the cookie will only be sent for HTTP requests. bool bHttpOnly; // If true the cookie will expire at the specified Expires datetime. bool bHasExpires; // The cookie expiration date is only valid if bHasExpires is true. FDateTime Expires; }; class IWebInterfaceBrowserCookieManager { public: typedef struct FWebInterfaceBrowserCookie FCookie; public: /** * Sets a cookie given a valid URL. * * This function expects each attribute to be well-formed. It will * check for disallowed characters (e.g. the ';' character is disallowed * within the cookie Value field) and fail without setting the cookie if * such characters are found. * * @param URL The base URL to match when searching for cookies to remove. Use blank to match all URLs. * @param Cookie The struct defining the state of the cookie to set * @param Completed A callback function that will be invoked asynchronously on the game thread when the set is complete passing success bool. */ virtual void SetCookie(const FString& URL, const FCookie& Cookie, TFunction Completed = nullptr) = 0; /** * Delete all browser cookies. * * Removes all matching cookies. Leave both URL and CookieName blank to delete the entire cookie database. * The actual deletion will be scheduled on the browser IO thread, so the operation may not have completed when the function returns. * * @param URL The base URL to match when searching for cookies to remove. Use blank to match all URLs. * @param CookieName The name of the cookie to delete. If left unspecified, all cookies will be removed. * @param Completed A callback function that will be invoked asynchronously on the game thread when the deletion is complete passing in the number of deleted objects. */ virtual void DeleteCookies(const FString& URL = TEXT(""), const FString& CookieName = TEXT(""), TFunction Completed = nullptr) = 0; };