Implement in Delphi a code which allows the listing OR cleaning of the history and/or cookie data of browsers.
Basically, I want two functions:
1) Function browser_data_list(browser_name : string; data_type : string) : TStringList; which will return a TStringList with the given browser data. For example, calling browser_data_list('opera', 'cookie') would list all Cookie data from Opera browser installed to the system. Or calling browser_data_list('edge', 'history') would list all the browsing History data of the Microsoft Edge browser, and so forth.
2) Function browser_data_clear(browser_name : string; data_type : string; skip_list : TStringList) : TStringList; which will clear (delete) the given browser data EXCEPT for data matching to the given skip_list. For example, calling browser_data_clear("chrome", "cookies", skip_list) and skip_list containing rows "[login to view URL]" and "facebook" would delete all Chrome's Cookies except those containing the search word "[login to view URL]" OR "facebook", thus essentially deleting all Cookies except those containing the search words Google or Facebook. The return value of the function is a StringList, listing the deleted items.
The code must compile and work under Delphi 10. If your code will use any third party libraries, please say so in your bid. The code must work with the current latest official versions of Mozilla Firefox, Google Chrome, Microsoft Edge and Opera. The code must work in versions of Windows from XP to latest Windows 10.
The final delivery of the code must include a simple testing application with buttons to list or clean the data from each browser. This testing application must be provided as a compiled exe as well as its source code must be included. We will use the compiled exe for testing purposes to test if your code works.