--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/plugin.cpp	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/plugin.cpp	2005-06-23 15:35:54.000000000 -0700
@@ -522,7 +522,7 @@
         HKEY h_key;
         DWORD i_type, i_data = MAX_PATH + 1;
         char p_data[MAX_PATH + 1];
-        if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\VideoLAN\\VLC",
+        if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\GoogleVideoViewer\\VLC",
                           0, KEY_READ, &h_key ) == ERROR_SUCCESS )
         {
              if( RegQueryValueEx( h_key, "InstallDir", 0, &i_type,
@@ -859,6 +859,16 @@
     {
         DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
         vlcConnectionPointContainer->fireEvent(DISPID_PlayEvent, &dispparamsNoArgs); 
+	// Google mods
+	// this is to fix the mouse hover problem when an activex plugin
+	// is dynamically instantiated
+	LPOLECLIENTSITE pActiveSite;
+	if( SUCCEEDED(vlcOleObject->GetClientSite(&pActiveSite)) && 
+	    (NULL != pActiveSite) ) {
+	  vlcOleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, pActiveSite, 0, NULL, NULL);
+	  pActiveSite->Release();
+	} 
+	// done Google mods
     }
 };
 
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/main.cpp	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/main.cpp	2005-06-13 23:15:12.000000000 -0700
@@ -32,7 +32,7 @@
 #define PROGRAM_STR "VLCPlugin"
 #define VERSION_MAJOR_STR "1"
 #define VERSION_MINOR_STR "0"
-#define DESCRIPTION "VideoLAN VLC ActiveX Plugin"
+#define DESCRIPTION "Google VideoLAN VLC ActiveX Plugin"
 
 #define THREADING_MODEL "Apartment"
 #define MISC_STATUS     "131473"
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc.idl	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc.idl	2005-06-13 23:37:36.000000000 -0700
@@ -23,7 +23,7 @@
 [
   uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),
   version(1.0),
-  helpstring("VideoLAN VLC ActiveX Plugin"),
+  helpstring("Google VideoLAN VLC ActiveX Plugin"),
 ]
 library AXVLC
 {
@@ -147,7 +147,7 @@
     };
 
     [
-      uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),
+      uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D9),
       helpstring("VLC control"),
       control
     ]
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc_idl.h	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc_idl.h	2005-06-24 18:37:30.000000000 -0700
@@ -916,7 +916,7 @@
 
 #ifdef __cplusplus
 
-class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D8")
+class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D9")
 VLCPlugin;
 #endif
 #endif /* __AXVLC_LIBRARY_DEFINED__ */
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc_idl.c	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc_idl.c	2005-06-24 18:37:30.000000000 -0700
@@ -44,7 +44,7 @@
 const IID DIID_DVLCEvents = {0xDF48072F,0x5EF8,0x434e,{0x9B,0x40,0xE2,0xF3,0xAE,0x75,0x9B,0x5F}};
 
 
-const CLSID CLSID_VLCPlugin = {0xE23FE9C6,0x778E,0x49D4,{0xB5,0x37,0x38,0xFC,0xDE,0x48,0x87,0xD8}};
+const CLSID CLSID_VLCPlugin = {0xE23FE9C6,0x778E,0x49D4,{0xB5,0x37,0x38,0xFC,0xDE,0x48,0x87,0xD9}};
 
 
 #ifdef __cplusplus
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc.inf	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc.inf	2005-06-13 23:23:24.000000000 -0700
@@ -6,11 +6,11 @@
 
 [Add.Code]
   vlc-0.8.2-svn-win32.exe
-  axvlc.dll=axvlc.dll
+  axgooglevlc.dll=axgooglevlc.dll
 
-[axvlc.dll]
+[axgooglevlc.dll]
   FileVersion=0,8,2,0
-  clsid={E23FE9C6-778E-49d4-B537-38FCDE4887D8}
+  clsid={E23FE9C6-778E-49d4-B537-38FCDE4887D9}
   RegisterServer=no
   hook=nsiinstaller
 
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/vlccontrol.cpp	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/vlccontrol.cpp	2005-06-20 13:17:30.000000000 -0700
@@ -763,7 +763,7 @@
     if( NULL == version )
         return E_POINTER;
 
