浏览代码

Chromium support for web plugin

rdb 15 年之前
父节点
当前提交
6aea935727
共有 1 个文件被更改,包括 10 次插入5 次删除
  1. 10 5
      direct/src/plugin_npapi/startup.cxx

+ 10 - 5
direct/src/plugin_npapi/startup.cxx

@@ -131,11 +131,6 @@ NP_GetValue(void*, NPPVariable variable, void* value) {
     case NPPVpluginDescriptionString:
       *(const char **)value = "Runs 3-D games and interactive applets";
       break;
-      /*
-    case NPPVpluginNeedsXEmbed:
-      *((NPBool *)value) = false;
-      break;
-      */
     default:
       nout << "Ignoring GetValue request " << variable << "\n";
       return NPERR_INVALID_PARAM;
@@ -567,6 +562,16 @@ NPP_GetValue(NPP instance, NPPVariable variable, void *value) {
       *(NPObject **)value = obj;
       return NPERR_NO_ERROR;
     }
+  } else if (variable == NPPVpluginNeedsXEmbed) {
+    // We'll say yes if the browser supports it.
+    // This is necessary to support Chromium.
+    NPBool supports_xembed = false;
+    NPError err = browser->getvalue(instance, NPNVSupportsXEmbedBool, &supports_xembed);
+    if (err != NPERR_NO_ERROR) {
+      supports_xembed = false;
+    }
+    *((NPBool *)value) = supports_xembed;
+    return NPERR_NO_ERROR;
   } else {
     return NP_GetValue(NULL, variable, value);
   }