Why can a set of plugins differ between Safari and WebView components?

Our Mac desktop application has a built-in WebView component from WebKit. Inside WebView we host Flash Player, where we visualize the interface.

As far as I know, Safari uses WebKit / WebView to display content.

We expected Safari to host the same WebView component as our application hosts. In other words, if a Flash plugin is installed in Safari, Flash will be available in our WebView.

Unfortunately, this turned out to be wrong for one of our users.

On your Mac, Flash works flawlessly in Safari, but our WebView displays a "Plugin missing" message instead of Flash Player.

Mac OS X 10.5.8

Why could this happen?

Is it possible to use Safari to use a different WebView (or WebView settings) than our application uses?

I would appreciate any advice that would help us find the source of the problem.

I asked the user to run a small script that prints a set of plugins installed for Safari and our WebView. Safari has about 20 plugins installed, including Flash Player. But for our WebView, only 3 plugins are installed. Here they are:

Java Plug-In 2 for NPAPI Browsers Switchable Java Plug-In for WebKit RealPlayer Plugin.plugin 

Pasha

+4
source share
1 answer

Is it possible to use Safari to use a different WebView (or WebView settings) than our application uses?

Yes very. WebView is just a class, and Safari uses a single instance of a class that is not modified for the plug-in. The Flash plugin is installed for the browser (as in Safari, it tracks where it is installed and searches for it as necessary). Cocoa WebView does not change with every plug-in, which can lead to all problems.

+1
source

Source: https://habr.com/ru/post/1338251/


All Articles