-    const char *versionStr = VLC_Version();
+    const char *versionStr = "Google VLC multimedia plugin 1.0";
     if( NULL != versionStr )
     {
         *version = BSTRFromCStr(_p_instance->getCodePage(), versionStr);
--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/olecontrol.cpp	2005-05-22 12:15:00.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/olecontrol.cpp	2005-06-23 15:32:36.000000000 -0700
@@ -127,7 +127,12 @@
 
 STDMETHODIMP VLCOleControl::FreezeEvents(BOOL bFreeze)
 {
-    _p_instance->setSendEvents(! bFreeze);
+  // Google mod
+  // It seems that the container will freeze all events under a dynamic
+  // instantiation of ActiveX control. By commenting the following line
+  // the events can go through even if the mouse is not hover on top of 
+  // the window
+  //_p_instance->setSendEvents(! bFreeze);
     return S_OK;
 };
 
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcshell.cpp	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcshell.cpp	2005-06-16 12:40:50.000000000 -0700
@@ -128,7 +128,7 @@
 NPError NPP_GetValue( NPP instance, NPPVariable variable, void *value )
 {
 
-    static nsIID nsid = VLCINTF_IID;
+    static nsIID nsid = GOOGLEVLCINTF_IID;
     static char psz_desc[1000];
 
     switch( variable )
@@ -304,7 +304,7 @@
         HKEY h_key;
         DWORD i_type, i_data = MAX_PATH + 1;
         char p_data[MAX_PATH + 1];
-        if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\VideoLAN\\VLC",
+        if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\GoogleVideoViewer\\VLC",
                           0, KEY_READ, &h_key ) == ERROR_SUCCESS )
         {
              if( RegQueryValueEx( h_key, "InstallDir", 0, &i_type,
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/npvlc_rc.rc	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/npvlc_rc.rc	2005-06-16 01:13:42.000000000 -0700
@@ -31,17 +31,17 @@
     BEGIN
         BLOCK "040904e4"
         BEGIN
-            VALUE "ProductName", "VLC multimedia plugin\0"
+            VALUE "ProductName", "Google VLC multimedia plugin 1.0\0"
             VALUE "ProductVersion", STRINGIFY( VERSION )
-            VALUE "OriginalFilename", "npvlc.dll\0"
+            VALUE "OriginalFilename", "npgooglevlc.dll\0"
             VALUE "FileVersion", STRINGIFY( VERSION )
-            VALUE "FileDescription", "VLC multimedia plugin Version "STRINGIFY( VERSION )"<br><br>VideoLAN WWW: <a href=""http://www.videolan.org/"">http://www.videolan.org/</a>\0"
-            VALUE "InternalName", "npvlc\0"
+            VALUE "FileDescription", "Google VLC multimedia plugin Version 1.0<br>VideoLAN WWW: <a href=""http://www.videolan.org/"">http://www.videolan.org/</a>\0"
+            VALUE "InternalName", "npgooglevlc\0"
             VALUE "CompanyName", "VideoLAN Team\0"
             VALUE "LegalCopyright", "Copyright VideoLAN \251 1996-2004\0"
-            VALUE "MIMEType", "audio/mpeg|audio/x-mpeg|video/mpeg|video/x-mpeg|video/mpeg-system|video/x-mpeg-system|video/mpeg4|audio/mpeg4|application/mpeg4-iod|application/mpeg4-muxcodetable|video/x-msvideo|video/quicktime|application/x-ogg|application/x-vlc-plugin|video/x-ms-asf-plugin|video/x-ms-asf|application/x-mplayer2|video/x-ms-wmv\0"
-            VALUE "FileExtents", "mp2,mp3,mpga,mpega|mp2,mp3,mpga,mpega|mpg,mpeg,mpe|mpg,mpeg,mpe|mpg,mpeg,vob|mpg,mpeg,vob|mp4,mpg4|mp4,mpg4|mp4,mpg4|mp4,mpg4|avi|mov,qt|ogg|\0"
-            VALUE "FileOpenName", "MPEG audio|MPEG audio|MPEG video|MPEG video|MPEG video|MPEG video|MPEG-4 video|MPEG-4 audio|MPEG-4 video|MPEG-4 video|AVI video|QuickTime video|Ogg stream|VLC plugin\0"
+            VALUE "MIMEType", "application/x-google-vlc-plugin\0"
+            VALUE "FileExtents", "\0"
+            VALUE "FileOpenName", "Google VLC plugin\0"
         END
     END
     BLOCK "VarFileInfo"
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcplugin.h	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcplugin.h	2005-06-16 12:37:44.000000000 -0700
@@ -33,7 +33,7 @@
 
     void     SetInstance( NPP );
     NPP      GetInstance();
-    VlcIntf* GetPeer();
+    GoogleVlcIntf* GetPeer();
 
     void     SetFileName( const char* );
 
@@ -74,37 +74,15 @@
 /*******************************************************************************
  * Plugin properties.
  ******************************************************************************/
-#define PLUGIN_NAME         "VLC multimedia plugin"
+#define PLUGIN_NAME         "Google VLC multimedia plugin 1.0"
 #define PLUGIN_DESCRIPTION \
-    "VLC multimedia plugin <br>" \
+    "Google VLC multimedia plugin <br>" \
     " <br>" \
     "version %s <br>" \
     "VideoLAN WWW: <a href=\"http://www.videolan.org/\">http://www.videolan.org/</a>"
 
 #define PLUGIN_MIMETYPES \
-    /* MPEG-1 and MPEG-2 */ \
-    "audio/mpeg:mp2,mp3,mpga,mpega:MPEG audio;" \
-    "audio/x-mpeg:mp2,mp3,mpga,mpega:MPEG audio;" \
-    "video/mpeg:mpg,mpeg,mpe:MPEG video;" \
-    "video/x-mpeg:mpg,mpeg,mpe:MPEG video;" \
-    "video/mpeg-system:mpg,mpeg,mpe,vob:MPEG video;" \
-    "video/x-mpeg-system:mpg,mpeg,mpe,vob:MPEG video;" \
-    /* MPEG-4 */ \
-    "video/mpeg4:mp4,mpg4:MPEG-4 video;" \
-    "audio/mpeg4:mp4,mpg4:MPEG-4 audio;" \
-    "application/mpeg4-iod:mp4,mpg4:MPEG-4 video;" \
-    "application/mpeg4-muxcodetable:mp4,mpg4:MPEG-4 video;" \
-    /* AVI */ \
-    "video/x-msvideo:avi:AVI video;" \
-    /* QuickTime */ \
-    "video/quicktime:mov,qt:QuickTime video;" \
-    /* Ogg */ \
-    "application/x-ogg:ogg:Ogg stream;" \
     /* explicit plugin call */ \
-    "application/x-vlc-plugin::VLC plugin;" \
-    /* windows media */ \
-    "video/x-ms-asf-plugin:asf,asx:Windows Media Video;" \
-    "video/x-ms-asf:asf,asx:Windows Media Video;" \
-    "application/x-mplayer2::Windows Media;" \
-    "video/x-ms-wmv:wmv:Windows Media" \
+    "application/x-google-vlc-plugin::Google VLC plugin;" 
+
 
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcplugin.cpp	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcplugin.cpp	2005-06-16 12:41:04.000000000 -0700
@@ -79,7 +79,7 @@
 }
 
 
-VlcIntf* VlcPlugin::GetPeer()
+GoogleVlcIntf* VlcPlugin::GetPeer()
 {
     if( !p_peer )
     {
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcintf.idl	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcintf.idl	2005-06-16 12:38:36.000000000 -0700
@@ -1,9 +1,9 @@
 
 #include "nsISupports.idl"
 
-[scriptable, uuid(ea92ef52-afe4-4212-bacb-dfe9fca94cd6)]
+[scriptable, uuid(ea92ef52-afe4-4212-bacb-dfe9fca94cd7)]
 
-interface VlcIntf : nsISupports
+interface GoogleVlcIntf : nsISupports
 {
     /* Basic playback control */
     void play();
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcpeer.h	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcpeer.h	2005-06-16 12:40:10.000000000 -0700
@@ -21,16 +21,16 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
-#include "vlcintf.h"
+#include "googlevlcintf.h"
 #include "support/classinfo.h"
 
 class VlcPlugin;
 
-class VlcPeer : public VlcIntf, public ClassInfo
+class VlcPeer : public GoogleVlcIntf, public ClassInfo
 {
 public:
     NS_DECL_ISUPPORTS
-    NS_DECL_VLCINTF
+    NS_DECL_GOOGLEVLCINTF
 
     // These flags are used by the DOM and security systems to signal that
     // JavaScript callers are allowed to call this object's scriptable methods.
--- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcpeer.cpp	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcpeer.cpp	2005-06-16 12:37:36.000000000 -0700
@@ -49,7 +49,7 @@
 #include "vlcpeer.h"
 #include "vlcplugin.h"
 
-NS_IMPL_ISUPPORTS2( VlcPeer, VlcIntf, nsIClassInfo )
+NS_IMPL_ISUPPORTS2( VlcPeer, GoogleVlcIntf, nsIClassInfo )
 
 /*****************************************************************************
  * Scriptable peer constructor and destructor
--- /cygdrive/d/vlc-rev10995/vlc-trunk/modules/codec/ffmpeg/ffmpeg.c	2005-05-22 12:17:28.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/modules/codec/ffmpeg/ffmpeg.c	2005-06-11 09:24:38.000000000 -0700
@@ -120,12 +120,14 @@
     set_description( _("ffmpeg chroma conversion") );
 
     /* encoder submodule */
+/* Google mods: disable ffmpeg encoding capability */
+/*
     add_submodule();
     set_section( N_("Encoding") , NULL );
     set_description( _("ffmpeg audio/video encoder") );
     set_capability( "encoder", 100 );
     set_callbacks( E_(OpenEncoder), E_(CloseEncoder) );
-
+*/
     add_string( ENC_CFG_PREFIX "hq", "simple", NULL, ENC_HQ_TEXT,
                 ENC_HQ_LONGTEXT, VLC_FALSE );
         change_string_list( enc_hq_list, enc_hq_list_text, 0 );
--- /cygdrive/d/vlc-rev10995/vlc-trunk/src/misc/modules.c	2005-05-22 12:14:54.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/src/misc/modules.c	2005-06-11 09:31:40.000000000 -0700
@@ -569,10 +569,21 @@
         }
 
         /* Store this new module */
+#ifndef HAVE_MAD_H
+	/* Google mods:  */
+	if (!strcmp(p_module->psz_object_name, "mpeg_audio")) {
+	  /* MAD is not enabled in the configure option and so mpeg_audio won't
+	     be able to decode mp3 audio frames. We will use ffmpeg instead */
+	  continue;
+	}
+#endif
         p_list[ i_index ].p_module = p_module;
         p_list[ i_index ].i_score = p_module->i_score + i_shortcut_bonus;
         p_list[ i_index ].b_force = !!i_shortcut_bonus;
-
+	msg_Dbg( p_this, "module name %s, score: %d, bonus: %d",
+		 p_list[i_index].p_module->psz_object_name, 
+		 p_list[i_index].i_score, p_list[i_index].b_force );
+	
         /* Add it to the modules-to-probe list */
         if( i_index == 0 )
         {
@@ -708,6 +719,9 @@
         free( psz_var );
     }
 
+    if (p_module) 
+      msg_Dbg( p_this, "returning module %s", p_module->psz_object_name );
+    
     /* Don't forget that the module is still locked */
     return p_module;
 }
--- /cygdrive/d/vlc-rev10995/vlc-trunk/src/libvlc.c	2005-05-22 12:14:54.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/src/libvlc.c	2005-06-24 18:31:52.000000000 -0700
@@ -1024,6 +1024,34 @@
         return VLC_ENOOBJ;
     }
 
+    if( !strncmp(psz_var, "conf::", 6) )
+    {
+        module_config_t *p_item;
+	char const *psz_newvar = psz_var + 6;
+	msg_Dbg(p_vlc, "VLC_VariableGet|hack for Mozilla ... var=%s", 
+		psz_newvar);
+	p_item = config_FindConfig( VLC_OBJECT(p_vlc), psz_newvar );
+	switch( p_item->i_type )
+	  {
+	  case CONFIG_ITEM_BOOL:
+	    p_value->b_bool = config_GetInt( p_vlc, psz_newvar );
+	    break;
+	  case CONFIG_ITEM_INTEGER:
+	    p_value->i_int = config_GetInt( p_vlc, psz_newvar );
+	    break;
+	  case CONFIG_ITEM_FLOAT:
+	    p_value->f_float = config_GetFloat( p_vlc, psz_newvar );
+	    break;
+	  default:
+	    p_value->psz_string = config_GetPsz( p_vlc, psz_newvar );
+	    msg_Dbg(p_vlc, "VLC_VariableSet|config_GetPsz %s->%s", 
+		    psz_newvar, p_value->psz_string);
+	    break;
+	  }
+	if ( i_object ) vlc_object_release( p_vlc );
+	return VLC_SUCCESS;
+    }
+
     i_ret = var_Get( p_vlc , psz_var, p_value );
 
     if( i_object ) vlc_object_release( p_vlc );
--- /cygdrive/d/vlc-rev10995/vlc-trunk/modules/access/http.c	2005-05-22 12:17:02.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/modules/access/http.c	2005-06-21 22:05:10.000000000 -0700
@@ -242,7 +242,7 @@
     else
         ParseURL( p_sys, p_access->psz_path );
 
-    if( p_sys->url.psz_host == NULL || *p_sys->url.psz_host == '\0' )
+    if(p_sys->url.psz_host == NULL || *p_sys->url.psz_host == '\0' )
     {
         msg_Warn( p_access, "invalid host" );
         goto error;
@@ -301,6 +301,16 @@
         }
     }
 
+    // Google mods
+    const char* allowed_host = "video.google.com";
+    char * host_found = strstr(p_sys->url.psz_host, allowed_host);
+    if ((host_found == NULL) ||
+	((host_found + strlen(allowed_host)) != 
+	 (p_sys->url.psz_host + strlen(p_sys->url.psz_host)))) {
+      msg_Warn( p_access, "invalid host, only video.google.com is allowed" );
+      goto error;
+    }
+
     msg_Dbg( p_access, "http: server='%s' port=%d file='%s",
              p_sys->url.psz_host, p_sys->url.i_port, p_sys->url.psz_path );
     if( p_sys->b_proxy )
--- /cygdrive/d/vlc-rev10995/vlc-trunk/vlc.win32.nsi	2005-05-22 12:18:12.000000000 -0700
+++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/vlc-0.8.2-test1/vlc.win32.nsi	2005-06-24 16:21:36.000000000 -0700
@@ -2,32 +2,59 @@
 ; NSIS installer script for vlc ;
 ; (http://nsis.sourceforge.net) ;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-!define PRODUCT_NAME "VLC media player"
+!define VERSION "1.0"
+!define PRODUCT_NAME "Google Video Viewer"
 !define PRODUCT_VERSION '${VERSION}'
-!define PRODUCT_GROUP "VideoLAN"
-!define PRODUCT_PUBLISHER "VideoLAN Team"
-!define PRODUCT_WEB_SITE "http://www.videolan.org"
-!define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"
-!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_GROUP "GoogleVideoViewer"
+;!define PRODUCT_PUBLISHER "VideoLAN Team"
+!define PRODUCT_PUBLISHER "Google, Inc."
+;!define PRODUCT_WEB_SITE "http://www.videolan.org"
+!define PRODUCT_WEB_SITE "http://video.google.com"
+!define PRODUCT_PATH "${PRODUCT_GROUP}\VLC"
+!define PRODUCT_DIR_REGKEY "Software\${PRODUCT_PATH}"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_GROUP}"
 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Browser instance variables ;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+Var firefox
+Var iexplorer
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;
 ; General configuration ;
 ;;;;;;;;;;;;;;;;;;;;;;;;;
 
-Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
-OutFile ..\vlc-${VERSION}-win32.exe
-InstallDir "$PROGRAMFILES\VideoLAN\VLC"
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION} (based on VLC 0.8.2 Player)"
+Caption "${PRODUCT_NAME} ${PRODUCT_VERSION} (based on VLC 0.8.2 Player)"
+OutFile .\GoogleVideoViewer1.0.exe
+InstallDir "$PROGRAMFILES\${PRODUCT_PATH}"
 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "Install_Dir"
 SetCompressor lzma
 ShowInstDetails show
 ShowUnInstDetails show
 SetOverwrite ifnewer
 CRCCheck on
+;SilentInstall "silent"
+
+;InstType "Normal" 
+;InstType "Full"
+
+;--------------------------------
+;Version Information
+
+  VIProductVersion "1.0.0.0"
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Google Video Viewer"
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "Google Video Viewer must be installed to playback video content on http://video.google.com"
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Google, Inc."
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "GoogleVideoViewer is a trademark of Google, Inc."
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright©2005 Google, Inc."
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Google Video Viewer"
+  VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.0.0.0"
+
+;--------------------------------
 
-InstType "Normal"
-InstType "Full"
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; NSIS Modern User Interface configuration ;
@@ -38,24 +65,30 @@
 
 ; MUI Settings
 !define MUI_ABORTWARNING
-!define MUI_ICON "vlc48x48.ico"
-!define MUI_UNICON "vlc48x48.ico"
+;!define MUI_ICON "vlc48x48.ico"
+;!define MUI_UNICON "vlc48x48.ico"
+!define MUI_ICON "gvv48x48.ico"
+!define MUI_UNICON "gvv48x48.ico"
 !define MUI_COMPONENTSPAGE_SMALLDESC
 
 ; Welcome page
-!insertmacro MUI_PAGE_WELCOME
+;!insertmacro MUI_PAGE_WELCOME
 ; License page
-!insertmacro MUI_PAGE_LICENSE "COPYING.txt"
+!define MUI_LICENSEPAGE_RADIOBUTTONS
+!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "I Accept"
+!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "I Do Not Accept"
+;!insertmacro MUI_PAGE_LICENSE "COPYING.txt"
+!insertmacro MUI_PAGE_LICENSE "GoogleVideoViewerTOS_v5.rtf"
 ; Components page
-!insertmacro MUI_PAGE_COMPONENTS
+;!insertmacro MUI_PAGE_COMPONENTS
 ; Directory page
-!insertmacro MUI_PAGE_DIRECTORY
+;!insertmacro MUI_PAGE_DIRECTORY
 ; Instfiles page
 !insertmacro MUI_PAGE_INSTFILES
 ; Finish page
-!define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\googlevlc.exe"
 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
-!insertmacro MUI_PAGE_FINISH
+;!insertmacro MUI_PAGE_FINISH
 
 ; Uninstaller pages
 !insertmacro MUI_UNPAGE_INSTFILES
@@ -72,20 +105,20 @@
 ; File type associations ;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-Function RegisterExtension
-  ; back up old value for extension $R0 (eg. ".opt")
-  ReadRegStr $1 HKCR "$R0" ""
-  StrCmp $1 "" NoBackup
-    StrCmp $1 "VLC$R0" "NoBackup"
-    WriteRegStr HKCR "$R0" "VLC.backup" $1
-NoBackup:
-  WriteRegStr HKCR "$R0" "" "VLC$R0"
-  ReadRegStr $0 HKCR "VLC$R0" ""
-  WriteRegStr HKCR "VLC$R0" "" "VLC media file"
-  WriteRegStr HKCR "VLC$R0\shell" "" "Play"
-  WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" "%1"'
-  WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
-FunctionEnd
+;Function RegisterExtension
+;  ; back up old value for extension $R0 (eg. ".opt")
+;  ReadRegStr $1 HKCR "$R0" ""
+;  StrCmp $1 "" NoBackup
+;    StrCmp $1 "VLC$R0" "NoBackup"
+;    WriteRegStr HKCR "$R0" "VLC.backup" $1
+;NoBackup:
+;  WriteRegStr HKCR "$R0" "" "VLC$R0"
+;  ReadRegStr $0 HKCR "VLC$R0" ""
+;  WriteRegStr HKCR "VLC$R0" "" "VLC media file"
+;  WriteRegStr HKCR "VLC$R0\shell" "" "Play"
+;  WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" "%1"'
+;  WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
+;FunctionEnd
 
 Function un.RegisterExtension
   ;start of restore script
@@ -123,142 +156,82 @@
 ;;;;;;;;;;;;;;;;;;;;;;
 
 Section "Media player (required)" SEC01
-  SectionIn 1 2 3 RO
+  SectionIn 1 2 RO
   SetShellVarContext all
   SetOutPath "$INSTDIR"
 
-  File  vlc.exe
-  File  vlc.exe.manifest
+  File  googlevlc.exe
+  File  googlevlc.exe.manifest
   File  *.txt
 
   File  /r plugins
-  File  /r locale
-  File  /r skins
-  File  /r http
-
-  WriteRegStr HKCR Applications\vlc.exe "" ""
-  WriteRegStr HKCR Applications\vlc.exe\shell "" "Play"
-  WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
-    '$INSTDIR\vlc.exe "%1"'
-
-  WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
-  WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
-    "$INSTDIR\vlc.exe cdda:%1"
-  WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
-  WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
-    "$INSTDIR\vlc.exe dvd:%1"
-
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
-
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
-  WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
-  WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
-  WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
-    '$INSTDIR\vlc.exe dvd:%1@1:0'
-  WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
-  WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
-  WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
-  WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
-    '$INSTDIR\vlc.exe cdda:%1'
-  WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
+  ;File  /r locale
+  File  "GNU GENERAL PUBLIC LICENSE.txt"
+  File  "GoogleVideoViewerTOS_v5.rtf"
+  ;File  /r skins
+  ;File  /r http
+
+  ;WriteRegStr HKCR Applications\vlc.exe "" ""
+  ;WriteRegStr HKCR Applications\vlc.exe\shell "" "Play"
+  ;WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
+  ;  '$INSTDIR\vlc.exe "%1"'
 
 SectionEnd
 
 Section "Start Menu + Desktop Shortcut" SEC02
-  SectionIn 1 2 3
-  CreateDirectory "$SMPROGRAMS\VideoLAN"
-  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
-    "$INSTDIR\vlc.exe" "--intf wxwin --wxwin-embed"
-  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (alt).lnk" \
-    "$INSTDIR\vlc.exe" "--intf wxwin --no-wxwin-embed"
-  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (skins).lnk" \
-    "$INSTDIR\vlc.exe" "--intf skins"
-  CreateShortCut "$DESKTOP\VLC media player.lnk" \
-    "$INSTDIR\vlc.exe" "--intf wxwin"
-  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \
-    "${PRODUCT_WEB_SITE}"
-  CreateShortCut "$SMPROGRAMS\VideoLAN\Website.lnk" \
-    "$INSTDIR\${PRODUCT_NAME}.url"
+; SectionIn 2
+  SectionIn 1 2
+;  CreateDirectory "$SMPROGRAMS\${PRODUCT_PATH}"
+;  CreateShortCut "$SMPROGRAMS\${PRODUCT_PATH}\Uninstall VLC media player.lnk" \
+;    "$INSTDIR\uninstall.exe"
+;  CreateShortCut "$SMPROGRAMS\${PRODUCT_PATH}\VLC media player.lnk" \
+;    "$INSTDIR\vlc.exe" "--intf wxwin --wxwin-embed"
+;  CreateShortCut "$DESKTOP\VLC media player.lnk" \
+;    "$INSTDIR\vlc.exe" "--intf wxwin"
+;  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \
+;    "${PRODUCT_WEB_SITE}"
+;  CreateShortCut "$SMPROGRAMS\${PRODUCT_PATH}\Website.lnk" \
+;    "$INSTDIR\${PRODUCT_NAME}.url"
 SectionEnd
 
-Section /o "Mozilla plugin" SEC03
-  SectionIn 2 3
+Section "Mozilla plugin" SEC03
+  SectionIn 1 2
   File /r mozilla
-
-  WriteRegStr HKLM \
-    SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION} \
-    "Path" '"$INSTDIR\mozilla\npvlc.dll"'
+  ReadRegStr $1 HKLM "SOFTWARE\Mozilla\Mozilla Firefox" "CurrentVersion"
+  ReadRegStr $2 HKLM "SOFTWARE\Mozilla\Mozilla Firefox\$1\Main" "Install Directory"
+  CopyFiles /SILENT "$INSTDIR\mozilla\npgooglevlc.dll" "$2\Plugins"
+  CopyFiles /SILENT "$INSTDIR\mozilla\googlevlcintf.xpt" "$2\Plugins"
+  ;WriteRegStr HKLM \
+  ;  SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION} \
+  ;  "Path" '"$INSTDIR\mozilla\npgooglevlc.dll"'
 SectionEnd
 
