Allow dynamically enabling debug output

This has a significant performance impact because it prints to the JS
console for every packet.  Enabled with:

    postMessage({cmd:"debug",data:true})

Change-Id: Id052698882b5721f559e034fb0d6f6890e7d94a3
Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
diff --git a/vpn_instance.cc b/vpn_instance.cc
index 02272c3..e74a9d5 100644
--- a/vpn_instance.cc
+++ b/vpn_instance.cc
@@ -46,6 +46,7 @@
 const char* const kPause = "pause";
 const char* const kResume = "resume";
 const char* const kReconnect = "reconnect";
+const char* const kCmdDebug = "debug";
 const char* const kCryptoGetCert = "crypto-getcert";
 const char* const kCryptoGetPrivkey = "crypto-getprivkey";
 const char* const kCryptoSign = "crypto-sign";
@@ -145,7 +146,7 @@
     pp::Instance(instance) {
   nacl_io_init_ppapi(instance, pp::Module::Get()->get_browser_interface());
   core_ = pp::Module::Get()->core();
-  debug_enabled_ = false; // XXX
+  debug_enabled_ = false;
   InitBackgroundThreads();
 
   pthread_mutex_init(&lib_mutex_, NULL);
@@ -206,6 +207,8 @@
     // i.e. drop connection, then immediate reinstate it
     SetDesiredState(kStateRunning);
     SendCommand(OC_CMD_PAUSE);
+  } else if (cmd == kCmdDebug) {
+    debug_enabled_ = dict->Get(kData).AsBool();
   } else {
     Log(kError, "unrecognized command '%s'", cmd.c_str());
   }