Browse Source

check for NPAPI version at startup

David Rose 16 years ago
parent
commit
d2bccefad8
1 changed files with 15 additions and 0 deletions
  1. 15 0
      direct/src/plugin_npapi/startup.cxx

+ 15 - 0
direct/src/plugin_npapi/startup.cxx

@@ -164,6 +164,21 @@ NP_Initialize(NPNetscapeFuncs *browserFuncs,
   }
 #endif
 
+  int browser_major = HIBYTE(browser->version);
+  int browser_minor = LOBYTE(browser->version);
+  nout << "Browser version " << browser_major << "." << browser_minor << "\n";
+
+  int expected_major = NP_VERSION_MAJOR;
+  int expected_minor = NP_VERSION_MINOR;
+
+  nout << "Expected version " << expected_major << "." << expected_minor
+       << "\n";
+  if (browser_major < expected_major ||
+      (browser_major == expected_major && browser_minor < expected_minor)) {
+    nout << "Cannot run: unsupported version of NPAPI detected.\n";
+    return NPERR_GENERIC_ERROR;
+  }
+
   // Seed the lame random number generator in rand(); we use it to
   // select a mirror for downloading.
   srand((unsigned int)time(NULL));