-Section /o "ActiveX plugin" SEC04
-  SectionIn 2 3
+Section "ActiveX plugin" SEC04
+  SectionIn 1 2
   SetOutPath "$INSTDIR"
-  File activex\axvlc.dll
-  RegDLL "$INSTDIR\axvlc.dll"
+  File activex\axgooglevlc.dll
+  RegDLL "$INSTDIR\axgooglevlc.dll"
 SectionEnd
 
-SubSection "File type associations" SEC05
-  ; Make sure we have the same list in uninstall
-  !insertmacro RegisterExtensionSection ".a52"
-  !insertmacro RegisterExtensionSection ".aac"
-  !insertmacro RegisterExtensionSection ".ac3"
-  !insertmacro RegisterExtensionSection ".asf"
-  !insertmacro RegisterExtensionSection ".asx"
-  !insertmacro RegisterExtensionSection ".avi"
-  !insertmacro RegisterExtensionSection ".bin"
-  !insertmacro RegisterExtensionSection ".cue"
-  !insertmacro RegisterExtensionSection ".divx"
-  !insertmacro RegisterExtensionSection ".dts"
-  !insertmacro RegisterExtensionSection ".dv"
-  !insertmacro RegisterExtensionSection ".flac"
-  !insertmacro RegisterExtensionSection ".m1v"
-  !insertmacro RegisterExtensionSection ".m2v"
-  !insertmacro RegisterExtensionSection ".m3u"
-  !insertmacro RegisterExtensionSection ".mka"
-  !insertmacro RegisterExtensionSection ".mkv"
-  !insertmacro RegisterExtensionSection ".mov"
-  !insertmacro RegisterExtensionSection ".mp1"
-  !insertmacro RegisterExtensionSection ".mp2"
-  !insertmacro RegisterExtensionSection ".mp3"
-  !insertmacro RegisterExtensionSection ".mp4"
-  !insertmacro RegisterExtensionSection ".mpeg"
-  !insertmacro RegisterExtensionSection ".mpeg1"
-  !insertmacro RegisterExtensionSection ".mpeg2"
-  !insertmacro RegisterExtensionSection ".mpeg4"
-  !insertmacro RegisterExtensionSection ".mpg"
-  !insertmacro RegisterExtensionSection ".ogg"
-  !insertmacro RegisterExtensionSection ".ogm"
-  !insertmacro RegisterExtensionSection ".pls"
-  !insertmacro RegisterExtensionSection ".spx"
-  !insertmacro RegisterExtensionSection ".vob"
-  !insertmacro RegisterExtensionSection ".vlc"
-  !insertmacro RegisterExtensionSection ".wav"
-  !insertmacro RegisterExtensionSection ".wma"
-  !insertmacro RegisterExtensionSection ".wmv"
-SubSectionEnd
+;SubSection "File type associations" SEC05
+;  ; Make sure we have the same list in uninstall
+;  !insertmacro RegisterExtensionSection ".avi"
+;  !insertmacro RegisterExtensionSection ".mpeg"
+;  !insertmacro RegisterExtensionSection ".mpg"
+;SubSectionEnd
 
 Section -Post
   WriteUninstaller "$INSTDIR\uninstall.exe"
   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
