[Webkit-unassigned] [Bug 91844] [EFL][WK2] Plugin process implementation

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Sep 12 11:50:15 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=91844





--- Comment #25 from Simon Hausmann <hausmann at webkit.org>  2012-09-12 11:50:39 PST ---
(From update of attachment 163648)
View in context: https://bugs.webkit.org/attachment.cgi?id=163648&action=review

> Source/WebKit2/PluginProcess/efl/PluginProcessMainEfl.cpp:66
> +int PluginProcessMainEfl(int argc, char* argv[])

This file as well is a 99% copy of PluginProcessMainGtk.cpp, with just the gtk_init() replaced with eine_init() and ecore_x_init(). Wouldn't it be better to share one file and have an #ifdef for the toolkit init in there instead of duplicating the entire file? Then you can also get rid of PluginMainEfl.cpp.

> Source/WebKit2/UIProcess/Plugins/efl/PluginProcessProxyEfl.cpp:86
> +    CString binaryPath = fileSystemRepresentation(executablePathOfPluginProcess());
> +    CString pluginPathCString = fileSystemRepresentation(pluginPath);
> +    char* argv[4];
> +    argv[0] = const_cast<char*>(binaryPath.data());
> +    argv[1] = const_cast<char*>("-scanPlugin");
> +    argv[2] = const_cast<char*>(pluginPathCString.data());
> +    argv[3] = 0;
> +
> +    int status;
> +    char* stdOut;
> +
> +    if (!g_spawn_sync(0, argv, 0, G_SPAWN_STDERR_TO_DEV_NULL, 0, 0, &stdOut, 0, &status, 0))
> +        return false;
> +
> +    if (!WIFEXITED(status) || WEXITSTATUS(status) != EXIT_SUCCESS)
> +        return false;
> +
> +    const unsigned kNumLinesExpected = 3;
> +    String lines[kNumLinesExpected];
> +    unsigned lineIndex = 0;
> +    const UChar* current = reinterpret_cast<const UChar*>(stdOut);
> +    while (lineIndex < kNumLinesExpected) {
> +        const UChar* start = current;
> +        while (*current++ != UChar('\n')) { }
> +        lines[lineIndex++] = String(start, current - start - 1);
> +    }
> +
> +    if (stdOut)
> +        free(stdOut);
> +
> +    result.name.swap(lines[0]);
> +    result.description.swap(lines[1]);
> +    result.mimeDescription.swap(lines[2]);
> +
> +    return !result.mimeDescription.isEmpty();

This function along with the rest of the file is a 99% copy of PluginProcessProxyGtk.cpp, which btw is (C) Igalia. Is there any way that you can modify your build system to simply compile their version if you have GLIB_SUPPORT enabled and omit this file altogether when it just duplicates the code?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list