Since many years some Webbrowsers got developed. The Internet Explorer was build by Microsoft and pushed in it's market share. A long time ago the rival of the Internet Explorer was the Netscape Navigator. I used it in my first days having
a the computer. Later the Firefox from Mozilla got popular at the market (particular in Germany). After a short time I switched to it. I done this, because the Netscape Navigator was not developed anymore. I never used the Google Chrome,
because the Firefox already had all functions I need. Just up to some updates later. Then they did a redesign and I missed some features. Also I had some things, that I missed all time.
At this time I had made some first steps with programming in VB.NET. I noticed that my IDE offers a webbrowser module. Once I done a short test, notice that there is no special diffrence of the usage to one of the other browser when I use
it in a self programmed application. So I get the idea to make my own webbrowser that I can design as I want.
At first my browser had the name "Knight 2000 Mini Browser". The prefix in the name is because the development in the teenager years. The part "Mini Browser" is because the fist version had no much features.
The browser was build at first with webbrowser control from the framework. Therefor it is based on the Internet Explorer engine. From the beginning I was interested to think about the useablility at all possible conditions. The browser had
a base screen resolution from 640 to 480 pixels when it was freshly installed. I made this because when Windows has no screen driver it sets this resolution as the default. Further the browser can be installed to the system and also on a
removable storage. A Mode for a Portable Environment was part of the second release.
Unfortunately the .NET Framework restricts me that the browser can only run on Windows until the time when the browser was developed. More over I was interested to support "Old-School" Windows versions like Windows 98. I done this
point for a time. But for doing this I had to use older versions of thr Framework. Later I switched to the lastest version at this time. But porting the browser to other operating systems like MacOS or Linux was (at this time) not
possible.
All other browsers (yes, also the Internet Explorer :-D ) had already support for add-ons. But all time I can't build such a thing for my browser. I also had no idea how to make add-ons that will run parallel to the websites. As one last
change I switched the engine to the old Gecko enginge from Mozilla. After done this step also the using of Firefox add-ons was an interest. But also there I had no clear idea how to do this.
A try on a touch interface was in development, but it was never completed. And later I more had used the Firefox because I then often work with Linux and I can use my add-ons. And then the development ends after a time. The lastest version
were originally build on Windows 7. But they run also up today as the .NET-Framework is supported up to nowadays.
Since the first version the Webbird should run not only by installing into the system. You can also run it in the PE Version.
This option allows that the application will never write into the Windows user account which has started the application. The application then uses it's installation location for the data.
You can use for this a USB memory storage, a network share or a cloud sync directory.
One benefit can be that you are able to start the application on a PC from a other person and use it with your own setup not with the from the other.
A second benefit should be to run the application on Windows live images (like setup / recovery environment). But sadly then you every time need to have the .NET-Framework alongside as dependency which is mostly not in the normal case.
Once I had the need to reload a website in a time interval. On the site you had only seen changes if you (re-) load it after a short time. (An Example: Suggestions that changed only in minute intervall and were not reloaded by a script.)
For setting up the reload interval you had only do a right click in the tab and select start or stop. If you selected start, then you got asked for the interval to reload the page.
The feature "Moved Home" means that the user can choose were the application data for him will be stored. As the diffrence to PE here is not the focus on beeing independent from the logged in user in the operating system. The browser uses in the normal case the location of the systems user account to store there the application data. But if you want to store the data in an other place (e.g. Recovery, Sharing between mutiple OS on the same machine) then you can just set this function to the other place. It then copies the files to the selected storage (if required) or just applies the location so it will then use only the data placed there. Inthe opposite way the move is also possible.
Some browsers had in the past a dedicated download window which had shown all download processes and let the user open or delete it. If the user had closed the main window, then were all tabs closed but the downloads continued. Later then the extra windows for the downloads were removed and thierfor replaced by a menu bubble in the main window. Then the user can not close the main window until the last download was finished. The Webbird still had the dedicated downloader window. Further was there also a button to re-open the main window, if it was previously closed.
By it self it is nothing special that a application is available in many languages. But I had made this option in this way, to have an easy text file from where the texts were read in, the so called "Language Packs". Almost any
text is read from this file. One good thing is that they are easy editable. Also I thought to the function to install new launguages later times. Just download a language file and select it in the menu for installing. The application
installs the the language and restarts then with the new language selected. Another nice thing is that someone can translate the application by himself. After doing that he can publish the language file for others.
To have the possibility that the user can use the language menu also if the application runs in a language which is not the user once, this menu got not translated. The whole menu is written in english.
Unfortunately in open development is the reaction for windows tablets. Som browsers experimented with a touch app version. But the market for Windows tablets had not grown and the construction for it was much work. So other browser dropped
the support for this feature.
I planned it that my browser shold offer both interfaces. It shold also find out on wich version of Windows it is running and so start with the best interface for it. It means on Windows 8.x in the full screen touch mode and else in the
desktop mode. On Windows 10 it was planned the the browser will catch the switching between the "Tablet Mode" and the "Desktop Mode" and then transfer all tabs to the corresponding UI. Intersting point: It shold work
without the easier reloading of the last URLs in the tabs. Example: Playing a video on YouTube. It does'nt stop and continues when the interface got switched. You had only noticed the moment of switch, which you will every time notice on
Windows 10, but nothing more.
As the time when Microsoft published Windows 8.x the world shold go to the touch world. They wanted be not only on the desktop market, also on the tablet market. For this they make for the Internet Explorer a touch app. These started from
the "Metro" interface automaticlly as a touch app (except if a other browser was standard). If you had clicked from the normal desktop on the IE then it also started as a normal desktop variant. Tabs can be ported between both
interfaces but then the page got just reloaded. Also the Firefox tried the same feature out. But on the Firefox 23 at first the interface was good made. But then it got not enogh completed and they wanted perhaps publish it to a fixed date.
On the last beta of the Firefox this feature was removed bevore the relase version. (Well the market with tablets and Windows not grown with Windows 8.x or Windows 10.)
But I also wanted to offer a touch based version. But i had not the expertise to make a "real" app. So I just wanted to rebuild my existing browser to a touch UI.
The new WBT came out at first with bigger buttons and URL box. I don't wanted to rewrite all code, so I used particular the old WB6 code with it. Excepting the new main window no other things was build up to then. It was only for Windows
8.1 developed (Windows 10 was not existent at this time). As a app on Windows 8.1 starts every time in fullscreen mode, my browser shold also behave like this. Only when it will be started on a older Windows it will start with a normal
desktop window.
But that I had two programms and two codes to work on, it was not so nice for me. Also I planned the IE like switching between Desktop and Touch UI. So I got the idea to move them into two libraries and put them together to one application. At first I moved the WBT into a library to test it. Later I also moved the desktop world into a library. So I wanted to have the projects be changeble separately. After I done this, when I had three libraries, I moved the touch world back to the original project. Since I had done this I name anyhing WB7. One target was to optimize the switching between both worlds (see WBT feature). Also as a new feature I planned to make a password safe. But in my life there was often not enough time for development. The development was done only in longer intervals. I experimented with some newer Visual Studio versions. They offered me maybe a better way to maintenace my application. But I not really had time for it. Further the tablet phenomenon in the Windows world gone (nearly) completely away. So I did'nt continue the development and it stays in this state since today.
Version 6 was the biggest update which I have done. Not only with the new name. The big screenshot above shows this version. At first you can see that the browser got a complete new UI design. I look back to version 5 and got the point that
I had never relpaced the buttons with smaller icons at an other place. The UI look not changed since version 1 all time (and looks very uncomplete). So then I replaced the button text with icons, put them to the free area on the right of
the address field and also moved the bookmarks menu to a new button there. At the freed place in the menu I installed a seach bar. It was possible to choose between mutiple search result provider. Later also it followed a feture to start
the browser on commandline with a URL as an argument a webfile (for example when drop a file on the application symbol).
Secondly a big update was the engine. I don't like the Internet Explorer engine. Fortunately someone had build a option to use the old engine of the Firefox, named Gecko, for .NET applications. But it worded only from .NET Framework version
4.0. This need me to drop the support for the older framework version and for older Windows versions. I started this time with Gecko 22. Over many updates I grow it up to the version 29.0.9. When I give up the support for the old IE engine,
I also lost the old download option. So I add the new downloader.
One other thing by me was that I used often more than one operating system. Also I used some virtual machines. So it was my interest, like for PE, that many installations can operate on the same data. But the data was just moved to the user
account since a short time. And this dependency given by the user account, where the data is stored, I wanted to keep now. This means to me: If user 1 will to store its user data on an other place it must work for him. And if user 2 don't
want to change this, his data as continuosly stored in the user account. For the PE feature it is the interest to store allways the data next to the application location (to have them e.g on a USB stick). But in this case I wanted, that the
user has his own choice where the data is stored. So I developed "Moved Home (MVH)". I later updates of the WB6 I also developed the feature to set the webbird as the default browser. Unfortunately I noticed that this method will
only work up to Windows XP.
The open point was the update from Version 5. This version was without the Gecko engine, the .NET Framework 4.0 and had less data. Also the support for older Windows Versions was droped. On older Windows versions the update must not run. On
the other hand it was need to make much changes. This was not possible with the old updater.
Luckily I had developed the WB6 without touching the WB5. So I made a small update for the WB5. I removed the search function for a new updater and added a special feature which waits for the WB6 update and show then a new menu point. Also
for this the WB5 got the special feature to load and start the "transformator" as shown in the picture. So I published after the last original version "5.0.2.1" the fix version "5.0.2.2" with the new upgrader
option.
The "transformator" does at his startup first look if at least Windows XP is running, the correct .NET Framework is installed and if the required storage is avialable. These checkups are shown by the four squares with coloring
them green or red. Only if the three smaller squares are green the fourth bigger square got colored green and also then the button enabled. If the user then presed it then at first the 7zip and the old EXE files got removed. 7zip is in the
new version not more needed. The zip action is done by the new updater self. Further is the new browser a new updater and the new engine extracted. In the ser account then a setting file is written, which is need by the new engine. After
that the new Browser got started. It has in the first verions the function to see if there is the "transformator" on disk and remove it. Because it will not more used after the upgrade is done.
The version five is a special point in the development of the Webbird. But to this later. On other Browser the already were sync functions for tab sessions, passwords or the history to the cloud. I planned it also for my browser but later I
didn't realised it.
I find out that it is confusingly to have mutiple languages in one file. Also all UI elements read thier texts from the same block. This make all more confusingly. So I changed to store all languages in a extra file and all windows of the
application also in a extra section. After this transfer was done I also translated the browser into spanish and italian. A second idea was to create a plattform were everyone can share a teanslation for the browser. I wanted to offer the
translations then by my side.
This version of Webbird was the last, whis had not the name Webbird. And it also was the last which was able to run on Windows 98. This browser was the last build which was developed on the .NET Framework 2.0. And so the last wich used the
IE Engine. Up to this time the browser looks like in the picture. The in the picture shown version 5.0.2.1 was the last version of the series five. After this version there was a small update. But it belongs to the next big update.
Version 4 was much to do for less noticeable changes. I thought that it is not a good thing, that my applicatin is only available in german. At first I had no good idea, how to make the translation. Then I thought about the INI technology,
which I used now. And other programs use also a seperate file next to the appliocation to load the translations from it. So I began to write all texts into values in a new INI file. And the next step was the translation. I had only lerned
english as a foreign language. So I started to make at first the english translation. Translate a whole application is... exhausting. And also for this I had to write the code to load the texts from the choosen language and to place them to
the correct point in the UI. But after hard work then the program was able to switch between german and english.
When I thoght about INI files I came also to another point. By many reasons I worked with mutiple user accounts on my computers. But the settings were for all users the same, also because the browser stores sonce version 3 all in one file
beside the app. So I worked a little bit more on the settings and creted a new INI file wich is stored in the user account. Now the settings which are user dependent were then stored in the user account. Some settings were not user
dependent. So they stay in the INI file next to the app. The file with the bookmarks moved also to the user account. To do all these migrations it was needed to create a new ZUpdater.
The version 3 was a bigger update.Oter browser like Firefox and IE had tab since a short time. This was a feature which I like very much. And fortunately I found a good example on youtube how I can make a browser with tabs. So my browser
got tabs. It was a long process to make the tabs fully working.
Further I had on a website the problem that it makes me suggestions that were interesting for me. But these suggestions changed only when I reload the page or go to an other subpage. On another point I had the problem that there was a small
mini webgame which does also not change its status when the time goes on. But without reloading the page no change occurs. So I make an auto- reload function into the browser. There were the option to set a timer which then just reloads the
page after the time ends. It was possible to choose between one and sixty minutes for the interval.
Another part of the update was the fix for the problem with the settings known from version 1-2. I found some information about a old configuration file format which was on Windows fastly replaced by the registry. The INI format. It is a
primitive format which is also in use outside of Windows. But it was good enough to store the settings. And so the Webbird then stores it's settings in a INI file.
But of version 2 there were the old text files. They were named as the name of the settings and contained nothing more as the raw values. At the moment of the update the settings shold be applied and the text files be removed. This function
was not part of the existing updater. So I had to design a new mechanism to work around it. I thought about to extract only ZIP files in future. So I disguise a new tool as a browser application. The ZUpdater was a tool which transforms
itself at first from a fake browser to correct ZUpdater file and then removed both applications. After that it extracts a 7zip tool, the new Settings.ini and the new updater tool. The old setting from the text files were also then migrated
to the new setting file and the text files after that removed. After this was done it just executed the new updater. It deleted then "brainless" anything what had sounded like the webbrowser. It then used 7zip to extract the ZIP
file. After that there was then the normal webbrowser on the disk. it just executs then the browser. Also the browser then searched for the ZUpdater and removed it.
For the Version 2 there are not much changes that I can remember. The old problems with the setting, updates and the setup routine were solved. I did read in the internet about "Inno Setup" and tried something with it. Then I was
able to provide normal setups. Also I found a code extension for it by searching the internet. With this extension I can check the installation state of the .NET Framework and maybe exit the routine. In this case the user got directed to
the download page of the .NET Framework of Microsoft for downloading and then installing it. So my own idea to try to make an own self written setup routine was not continued.
For doing updates, I also developed a second programm. It contained the update routine. The browser should just download the updater. This download contains also the new version in the image. The browser just started the updater and
terminated itself. And then the update routine can just overwrite the browser.
For the settings I had at first no good and optimal ideas. So I first wrote the settings into text files that had the same names as the settings of my application. And into this files I had only write out the values of the settings.
A seperate text file was also stored there to save the bookmarks. The bookmarks were also the only one change in the UI of the application.
This was the first Version of the Webbird. It had only the basic functions for using. For example previous site, next site, start page and reload. It was not possible to navigate on keyborad enter pressed or to load a URL file. Also there
were no tabs. Downloads run using a function of the Internet Explorer. A installation- or update routine was also missing.
The application was only shipped as an EXE file. And this was done with the Visual Studion distribution function. I found it very unuseful. It's only benefit: it checks the dependency of the .NET-Framework. But it also made a very abnormal
installation. And it every time tries to look for updates from an for me unknown source. Only when this part was done my browser got started. And on my PC I had only to run the EXE directly. This was the reason for me to experiment with my
own written setup routine. And also while is it .NET by itself it should be a better solution as the setup which comes from Visual Studio.
An other problem were the settings. These were stored at "AppData". But sadly in a directory which contains the version in the path and so far is dependent on it. When I switched inner the version 1 for example from
"1.0.0.1" to "1.0.0.2", it was a new directory created for this version. But a migration of the old settings was not possible.