-  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\googlevlc.exe"
 
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
     "DisplayName" "$(^Name)"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
     "UninstallString" "$INSTDIR\uninstall.exe"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
-    "DisplayIcon" "$INSTDIR\vlc.exe"
+    "DisplayIcon" "$INSTDIR\googlevlc.exe"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
     "DisplayVersion" "${PRODUCT_VERSION}"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
@@ -277,11 +250,40 @@
     "The VLC mozilla plugin"
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
     "The VLC ActiveX plugin"
-  !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
-    "Sets VLC media player as the default application for the specified file type"
+;  !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
+;    "Sets VLC media player as the default application for the specified file type"
 !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
 
+Function .onInit
+  ReadRegStr $R0  ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
+  "UninstallString"
+  StrCmp $R0 "" done
+ 
+  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
+  "Google Video Viewer has already been installed. $\nClick [OK] to remove the \
+  previous version or [Cancel] to cancel this installation." \
+  IDOK uninst
+  Abort
+  
+;Run the uninstaller
+uninst:
+  ClearErrors
+  ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
+ 
+  IfErrors no_remove_uninstaller proceed_ok
+    ;You can either use Delete /REBOOTOK in the uninstaller or add some code
+    ;here to remove the uninstaller. Use a registry key to check
+    ;whether the user has chosen to uninstall. If you are using an uninstaller
+    ;components page, make sure all sections are uninstalled.
+  no_remove_uninstaller:
+    Abort
+  proceed_ok:
+    MessageBox MB_OK "Proceed to install Google Video Viewer"
+done:
+ 
+FunctionEnd
+
 Function un.onUninstSuccess
   HideWindow
   MessageBox MB_ICONINFORMATION|MB_OK \
