Browser cleanup like CCleaner using VB.NET - windows

I'm working on a VB.NET application and I need to delete all cookies, Internet caches and auto-complete keywords from all browsers found in the system. What are the folders I should be deleting content from?
Thank you.

Install any browser you want to support in your app and then check where it stores the data you want to delete. Also check the documentation of the browser (path might depend on OS, whatever).
Since it's easy to write your "own" browser (using 3rd party rendering engine), you will never be able to support all browsers found in the system.

Related

Desktop application using Firefox WebExtensions

I am working on a XUL desktop application, where I use the browser tag and load a URL in that tag within the desktop application.
However, some websites display as old format and according to Mozilla, XUL is deprecated and will not be useable at the end of 2017. I want to build the application with the latest technology: WebExtensions.
I have searched many examples on the usage of WebExtensions, but all are working within the browser. Can I make a standalone desktop application just like XUL, but using WebExtensions?
If yes, then please give me some hints on how to get started.
If no, is any alternative for the same requirement available?
Webextensions are fairly limited in their scope. Even if there was an application runtime utilising them, you probably wouldn't get much use out of them due to the restrictive isolation from the host system.
Strictly speaking not webextensions, albeit very similar:
The Electron framework/runtime*
Someone at Mozilla is also working on an alternative dubbed "Positron"** though that software's future is uncertain and there is a chance he might abandon it for an entirely new, highly simplified project (at least that's what I gathered from my conversation with him on Github).
*http://electron.atom.io/
**https://github.com/mozilla/positron

Merge Mozilla Addon to Build

I am working on a few addons on Mozilla since this easier than manually editing the source code.
The bigger picture is to have a customized browser that I can share with my fellow geeks and friends.
Question:Is there a simple way to add an addon to a Mozilla build so that my users don't have to manually install the addons on their computer.Something like a pre-packaged Setup.exe. The Setup.exe needs to be fully independent and not requiring to have Mozilla pre-installed.
More info(Edited):
Another reason is I do not want them to have access to the addons ,
the addons shouuld be in the core of the browser.Hence, a user should
not be able to turn off or even know it is an addon but barely the
functionality of their browser X.
You may want to use Portable Firefox, make your customizations and share the folder with your friends.
http://portableapps.com/apps/internet/firefox_portable

How to monitor browsers and capture urls without extensions

How can I monitor browsers and capture URLs when they want to download files without using extensions and plugins? For example Internet Download Manager (the version I have) captures URLs from Chrome and Firefox without using extensions, or Free Download Manager does the same thing with Chrome (no extension is installed) but for Firefox it uses an extension and they also provide this service for almost all browsers out there.
Can this be done without extensions and plugins?
Can this be done for other operating systems like OSX and Linux ?
Thank you so much
One option would be to simply intercept all traffic by browsers, and offer the option to download when uncommon filetypes (those that browsers would typically download rather than open) are navigated to. There is probably a more elegant solution, but I might have it act as an odd sort of firewall--one that blocks certain types and instead downloads them on its own.
I found the answer. IDM Uses Layered Service Provider (LSP), which Windows provides it.

Automatic download/upload

We are going to develop a client-server application with web interface which will store office documents on server.
When we use browser as a client we need to perform these three steps to edit a document:
download document to the local machine;
open it in office program and edit;
upload document to the server.
It is very inconvenient. Sometimes it is hard to find where a document was downloaded to, when we need to upload it. Customers will also forget to upload document after editing.
Is there any way or technology to upload document automatically?
Or just any ideas how to make this process more convenient.
Thanks in advance!
I would, suggest, if applicable to store all documents as HTML then allowing editing in a web page powered by CKEditor or a similar tool.
If your documents must be in another format, like Office formats, you might start thinking at Office 365, or use ActiveX controls in your web application, something I believe should be deprecated but works in small (better restricted) enterprise environments.
These are just a couple of ideas.

Using the browser for desktop UI

