[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