@@ -290,77 +292,74 @@
 
 Function un.onInit
   MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \
-    "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
+    "Please make sure you close all the browser windows. Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
+  Abort
+
+  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  ; Locate any intances of browser running
+  Processes::FindProcess "firefox"
+  Pop $R0
+  StrCpy $firefox $R0
+  Processes::FindProcess "iexplore"
+  Pop $R0
+  StrCpy $iexplorer $R0
+
+  StrCmp $firefox "1" firefox_running no_firefox  
+  firefox_running:
+  StrCmp $iexplorer "1" firefox_ie only_firefox
+  firefox_ie:
+  MessageBox MB_OK "You still have Firefox and Internet Explorer running, please close all the browser windows and try it again."
+  Abort
+  only_firefox:
+  MessageBox MB_OK "You still have Firefox running, please close all the browser windows and try it again."
+  Abort
+
+  no_firefox:
+  StrCmp $iexplorer "1" ie_running no_ie
+  ie_running:
+  MessageBox MB_OK "You still have Internet Explorer running, please close all the browser windows and try it again."
   Abort
+  no_ie:
+  ;MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \
+  ;   "Ready to proceed uninstallation" IDYES +2
+  ;Abort
+
 FunctionEnd
 
 Section Uninstall
   SetShellVarContext all
 
   ; Make sure we have the same list in install