How can I use the browser as a UI for a desktop app? The ways I have come up with so far are...
Use all HTML/Javascript. Problem: Can't access filesystem or just about anything else.
Run a local webserver while the application is in use. Problem: How do I kill it when the user is done? My users are not technical enough to Ctrl+C.
Embed a browser component in a regular GUI. Problem: Embedded browser components tend to be glitchy at best. The support for Javascript/CSS is never as good as it is in a real browser.
...?
The ideal solution would work with any technology. I know there are options like writing Firefox extensions, but I want to have complete freedom in the backend technology and browser independence.
Please note that if you choose to run a local webserver, you're creating a security risk.
Any webpage running on the same machine that knows about your app can send requests to your server using Javascript, and you have no simple and reliable way of knowing what the request came from. (Don't trust the referer header)
Google Desktop, which uses a similar approach, has had several real-world vulnerabilities that allow any webpage to read any file on disk.
There are several ways to protect against this; I would recommend requiring each request to have a auth key which is randomly generated per-machine (and expires at some point), which you could put in the source for the actual pages. XHR protection would prevent malicious websites from reading the auth key, rendering them powerless.
If you are looking for a python Web Server with a Kill link, you could always check CherryPy.
import webbrowser
import cherrypy
import threading
class MyApp:
""" Sample request handler class. """
#cherrypy.expose
def index(self):
return """<html><head><title>An example application</title></head>
<body>
<h1>This is my sample application</h1>
Put the content here...
<hr>
Quit
</body></html>"""
#cherrypy.expose
def exit(self):
raise SystemExit(0)
class MyBGThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def run(self):
cherrypy.tree.mount(MyApp())
cherrypy.quickstart()
myThread = MyBGThread()
webbrowser.open("http://127.0.0.1:8080")
This code is based on the sample from the SingleClickAndRun on the cherrypy website:
http://tools.cherrypy.org/wiki/SingleClickAndRun
Note than in a normal WebApp you would probably use a templating engine and load templates from methods like main.
Something that would be nice would be to embbed a browser control in a gui window and close the server when the app exits.
For the security, you could possibly add an authentication scheme. There are a few that are supported by cherrypy, but you possibly could implement your own too, using tool modules.
I am looking to do the exact same thing (desktop app that uses an up to date HTML5 / CSS3 browser as the desktop app's GUI), only with Ruby (various reasons why I decided to work with Ruby). Its amazing the number of cross platform libraries people have come up with. But yet, few to no one, has done any work on trying to get a web browser to be a desktop app UI. Cross platform issue... well I won't say solved, but I will say several steps in the right direction taken.
To me this would be perfect with the new HTML5 / CSS3 standards coming out. I know it can be done with a web server running locally.
Another way might be like how the guys from “280 North” are doing what they do. They developed Objective-J (an extension of regular JavaScript that mimics how Objective-C extends regular C) and Cappuccino (the Objective-J equivalent of Objective-C’s Cocoa frame work on the MAC). They also developed “Atlas” which is 280 North’s version of Apple’s “Interface Builder” from Xcode, for their Objective-J and Cappuccino frameworks to build Internet Applications. Atlas is actually a Cappuccino web app running on your desktop as a desktop app. In this case they use the Narwhal… a cross platform, general purpose, JavaScript platform for developing JS apps outside of the browser (basically a specialized web server).
If any one can come up with an idea to make “Browser, direct connect to Desktop App” work without the need of a web server co-existing and still get to manipulate the local FS, I to would be very interested… Hmmm... Now that I think about it, I wonder if the new Google Chrome project “Native Client” can be used to do that. NaCL is much like Active X except you are not limited to a windows platform (but will be limited to the Google Chrome browser, at least for now). Only there is added security via Sandboxing, but you can manipulate the local FS… The more I think about it, the more I am beginning to suspect that it can be done.
Any thoughts?
In Windows, you could embed the IE ActiveX control, which uses the same rendering engine as IE. (That's a plus and a minus) You can set the ScriptObject property in your host code and access it in Javascript as window.external to do things that Javascript cannot do.
If you run a local webserver, you could have an exit link in the app that kills the websever.
You did not mention the OS you will need to target. But you might be able to create a program statared web server, then launced the default browser. Wait until the browser is terminated by the user and then shut down the web server.
So for example on windows you can use CreateProcess() to spawn the process
then MsgWaitForMultipleObjects() to wait until it is finished executing.
HTML Applications (HTA, for short) have been around for a while. You can read all about them here. They are basically HTML and Javascript with some extra options to create a window and with access to the local file system. They seem to be exactly what you want. It is Microsoft technology, so this will only work with IE on Windows systems. I've successfully used this as a front-end for a CD-ROM which was used to distribute software to first year students
Another option would be to use Adobe Air. I'm not all that familiar with the technology, but it seems to provide a framework to deploy web pages as desktop applications. I can't post a second link as a guest, but just google it and you'll find it soon enough.
Today, in 2023, you can simply use any installed web browser as GUI using the WebUI library.

Resources