Git Product home page Git Product logo

browser-update's Introduction

browser-update

Many internet users are still using very old, out-dated browsers – most of them for no actual reason. We want to remind these unobtrusively to update their browser.

Goals

  1. Provide webdesigners a unified way to tell the user that they need a newer browser to use this website in all its beauty.
  2. Improve the security, comfort and overall experience of users by convincing them to update
  3. But: do not annoy or lock out users

How to use

Go to browser-update.org, choose the browsers you want to be notified and embed the code into your website.

Or use the npm package:

npm usage

Install it using npm:

npm install browser-update --save

And load it (using browserify, webpack or similar):

var browserUpdate = require('browser-update');
browserUpdate({ [configuration-options] })

If you want to include only the browser-detection script and the notification will be loaded from our cdn only if really an outdated browser is detected (to save some kilobytes), use this:

var browserUpdate = require('browser-update/update.npm.js');
browserUpdate({ [configuration-options] })

If you have an ES6 compatible build environment, you can of course use the import statement:

import browserUpdate from 'browser-update';

Options can be something like:

{
    required: {
        e:-2,
        i:11,
        f:-3,
        o:-3,
        s:10.1,
        c:"64.0.3282.16817",
        samsung: 7.0,
        vivaldi: 1.2
    },
    insecure:true
}

See the available options to see how you can customize it to your needs.

Features

  • Unobtrusive
    • We take care not to erroneously notify users by constantly tweaking the detection code
    • users of small niche browsers and users who have no possibility to update are not notified
    • We do not block the users form using a website in any way
    • The website can be used without taking additional steps
    • The notification will only appear once a day by default
    • If the user actively closes the notification, it will reappear after a week
  • Translated into > 30 languages
  • Browser detection less than 3kb gzipped + rest gets only lazy loaded when an outdated browser was detected
  • Giving users reasons why an up-to-date browser is important
  • Only showing browsers that are actually available for the users device and operating system (Android, Windows Phone, Windows, MacOS, iOS).
  • Only notify users that actually can update to a newer browser on their devices
  • Hide notification from bots
  • Well tested

More information, our motivation and the features can be found on our web site.

Translations

The page currently translated into more than 30 languages. If you want to improve the translations or translate into a new language please see our translation manual.

Cross-Browser-Testing

We are using the browserstack.com cross browser testing tool to make sure the notification and website is shown correctly on all kinds of browsers and devices.

browser-update's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

browser-update's Issues

Website inaccessible, if no Accept-Language field is present.

The website is inaccessible, when the browser does not send a Accept-Language 
in it's request. It only says: 

Warning: require_once(/www/htdocs/w00a1fdf/lang//strings.php) 
[function.require-once]: failed to open stream: No such file or directory in 
/www/htdocs/w00a1fdf/lib/lang.php on line 94

Fatal error: require_once() [function.require]: Failed opening required 
'/www/htdocs/w00a1fdf/lang//strings.php' (include_path='.:/usr/share/php:..') 
in /www/htdocs/w00a1fdf/lib/lang.php on line 94

Steps to reproduce: Remove all preferred languages in your browser setup, 
then try to visit http://browser-update.org/.

Original issue reported on code.google.com by [email protected] on 25 Apr 2009 at 4:35

Performance: Make update.js explicitly cacheable

Currently there is no information about the cacheability of <http://browser-
update.org/update.js> in the server's response. This results in unnecessary 
conditional GET requests on browser-update.org and slows down loading of 
pages that use this script.

It would be useful to add information about the cacheability of the script to 
prevent these requests. See <http://code.google.com/speed/page-
speed/docs/caching.html#LeverageBrowserCaching> for information how to 
achieve this. Setting expiration to some days in the future should be a good 
trade-off between reduced requests and freshness of the script after it is 
updated.

Original issue reported on code.google.com by [email protected] on 7 Aug 2009 at 7:20

Nachricht überarbeiten

Der Text "Sie verwenden einen veralteten Browser () mit
Sicherheitsschwachstellen und können nicht alle Funktionen dieser Website
benutzen. Hier erfahren Sie, wie Sie einfach Ihren Browser aktualisieren
können." ist sehr pauschal und holprig. Außerdem steht IMO nicht das
Wichtigste vorne.

Alternativ:
"Sie verwenden einen veralteten Browser (), bei dem die Anzeige dieser
Website beeinträchtigt sein kann, und mit möglichen
Sicherheitsschwachstellen. Erfahren Sie mehr darüber, wie Sie bequem Ihren
Browser aktualisieren können!"

Oder noch andere Vorschläge?

Original issue reported on code.google.com by [email protected] on 14 Jul 2009 at 8:19

False version alarm

When opening Site www.browser-update.org an alarm (see attached file) is
shown (you are using Firefox 2). As I'm using Firefox 3.0.11 (see also
attached file) this alarm is confusing...