-  !insertmacro UnRegisterExtensionSection ".a52"
-  !insertmacro UnRegisterExtensionSection ".aac"
-  !insertmacro UnRegisterExtensionSection ".ac3"
-  !insertmacro UnRegisterExtensionSection ".asf"
-  !insertmacro UnRegisterExtensionSection ".asx"
   !insertmacro UnRegisterExtensionSection ".avi"
-  !insertmacro UnRegisterExtensionSection ".bin"
-  !insertmacro UnRegisterExtensionSection ".cue"
-  !insertmacro UnRegisterExtensionSection ".divx"
-  !insertmacro UnRegisterExtensionSection ".dts"
-  !insertmacro UnRegisterExtensionSection ".dv"
-  !insertmacro UnRegisterExtensionSection ".flac"
-  !insertmacro UnRegisterExtensionSection ".m1v"
-  !insertmacro UnRegisterExtensionSection ".m2v"
-  !insertmacro UnRegisterExtensionSection ".m3u"
-  !insertmacro UnRegisterExtensionSection ".mka"
-  !insertmacro UnRegisterExtensionSection ".mkv"
-  !insertmacro UnRegisterExtensionSection ".mov"
-  !insertmacro UnRegisterExtensionSection ".mp1"
-  !insertmacro UnRegisterExtensionSection ".mp2"
-  !insertmacro UnRegisterExtensionSection ".mp3"
-  !insertmacro UnRegisterExtensionSection ".mp4"
   !insertmacro UnRegisterExtensionSection ".mpeg"
