Changeset 141275 in webkit


Ignore:
Timestamp:
Jan 30, 2013 8:58:10 AM (11 years ago)
Author:
thiago.santos@intel.com
Message:

REGRESSION (r141051): Broke plugin support on non-Mac WebKit2 Ports
https://bugs.webkit.org/show_bug.cgi?id=108182

Reviewed by Sam Weinig.

Source/WebKit2:

Send the plugin path to the PluginProcess as a parameter.

  • PluginProcess/qt/PluginProcessMainQt.cpp:

(WebKit::PluginProcessMain):

  • PluginProcess/unix/PluginProcessMainUnix.cpp:

(WebKit::PluginProcessMainUnix):

  • UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/qt/ProcessLauncherQt.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:

(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):

LayoutTests:

Unskip failing tests.

  • platform/efl-wk2/TestExpectations:
  • platform/qt-5.0-wk2/TestExpectations:
Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r141271 r141275  
     12013-01-30  Thiago Marcos P. Santos  <thiago.santos@intel.com>
     2
     3        REGRESSION (r141051): Broke plugin support on non-Mac WebKit2 Ports
     4        https://bugs.webkit.org/show_bug.cgi?id=108182
     5
     6        Reviewed by Sam Weinig.
     7
     8        Unskip failing tests.
     9
     10        * platform/efl-wk2/TestExpectations:
     11        * platform/qt-5.0-wk2/TestExpectations:
     12
    1132013-01-30  Jussi Kukkonen  <jussi.kukkonen@intel.com>
    214
  • trunk/LayoutTests/platform/efl-wk2/TestExpectations

    r141242 r141275  
    426426webkit.org/b/107286 fast/css/sticky/replaced-sticky.html [ ImageOnlyFailure ]
    427427
    428 # Broken after r141051.
    429 webkit.org/b/108182 fast/frames/sandboxed-iframe-about-blank.html [ Skip ]
    430 webkit.org/b/108182 fast/frames/sandboxed-iframe-navigation-allowed.html [ Skip ]
    431 webkit.org/b/108182 fast/js/regress/integer-modulo.html [ Skip ]
    432 webkit.org/b/108182 fast/replaced/invalid-object-with-fallback.html [ Skip ]
    433 webkit.org/b/108182 http/tests/plugins [ Skip ]
    434 webkit.org/b/108182 http/tests/security/contentSecurityPolicy/object-src-none-allowed.html [ Skip ]
    435 webkit.org/b/108182 http/tests/security/cross-origin-plugin-allowed.html [ Skip ]
    436 webkit.org/b/108182 http/tests/security/cross-origin-plugin-private-browsing-toggled-allowed.html [ Skip ]
    437 webkit.org/b/108182 http/tests/security/storage-blocking-loosened-plugin.html [ Skip ]
    438 webkit.org/b/108182 http/tests/security/storage-blocking-loosened-private-browsing-plugin.html [ Skip ]
    439 webkit.org/b/108182 plugins [ Skip ]
    440 webkit.org/b/108182 fast/loader/reload-zero-byte-plugin.html [ Skip ]
    441 webkit.org/b/108182 fast/frames/iframe-plugin-load-remove-document-crash.html [ Skip ]
    442 webkit.org/b/108182 fast/replaced/no-focus-ring-object.html [ Skip ]
    443 webkit.org/b/108182 fast/replaced/object-with-embed-url-param.html [ Skip ]
    444 webkit.org/b/108182 fast/replaced/no-focus-ring-embed.html [ Skip ]
    445 webkit.org/b/108182 http/tests/plugins/post-url-file.html [ Skip ]
    446 webkit.org/b/108182 http/tests/plugins/plugin-document-has-focus.html [ Skip ]
    447 webkit.org/b/108182 compositing/plugins/small-to-large-composited-plugin.html [ Skip ]
    448 
    449428# New ruby selection test (in r140613) fails to render correctly, not generating an expected result
    450429webkit.org/b/108315 fast/ruby/select-ruby.html [ Missing ]
  • trunk/LayoutTests/platform/qt-5.0-wk2/TestExpectations

    r141106 r141275  
    777777svg/text/select-x-list-with-tspans-1.svg
    778778svg/text/select-x-list-1.svg
    779 
    780 # [WK2] REGRESSION (r141051): Broke plugin support on non-Mac WebKit2 Ports
    781 webkit.org/b/108182 plugins [ Skip ]
    782 webkit.org/b/108182 fast/frames/sandboxed-iframe-about-blank.html [ Skip ]
    783 webkit.org/b/108182 fast/frames/sandboxed-iframe-navigation-allowed.html [ Skip ]
    784 webkit.org/b/108182 fast/replaced/invalid-object-with-fallback.html [ Skip ]
  • trunk/Source/WebKit2/ChangeLog

    r141274 r141275  
     12013-01-30  Thiago Marcos P. Santos  <thiago.santos@intel.com>
     2
     3        REGRESSION (r141051): Broke plugin support on non-Mac WebKit2 Ports
     4        https://bugs.webkit.org/show_bug.cgi?id=108182
     5
     6        Reviewed by Sam Weinig.
     7
     8        Send the plugin path to the PluginProcess as a parameter.
     9
     10        * PluginProcess/qt/PluginProcessMainQt.cpp:
     11        (WebKit::PluginProcessMain):
     12        * PluginProcess/unix/PluginProcessMainUnix.cpp:
     13        (WebKit::PluginProcessMainUnix):
     14        * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
     15        (WebKit::ProcessLauncher::launchProcess):
     16        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
     17        (WebKit::ProcessLauncher::launchProcess):
     18        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
     19        (WebKit::ProcessLauncher::launchProcess):
     20        * UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:
     21        (WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
     22        * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
     23        (WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
     24
    1252013-01-30  Christophe Dumez  <christophe.dumez@intel.com>
    226
  • trunk/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp

    r140916 r141275  
    104104    WebKit::ChildProcessInitializationParameters parameters;
    105105    parameters.connectionIdentifier = identifier;
     106    parameters.extraInitializationData.add("plugin-path", app.arguments().at(2));
    106107
    107108    WebKit::PluginProcess::shared().initialize(parameters);
  • trunk/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp

    r138868 r141275  
    7474WK_EXPORT int PluginProcessMainUnix(int argc, char* argv[])
    7575{
    76     ASSERT_UNUSED(argc, argc == 2 || argc == 3);
    7776    bool scanPlugin = !strcmp(argv[1], "-scanPlugin");
    78     ASSERT_UNUSED(argc, argc == 2 || (argc == 3 && scanPlugin));
     77    ASSERT_UNUSED(argc, argc == 3);
    7978
    8079#if PLATFORM(GTK)
     
    110109    WebKit::ChildProcessInitializationParameters parameters;
    111110    parameters.connectionIdentifier = socket;
     111    parameters.extraInitializationData.add("plugin-path", argv[2]);
    112112
    113113    WebKit::PluginProcess::shared().initialize(parameters);
  • trunk/Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp

    r138597 r141275  
    4343    }
    4444
    45     CString executablePath;
     45    CString executablePath, pluginPath;
    4646    switch (m_launchOptions.processType) {
    4747    case WebProcess:
     
    5151    case PluginProcess:
    5252        executablePath = executablePathOfPluginProcess().utf8();
     53        pluginPath = m_launchOptions.extraInitializationData.get("plugin-path").utf8();
    5354        break;
    5455#endif
     
    6465    CString prefixedExecutablePath;
    6566    if (!m_launchOptions.processCmdPrefix.isEmpty()) {
    66         String prefixedExecutablePathStr = m_launchOptions.processCmdPrefix + ' ' + String::fromUTF8(executablePath.data()) + ' ' + socket;
     67        String prefixedExecutablePathStr = m_launchOptions.processCmdPrefix + ' ' +
     68            String::fromUTF8(executablePath.data()) + ' ' + socket + ' ' + String::fromUTF8(pluginPath.data());
    6769        prefixedExecutablePath = prefixedExecutablePathStr.utf8();
    6870    }
     
    8789        }
    8890#endif
    89         execl(executablePath.data(), executablePath.data(), socket, static_cast<char*>(0));
     91        execl(executablePath.data(), executablePath.data(), socket, pluginPath.data(), static_cast<char*>(0));
    9092    } else if (pid > 0) { // parent process;
    9193        close(sockets[0]);
  • trunk/Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp

    r138413 r141275  
    8484    }
    8585
    86     String executablePath = m_launchOptions.processType == WebProcess ?
    87                             executablePathOfWebProcess() : executablePathOfPluginProcess();
    88     CString binaryPath = fileSystemRepresentation(executablePath);
     86    String executablePath, pluginPath;
     87    CString realExecutablePath, realPluginPath;
     88    if (m_launchOptions.processType == WebProcess)
     89        executablePath = executablePathOfWebProcess();
     90    else {
     91        executablePath = executablePathOfPluginProcess();
     92        pluginPath = m_launchOptions.extraInitializationData.get("plugin-path");
     93        realPluginPath = fileSystemRepresentation(pluginPath);
     94    }
     95
     96    realExecutablePath = fileSystemRepresentation(executablePath);
    8997    GOwnPtr<gchar> socket(g_strdup_printf("%d", sockets[0]));
    90     char* argv[3];
    91     argv[0] = const_cast<char*>(binaryPath.data());
     98    char* argv[4];
     99    argv[0] = const_cast<char*>(realExecutablePath.data());
    92100    argv[1] = socket.get();
    93     argv[2] = 0;
     101    argv[2] = const_cast<char*>(realPluginPath.data());
     102    argv[3] = 0;
    94103
    95104    GOwnPtr<GError> error;
  • trunk/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp

    r140957 r141275  
    113113void ProcessLauncher::launchProcess()
    114114{
    115     QString commandLine = QLatin1String("%1 %2 %3");
     115    QString commandLine;
    116116    if (m_launchOptions.processType == WebProcess) {
     117        commandLine = QLatin1String("%1 %2 %3");
    117118        QByteArray webProcessPrefix = qgetenv("QT_WEBKIT2_WP_CMD_PREFIX");
    118119        commandLine = commandLine.arg(QLatin1String(webProcessPrefix.constData())).arg(QString(executablePathOfWebProcess()));
    119120#if ENABLE(PLUGIN_PROCESS)
    120121    } else if (m_launchOptions.processType == PluginProcess) {
     122        commandLine = QLatin1String("%1 %2 %3 %4");
    121123        QByteArray pluginProcessPrefix = qgetenv("QT_WEBKIT2_PP_CMD_PREFIX");
    122124        commandLine = commandLine.arg(QLatin1String(pluginProcessPrefix.constData())).arg(QString(executablePathOfPluginProcess()));
     
    171173#endif
    172174
     175#if ENABLE(PLUGIN_PROCESS)
     176    if (m_launchOptions.processType == PluginProcess)
     177        commandLine = commandLine.arg(QString(m_launchOptions.extraInitializationData.get("plugin-path")));
     178#endif
     179
    173180    QProcess* webProcessOrSUIDHelper = new QtWebProcess();
    174181    webProcessOrSUIDHelper->setProcessChannelMode(QProcess::ForwardedChannels);
  • trunk/Source/WebKit2/UIProcess/Plugins/qt/PluginProcessProxyQt.cpp

    r139600 r141275  
    5454void PluginProcessProxy::platformInitializeLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions, const PluginModuleInfo& pluginInfo)
    5555{
     56    launchOptions.extraInitializationData.add("plugin-path", pluginInfo.path);
    5657}
    5758
  • trunk/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp

    r136884 r141275  
    4444namespace WebKit {
    4545
    46 void PluginProcessProxy::platformInitializeLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions, const PluginModuleInfo&)
     46void PluginProcessProxy::platformInitializeLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions, const PluginModuleInfo& pluginInfo)
    4747{
    4848#if PLATFORM(EFL) && !defined(NDEBUG)
     
    5050    if (commandPrefix && *commandPrefix)
    5151        launchOptions.processCmdPrefix = String::fromUTF8(commandPrefix);
    52 #else
    53     UNUSED_PARAM(launchOptions);
    5452#endif
     53
     54    launchOptions.extraInitializationData.add("plugin-path", pluginInfo.path);
    5555}
    5656
Note: See TracChangeset for help on using the changeset viewer.