What is the reason for this false alarm? Sometimes after updating Firefox,
the Browser opens www.mozilla.com with a similar message, like today "You
have updated to Firefox 2.0.16" (but the url of this message is
http://de.www.mozilla.com/de/firefox/3.0.11/whatsnew/). Maybe the same problem?

By the way I've deinstalled the old version and have re-installed Firefox
with the 3.0.11-setup today. But still the same problem...



Original issue reported on code.google.com by [email protected] on 14 Jun 2009 at 10:46

Attachments:

Weitere Ausgabemöglichkeiten

Bei der Einblendung per Javascript besteht das Problem, dass die
CSS-Angaben mit bestehendem Code kollidieren können.

Eine schöne Lösung wäre es, die Benachrichtigung im head-Teil per
conditional comments einzubinden oder per PHP (gerade bei Plugins für
Wordpress, andere CMS interessant).

Hierfür müsste eine Lösung gefunden werden, dass die aktuell vorgegebenen
Browserversionen und die Texte von Eurem Server und ausgelesen werden.

Original issue reported on code.google.com by [email protected] on 28 Mar 2009 at 12:30

Stats are broken

<http://browser-update.org/stat.html> says:

Warning: mysql_query() [function.mysql-query]: Unable to save result set in 
/www/htdocs/w00a1fdf/stat.php on line 15
Table 'views' is marked as crashed and should be repairedSELECT 
COUNT(DISTINCT referer) FROM views

Original issue reported on code.google.com by [email protected] on 2 Apr 2009 at 7:30

browser-update auf Twitter?

Wäre es nicht vielleicht eine gute Idee, dass browser-update.org auf Twitter 
auch vertreten ist? So 
könnte man ein noch breiteres Publikum ansprechen. 

Original issue reported on code.google.com by [email protected] on 24 Apr 2009 at 7:44

Also check for outdated plugins

While adding issue #41 it came to my mind, that it would be also useful to 
check for outdated and insecure versions of common plugins. I regularly have 
to deal with computers, where outdated versions of Flash or Java are 
installed.

Checking this would need quite a lot of additional code and I know, this 
might be out of scope of this project. Nevertheless it would be an nice 
option.

Original issue reported on code.google.com by [email protected] on 11 Jun 2009 at 8:10

Nachricht anpassen.

Der Nachrichtenteil "(...)können nicht alle Funktionen dieser Webseite
nutzen." sollte optional sein. Dies stimmt zumindest bei meinen Seiten im
Allgemeinen nicht.

Original issue reported on code.google.com by [email protected] on 10 Jun 2009 at 5:49

Supporters Page

Seite für Unterstützer, auf denen Sie ihre Logos einbinden können


Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 5:15

Opera 9.6x old Browser ?????????

Sie verwenden einen veralteten Browser (Opera 9.64) mit 
Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite 
nutzen. Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.

??????????????????????????????????????????????????????????????????

Original issue reported on code.google.com by [email protected] on 6 Aug 2009 at 8:53

Passing arguments via GET

Passing the update arguments via a GET parameter would reduce the amount of
inline javascript code. E. g.:

http://browser-update.org/update.js?notify[ie]=7&notify[ff]=2&notify[sf]=2&notif
y[op]=9

Original issue reported on code.google.com by [email protected] on 14 Jul 2009 at 8:25

Code erstellen: Optionen in Aufklappmenü verbergen

Auf der Startseite, wo man sein Code erstellen kann sollten die Optionen in
erst in einem Aufklappmenü verborgen sein, da man so eine bessere Übersicht
hat.