-  !insertmacro UnRegisterExtensionSection ".mpeg1"
-  !insertmacro UnRegisterExtensionSection ".mpeg2"
-  !insertmacro UnRegisterExtensionSection ".mpeg4"
   !insertmacro UnRegisterExtensionSection ".mpg"
-  !insertmacro UnRegisterExtensionSection ".ogg"
-  !insertmacro UnRegisterExtensionSection ".ogm"
-  !insertmacro UnRegisterExtensionSection ".pls"
-  !insertmacro UnRegisterExtensionSection ".spx"
-  !insertmacro UnRegisterExtensionSection ".vob"
-  !insertmacro UnRegisterExtensionSection ".vlc"
-  !insertmacro UnRegisterExtensionSection ".wav"
-  !insertmacro UnRegisterExtensionSection ".wma"
-  !insertmacro UnRegisterExtensionSection ".wmv"
-
-  UnRegDLL "$INSTDIR\axvlc.dll"
-  Delete /REBOOTOK "$INSTDIR\axvlc.dll"
-
-  RMDir "$SMPROGRAMS\VideoLAN"
-  RMDir /r $SMPROGRAMS\VideoLAN
-  RMDir /r $INSTDIR
-  DeleteRegKey HKLM Software\VideoLAN
-
-  DeleteRegKey HKCR Applications\vlc.exe
-  DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
-  DeleteRegKey HKCR DVD\shell\PlayWithVLC
-  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
-  DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
-  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
-  DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
-  DeleteRegKey HKCR "VLC.MediaFile"
 
