Bug 135752

Summary: [GTK] Do not look for child processes in the UI process binary path
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: berto, commit-queue, glenn, gustavo, svillar
Priority: P2 Keywords: Gtk
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 126688    
Attachments:
Description Flags
Patch
none
New patch gustavo: review+

Description Carlos Garcia Campos 2014-08-08 01:10:05 PDT
I think this is only useful for internal tools and tests, but never when installed, since we don't install the processes in the bin dir but in the libexec dir. We already have an env var to cover the cases of the internal tools and tests, so I think it would be better to use that variable only.
Comment 1 Carlos Garcia Campos 2014-08-08 01:13:13 PDT
Created attachment 236271 [details]
Patch
Comment 2 Gustavo Noronha (kov) 2014-08-28 05:26:56 PDT
This will mean we need to set WEBKIT_EXEC_PATH for running MiniBrowser directly, right?
Comment 3 Carlos Garcia Campos 2014-08-28 05:41:12 PDT
(In reply to comment #2)
> This will mean we need to set WEBKIT_EXEC_PATH for running MiniBrowser directly, right?

Yes, that's what the patch does. And I don't like it, because downstream need to patch it to remove that. I think we could pass DEVELOPER_MODE to the compiler and only set the envs for developer builds

#ifdef DEVELOPER_MODE
     g_setenv("WEBKIT_EXEC_PATH", WEBKIT_EXEC_PATH, FALSE);
     g_setenv("WEBKIT_INJECTED_BUNDLE_PATH", WEBKIT_INJECTED_BUNDLE_PATH, FALSE);
#endif

Or only pass WEBKIT_EXEC_PATH and WEBKIT_INJECTED_BUNDLE_PATH for developer builds and check those directly.
Comment 4 Carlos Garcia Campos 2014-08-28 05:42:20 PDT
(In reply to comment #3)
> (In reply to comment #2)
> > This will mean we need to set WEBKIT_EXEC_PATH for running MiniBrowser directly, right?
> 
> Yes, that's what the patch does. And I don't like it, because downstream need to patch it to remove that. I think we could pass DEVELOPER_MODE to the compiler and only set the envs for developer builds
> 
> #ifdef DEVELOPER_MODE
>      g_setenv("WEBKIT_EXEC_PATH", WEBKIT_EXEC_PATH, FALSE);
>      g_setenv("WEBKIT_INJECTED_BUNDLE_PATH", WEBKIT_INJECTED_BUNDLE_PATH, FALSE);
> #endif
> 
> Or only pass WEBKIT_EXEC_PATH and WEBKIT_INJECTED_BUNDLE_PATH for developer builds and check those directly.

hmm, wait, but Tools (including MB) are not build on non developer builds, or does debian also patch that? Berto?
Comment 5 Alberto Garcia 2014-08-28 05:57:58 PDT
(In reply to comment #4)
> hmm, wait, but Tools (including MB) are not build on non developer
> builds, or does debian also patch that? Berto?

In Debian I'm patching CMakeLists.txt to build the MiniBrowser, the
rest of the tools we don't need.

I also remove the g_setenv("WEBKIT_INJECTED_BUNDLE_PATH", ...) call
from main.c.
Comment 6 Carlos Garcia Campos 2014-08-28 06:13:32 PDT
(In reply to comment #5)
> (In reply to comment #4)
> > hmm, wait, but Tools (including MB) are not build on non developer
> > builds, or does debian also patch that? Berto?
> 
> In Debian I'm patching CMakeLists.txt to build the MiniBrowser, the
> rest of the tools we don't need.
> 
> I also remove the g_setenv("WEBKIT_INJECTED_BUNDLE_PATH", ...) call
> from main.c.

Ok, so you will have to keep patching it anyway, so we either leave it as it is, or build MB unconditionally. MB doesn't use any internal symbol, so it shouldn't be a problem.
Comment 7 Alberto Garcia 2014-08-28 06:44:37 PDT
(In reply to comment #6)
> Ok, so you will have to keep patching it anyway

Yeah, that's not a problem, it's a trivial patch anyway.

The only alternative would be that we want to install MiniBrowser by
default upstream, which I don't think it's the case?
Comment 8 Carlos Garcia Campos 2014-08-28 06:50:29 PDT
(In reply to comment #7)
> (In reply to comment #6)
> > Ok, so you will have to keep patching it anyway
> 
> Yeah, that's not a problem, it's a trivial patch anyway.
> 
> The only alternative would be that we want to install MiniBrowser by
> default upstream, which I don't think it's the case?

I don't see why not. It's like gtk3-demo, for example, or poppler-glib-demo. We can add a specific compile option to disable it (not the installation, but the whole MB), and enable it always for developer builds, since it's required/expected by the layout tests.
Comment 9 Alberto Garcia 2014-08-29 01:00:29 PDT
(In reply to comment #8)
> > The only alternative would be that we want to install MiniBrowser
> > by default upstream, which I don't think it's the case?
> I don't see why not. It's like gtk3-demo, for example, or
> poppler-glib-demo.

Ok, why are not we installing it then?

Anyway, if we add an option to install it I think we should disable
the hardcoded WEBKIT_INJECTED_BUNDLE_PATH somehow.
Comment 10 Carlos Garcia Campos 2015-03-10 04:51:57 PDT
Created attachment 248327 [details]
New patch

This patch introduces DEVELOPMENT_BUILD, and only when defined we look for child processes in UI process bin dir, or even in WEBKIT_EXEC_PATH. And the same for the WEBKIT_INJECTED_BUNDLE_PATH env var.
Comment 11 Carlos Garcia Campos 2015-03-11 10:48:15 PDT
Committed r181392: <http://trac.webkit.org/changeset/181392>