Quasi als "Erweiterte Einstellungen". Vor allem wichtig wenn noch mehr
Optionen dazukommen.

Original issue reported on code.google.com by [email protected] on 27 Mar 2009 at 6:21

Arora is not recognized correctly

Users surfing with Arora (http://www.arora-browser.org) will receive a warning 
concerning their 
browser version, even if they use the latest Arora version. The browser-update 
script mistakingly 
identifies Arora as Apple Safari 2, wich is incorrect (but could be related to 
the fact that Arora uses 
the QtWebKit, wich is based on the Apple WebKit).

Arora identifies itself like this (or similar, depending on the operating 
system):

Mozilla/5.0 (X11; U; BSD Four; de-DE) AppleWebKit/523.15 (KHTML, like Gecko, 
Safari/419.3)  
Arora/0.4

Original issue reported on code.google.com by jesco.freund on 1 May 2009 at 7:00

update.php should look for operating system and only show browsers that are available for this system

For example:
There is no IE8 for Windows 2000. The update.php sould detect the system
and hide Internet Explorer from the browser list or fade it out and say:
"this browser is not available for windows 2000, please choose another one"

We have to collect which browsers are available for which system:

I have:

Chrome 1:   XP/Vista
Firefox 3:  Linux, OSX >= 10.4, Windows >= 2000
Opera 9.6:  alle (windows >= 95)
IE 8:       XP/Vista
Safari:     XP/Vista, OSX>10.4 

Original issue reported on code.google.com by [email protected] on 27 Mar 2009 at 11:42

https support needed

I tried to use this code on a site that is using ssl. Naturally IE 6 keeps 
complaining with the 
following message:

This page contains both secure and nonsecure items.
Do you want to display the nonsecure items?

 Can you run a version of the site that uses a ssl certificate? If you need donations to make this 
possible, let me know and I will see what I can do. Namecheap.com sells 
RapidSSL certificates for 
USD10.95.

http://www.namecheap.com/learn/other-services/ssl-certificates.asp


Original issue reported on code.google.com by [email protected] on 26 May 2009 at 7:14

  • Merged into: #91

big notification

An Option to show a big notifications that includes all the arguments
directly in the page.

Perhaps only for *very* old browsers,

Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 5:41

render tagline more precisely

The tagline should read "An initiative by webdesigners to inform users
about *the advantages of* browser-updates", because that's what it's all about.

Auf Deutsch entsprechend: "Eine Initiative von Webdesignern um Benutzer
über *die Vorteile von* Browserupdates zu informieren"



Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 8:56

Also warn if browser has known vulerabilities

The script currently has its focus on browsers with outdated rendering 
engines. It would be nice if it could also warn if the used browser has known 
vulnerabilities. E. g. Firefox 3.0.0 is not detected as outdated since it 
uses a recent rendering engine. But this version has a lot of known 
vulnerabilities. I know, minor updates should be installed automatically in 
Firefox, Chrome and Safari. But I also know, that there are quite some users, 
who nevertheless use outdated versions weeks after the update was published. 
Maybe because there was some error while updating, maybe because they 
(accidentially) disabled automatic updates.

This feature should be quite easy to accomplish, just update some regular 
expressions (and maybe add a switch to disable these security related 
warnings). 

Original issue reported on code.google.com by [email protected] on 11 Jun 2009 at 7:58

Wordpress-Plugin

A User already created a wordpress plugin:
http://alles-ausser-banane.de/2009/03/26/browser-update-wp-plugin/

At the moment, it just includes the JS-Code.
But later it would be nice if it would include the JS-File.

Another good feature would be to make it possible to configure it directly
from the WP-Admin area.

Original issue reported on code.google.com by [email protected] on 27 Mar 2009 at 9:18

Various spelling errors on public-facing webpages

I'm just being picky here, but there are various spelling errors on pages
that would be visited by lots of people, in particular the update.html page.

Some things I noticed:
Unlike in German, English nouns are not capitalised ("Browser", "Minutes",
"Generation")
Compounds are written with a space separating the constituent parts
("security-flaws").
JavaScript is a trademark that uses camel case (sigh).
Fishing is distinct from 'phishing'.
"oft" -> "of"
There's a comma without a space after it on the front page.

If you need help proofreading the webpage or translation advice, you can
e-mail me.



Original issue reported on code.google.com by [email protected] on 14 Aug 2009 at 12:49

Support multiple languages

I already started to implement some functions for managing mutiple
languages. Perhaps this is a good start for this.


Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 6:43

Abstand Benachrichtigung Layout

Im Skript wird zum margin-top des body-Elements 5px addiert. 

Wenn man ein Design verwendet, welches eine Hintergrundgrafik hat, die mit
dem oberen Rand bündig abschließt, entsteht so ein 4px (5px - 1px [Rand])
breiter Streifen (s. Screenshot). 

Es wäre gut, wenn ihr dies auf plus einen zusätzlichen Pixel verringert
oder die Addition optional machen würdet.

Original issue reported on code.google.com by [email protected] on 28 Mar 2009 at 12:18

Attachments:

Option not to show referer

Eine Option für den Code, dass der Referer nicht auf
http://browser-update.org/stat.php Seite erscheint.

Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 5:17

Display is buggy in Opera

The code doesn't seem to work right in any outdated version of Opera. The
message has no background color and it is not at the top of the page but on
the bottom. Besides it is not possible to close the message.

Nevertheless there will be a gap at the beginning of the page where the
message should have been displayed.

As far as I can assess this, the javascipt versions used in those old Opera
browsers range from 1.4 to 2.0. (tested in browsershots.org with Opera 7.0,
7.11, 7.54, 8.0, 8.53, 8.54) The OS is Windows XP.

I'm not sure whether it has something to do with the picture-as-background
bug, since all my sites have background pictures. Anyway, the code works
correctly in other browsers.

Original issue reported on code.google.com by [email protected] on 30 May 2009 at 9:32

Attachments:

Correct outdated versions for Opera

Opera 9.63 and older contain critical security holes, thus a warning for 
these versions should appear

Currently update.js only lists Opera 9.3 and below as outdated. This version 
never existed! In the form on <http://browser-update.org/> the newest 
selectable version is 9.2 (which also never existed, closest matches would be 
9.02 or 9.20). Both places should be updated to 9.63.

Original issue reported on code.google.com by [email protected] on 2 Apr 2009 at 7:07

English translation is incorrect

The first sentence of the english translation is incomplete:

It reads:

Your browser (Internet Explorer 6) out of date.

It should read:

Your browser (Internet Explorer 6) is out of date.

Original issue reported on code.google.com by [email protected] on 26 May 2009 at 7:18

Statistik Seite Defekt

What steps will reproduce the problem?

http://www.browser-update.org/stat.html


What is the expected output? What do you see instead?

Warning: mysql_query() [function.mysql-query]: Unable to save result set in
/www/htdocs/w00a1fdf/stat.php on line 15
Table 'views' is marked as crashed and should be repairedSELECT
COUNT(DISTINCT referer) FROM views

gruß Moritz

Original issue reported on code.google.com by [email protected] on 24 Apr 2009 at 8:52

Not working all the time in IE 6 (Windows XP Pro SP3)

What steps will reproduce the problem?
1. Using the following version of IE (6.0.2900.5512.xpsp_sp3_gdr.090206-1234)
2. Open "http://oder.kicms.de/test/browser_update_internal.html" or
3. Open "http://oder.kicms.de/test/browser_update_external.html"

What is the expected output? What do you see instead?
I would expect to see the information bar in the top part of that page, but
instead i don't see anything else but "just the content of the body". So
the information bar which should tell me about my outdated browser isn't
actually appended to the body. But there is no JS error, i checked
everything for at least 10 times. I don't see any difference. It even
doesn't work always on the project page?!? But i don't know why...


What version of the product are you using? On what operating system?
Server:
- Debian Lenny
- Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch mod_ssl/2.2.9
OpenSSL/0.9.8g
- Zope 2.10.6-final, python 2.4.6
- Latest update.js from here "http://browser-update.org/update.js"


Please provide any additional information below.
no additional info yet.

Original issue reported on code.google.com by [email protected] on 29 Jun 2009 at 9:40

Attachments:

Minify Javascript

Das Javascript zu komprimieren könnte ein paar Byte rausquetschen.

Original issue reported on code.google.com by [email protected] on 27 Mar 2009 at 7:25

All code and images under GPL

If the code and images are under GPL it will be possible to create an
indipendend GPL module/plugin for a popular GPL CMS.

Original issue reported on code.google.com by [email protected] on 9 Apr 2009 at 10:24

Make configuration form easier to understand and update/correct versions in dropdowns

Instead of one checkbox below(!) the dropdowns there should be two radio 
buttons to choose between the recommended or manually selected versions.

At least the dropdown for Opera should also be updated with more recent 
(and correct) versions. All versions have two digits after the dot, so 9.2 
should become 9.27 (latest version within the 9.2x branch). It would be 
stupid to show the warning for users of Opera 9.20 but not for 9.21 up to 
9.27, which share the same rendering engine with 9.20. The default value in 
the drop down should also match the internal default value used in the 
script.

Useful values would be:
8.02
8.54
(9.02)
(9.10)
9.27
9.52
9.63

Versions in brackets could be left out, since there is not much difference 
to the the following version. Since all versions before 9.64 contain known 
critical security issues, nobody should really choose something different 
than 9.63. So maybe the other options should be removed completely.

Original issue reported on code.google.com by [email protected] on 11 Jun 2009 at 7:42

Support Javascript-Callbacks

Webdesigner could provide their own notification, callback.

Simple example:
function my_bu_notify(o)
{
  alert(o.message);
}

o should be some object giving access to all neccessary parameters, for
example: message, browser (versionnr, string, ...), update-url, ...

In addition we could provide some "templates" for the notification.
"template" means some nice looking callback function, for example one that
uses the jQuery UI dialog.

Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 6:51

privacy policy

Auf der Webseite knapp beschreiben, ob und was für Daten wir (nicht!) sammeln

Original issue reported on code.google.com by [email protected] on 26 Mar 2009 at 5:35

We need more supporters!

We need partner sites that support us with a link and promote the service,
because altough we have many sites using the script, we do not reach enough
new sites because webmasters don't see us (because they are using
up-to-date browsers)

