The Netscape Navigator

Mike Taylor, Opera Software

@miketaylr

Hi, I'm Mike

  • Web Opener, Developer Relations & Tools. Opera Software
  • Two time college dropout
  • World's foremost living expert on the syntactic structure of non-standard 3rd person pronouns of the dialect of Brazilian Portuguese spoken in Piripiri, Piauí. Or whatever.

Outline

  1. Language Change, Language Contact
    • English Language
  2. The Past
    • navigator.* archeology
  3. The Future
    • navigator.* magic

Language Change

Bayeux Tapestry

Diachronic Change

  • Phonetic
  • Phonemic
  • Syntactic
  • Morphological
  • Lexical
  • Etc.

Luke 2:1

Soþlice on þam dagum wæs geworden gebod fram þam casere augusto. þæt eall ymbehwyrft wære tomearcod

Forsoþe it is don, in þo daÿis a maundement wente out fro cesar august, þat al þe world shulde ben discriued

And it came to passe in those dayes, that there went out a decree from Cesar Augustus, that all the world should be taxed.

Netscape Navigator

Scumbag Navigator

???

        "Mozilla/5.0
        (Macintosh; Intel Mac OS X 10_7_3)
        AppleWebKit/535.19  
        (KHTML, like Gecko)
        Chrome/18.0.1025.163
        Safari/535.19 YI"
      

???

        "Mozilla/5.0
        (Macintosh; Intel Mac OS X 10_7_3)
        AppleWebKit/535.19  
        (KHTML, like Gecko)
        Chrome/18.0.1025.163
        Safari/535.19 YI"
      

Яндекс.Интернет

Mayan glyph

The Future

Dino eating a dino

navigator.registerContentHandler()

The registerContentHandler() method allows sites to register themselves as possible handlers for content in a particular MIME type.

  • navigator.unregisterContentHandler()
  • navigator.isContentHandlerRegistered()

Blacklisted schemes

  • text/css
  • text/plain
  • text/html
  • text/ping
  • image/gif
  • text/cache-manifest
  • text/html-sandboxed
  • application/x-www-form-urlencoded
  • image/jpeg
  • image/png

AddType text/x-cheeseburger .cheeseburger

cheeseburger syntax diagram

Content Registration

        navigator.registerContentHandler(
          "text/x-cheeseburger",   //MIME type 
          "/code/cb.html?cb=%s",  //handler
          "Cheeseburger Parser"    //title
        );
      

Registration
Cheeseburger
Dbl Cheeseburger

navigator.registerProtocolHandler()

The registerProtocolHandler() method allows Web sites to register themselves as possible handlers for particular schemes.

  • navigator.unregisterProtocolHandler()
  • navigator.isProtocolHandlerRegistered()

Whitelisted schemes

  • irc
  • mailto
  • mms
  • news
  • nntp
  • sms
  • smsto
  • tel
  • urn
  • webcal

Custom web+ schemes

  • web+viewsource
  • web+auth
  • web+cheeseburger

Protocol Registration

        navigator.registerProtocolHandler(
          "tel",                             //protocol 
          "/pres/protocolhandler.html?%s",  //handler
          "Telephony"                        //title
        );
      

Registration
tel:3473722666

navigator.getUserMedia()

Prompts the user for permission to use their Web cam or other video or audio input.

Simple Example

        navigator.getUserMedia({video: true},
          function(stream){
            video.src = URL.createObjectURL(stream) || stream;
          }, 
          fallback
        });
      

Photo Booth

    

navigator.vibrate()

The API is designed to tackle high-value use cases related to gaming, and is not meant to be used as a generic notification mechanism.

Simple Examples

        navigator.vibrate(200);
        navigator.vibrate([200, 100, 2000]);
      

Additional Stuff

  • navigator.onLine
  • navigator.connection

Thank You!

Get in touch.