-  DeleteRegKey HKLM \
-    SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}
+  UnRegDLL "$INSTDIR\axgooglevlc.dll"
+  Delete /REBOOTOK "$INSTDIR\axgooglevlc.dll"
+
+  DeleteRegKey HKLM "Software\${PRODUCT_PATH}"
+
+  ;DeleteRegKey HKCR Applications\googlevlc.exe
+  ;DeleteRegKey HKCR "VLC.MediaFile"
+
+  ReadRegStr $1 HKLM "SOFTWARE\Mozilla\Mozilla Firefox" "CurrentVersion"
+  ReadRegStr $2 HKLM "SOFTWARE\Mozilla\Mozilla Firefox\$1\Main" "Install Directory"
+  Delete "$2\Plugins\npgooglevlc.dll"
+  Delete "$2\Plugins\googlevlcintf.xpt"
+  ;DeleteRegKey HKLM \
+  ;  SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}
 
   DeleteRegKey HKLM \
-    Software\Microsoft\Windows\CurrentVersion\Uninstall\VideoLAN
+    "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_PATH}"
 
-  Delete "$DESKTOP\VLC media player.lnk"
+  ;Delete "$DESKTOP\VLC media player.lnk"
 
   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
+
+  RMDir /r "$SMPROGRAMS\${PRODUCT_GROUP}"
+  RMDir /r "$INSTDIR"
+  RMDir "$PROGRAMFILES\${PRODUCT_GROUP}"
+
   SetAutoClose true
 SectionEnd