We need:
  * a supporters page
  * buttons
  * write to big webmaster sites

What ideas do you have to get more sites to promote us?

Perhaps we can collect big webaster-pages to contact them.

Original issue reported on code.google.com by [email protected] on 2 Apr 2009 at 1:02

More Infos on the Browsers

Wir könnten mehr Informationen über die Browser bereitstellen.

Man könnt z.B. beim Hover über einen Browser anzeigen:

Geschwindigkeit: ****
Funktionen:      **
Erweiterbarkeit: ***
Webstandards:    ***

Original issue reported on code.google.com by [email protected] on 27 Mar 2009 at 7:23

i18n for update.js

Currently the support for internationalization is poor here. Perhaps we
could even use gettext or the current strings.php-solution to save and
manage the update.js translations. I'm thinking of some script which
generates a javascript-dictionary to be used later in update.js.

Perhaps splitting update.js into two parts (browser check and display
message) helps getting this done without lots of overhead. As
update_message.js only gets loaded if the message needs to be shown the
file could be bigger, containing all translations. We could even go one
step further and create some update_message.js.php (dynamic javascript),
which does some $_SERVER['HTTP_ACCEPT_LANGUAGE']-magic (and the logging).
Keeping these two tasks separate could even help with supporting some kind
of templates.


Original issue reported on code.google.com by [email protected] on 3 Apr 2009 at 6:31

Download JS File

Viele Benutzer würden gerne Die JS-Datei herunerladen und so bei sich lokal
installieren.

Dafür spricht
- weniger Last auf unserem Server
- Mehr Unabhängigkeit für die Webmaster

Dagegen spricht:
- Codeverbesserungen und Änderungen können nicht mehr von uns durchgeführt
werden
- Keine automatische Anpassung der Browserversionen mit der Zeit

Ich würde vorschlagen die Datei in einigen Wochen verfügbar zu machen wenn
der Code erstmal stabil ist.

Beim Download sollten diese Vor- und Nachteile kurz erläutert werden.

Original issue reported on code.google.com by [email protected] on 27 Mar 2009 at 7:13

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.