summaryrefslogtreecommitdiffstats
path: root/chrome/browser/zygote_main_linux.cc
Commit message (Collapse)AuthorAgeFilesLines
* Convert LOG(INFO) to VLOG(1) - misc. chrome/browser/*.pkasting@chromium.org2010-10-211-1/+1
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/4008001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63421 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 63067 - This adds some plumbing for propagating the status and error ↵gspencer@chromium.org2010-10-191-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code of a renderer process that went away so that we can tell at the UI level what happened to the tab: did it crash, or was it killed by the OOM killer (or some other reason). This is in preparation for implementing a new UI for when a process is killed by the OOM on ChromeOS which handles it differently from a crash. Most of the changes are modifications of the argument list to include a status and error code for the exited process, but in addition the following was done: - Changed the name of DidProcessCrash to GetTerminationStatus. - Added some new enum values to TerminationStatus enum (and named it) in process_util.h, so it can be used as the status returned by WhatHappenedToProcess. - Improved process_util_unittest to actually test for crashing and terminated processes on all platforms. - Added a new notification for renderers that were killed. - Added error code information to crash notification. - Added status and error code information to renderer IPC message for RenderViewGone. - Added a UMA histogram count for number of renderer kills. [This change was previously reviewed and LGTM'd: http://codereview.chromium.org/3386014/show but due to issues with "git cl push" was never committed to the tree.] BUG=none TEST=ran new unit test. Test passes on try servers. Review URL: http://codereview.chromium.org/3869001 TBR=gspencer@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63074 0039d316-1c4b-4281-b951-d872f2087c98
* This adds some plumbing for propagating the status and error code of agspencer@chromium.org2010-10-191-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | renderer process that went away so that we can tell at the UI level what happened to the tab: did it crash, or was it killed by the OOM killer (or some other reason). This is in preparation for implementing a new UI for when a process is killed by the OOM on ChromeOS which handles it differently from a crash. Most of the changes are modifications of the argument list to include a status and error code for the exited process, but in addition the following was done: - Changed the name of DidProcessCrash to GetTerminationStatus. - Added some new enum values to TerminationStatus enum (and named it) in process_util.h, so it can be used as the status returned by WhatHappenedToProcess. - Improved process_util_unittest to actually test for crashing and terminated processes on all platforms. - Added a new notification for renderers that were killed. - Added error code information to crash notification. - Added status and error code information to renderer IPC message for RenderViewGone. - Added a UMA histogram count for number of renderer kills. [This change was previously reviewed and LGTM'd: http://codereview.chromium.org/3386014/show but due to issues with "git cl push" was never committed to the tree.] BUG=none TEST=ran new unit test. Test passes on try servers. Review URL: http://codereview.chromium.org/3869001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63067 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Fix problem with zombies and hanging browsers when ↵thestig@chromium.org2010-09-261-1/+8
| | | | | | | | | | METHOD_GET_CHILD_WITH_INODE fails. BUG=none TEST=fewer zombies. Review URL: http://codereview.chromium.org/3416023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60592 0039d316-1c4b-4281-b951-d872f2087c98
* linux: zygote should suicide when the browser channel closes.evan@chromium.org2010-09-241-5/+6
| | | | | | | | | | | | | We attempt to do this when recvmsg() returns 0, indicating EOF. But man 7 unix also says we can get ECONNRESET, so accept that too. TEST=run Chrome such that it exits quickly, e.g. ./out/Debug/chrome --try-chrome-again=10001 it should not print any zygote error messages. Review URL: http://codereview.chromium.org/3387017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60486 0039d316-1c4b-4281-b951-d872f2087c98
* zygote: use pthread_once to init localtime(_r) functions.agl@chromium.org2010-09-211-47/+38
| | | | | | | | | | | | The previous trick (thread safe statics) is disabled via compiler flags in our build. BUG=54264 TEST=none http://codereview.chromium.org/3412017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60076 0039d316-1c4b-4281-b951-d872f2087c98
* Replicate r59512 for localtime_ragl@chromium.org2010-09-201-6/+5
| | | | | | | | | | | | | Use magic to init our 'localtime_r' wrapper. (See bug for details.) Patch-by: kcc (Chromium) BUG=54264 TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59956 0039d316-1c4b-4281-b951-d872f2087c98
* Support for building Chrome using Clang.evan@chromium.org2010-09-181-2/+3
| | | | | | | | | | | | | | | | To build, set the clang=1 gyp_define. This patch is the culmination of many months of effort and many patches. It contains the minimal changes to Chrome that are Clang-specific. With this, I can build the "chrome" target. Once this patch is in, we can incrementally fix bits of Chrome and various tests and remove the Clang-specific workarounds. Review URL: http://codereview.chromium.org/522020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59882 0039d316-1c4b-4281-b951-d872f2087c98
* Linux zygote: Fix race condition when using SUID + seccomp sandboxesmseaborn@chromium.org2010-09-161-46/+95
| | | | | | | | | | | | | | | | | | | | Change the child process to synchronise with the parent (the zygote) so that the child does not fork further children while the zygote is trying to discover the child's real PID from the SUID helper. Split the logic for doing METHOD_GET_CHILD_WITH_INODE into a separate function. Add a pipe for doing the synchronisation. Now that the child synchronises, it can close dummy_fd. BUG=55599 TEST=Tested manually with: cd native_client && ./tools/httpd.py & CHROME_DEVEL_SANDBOX=/opt/google/chrome/chrome-sandbox ./out/Debug/chrome-wrapper --enable-nacl --enable-seccomp-sandbox http://localhost:5103/tests/prebuilt/srpc_hw.html Review URL: http://codereview.chromium.org/3391003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59634 0039d316-1c4b-4281-b951-d872f2087c98
* Linux sandbox: Allow seccomp sandbox to be stacked on top of the SUID sandboxmseaborn@chromium.org2010-09-161-4/+6
| | | | | | | | | | | | | | | | | | | | | | Since this mostly worked before, this is just a matter of reordering some "if" clauses. Before this change, --enable-seccomp-sandbox would have the side effect of disabling the SUID sandbox. The zygote would get run through the SUID helper, but the zygote would never send the message to turn the SUID sandbox on. Change this so that --enable-seccomp-sandbox does not disable the SUID sandbox. BUG=55599 TEST=Tested manually with: cd native_client && ./tools/httpd.py & CHROME_DEVEL_SANDBOX=/opt/google/chrome/chrome-sandbox ./out/Debug/chrome-wrapper --enable-nacl --enable-seccomp-sandbox http://localhost:5103/tests/prebuilt/srpc_hw.html Review URL: http://codereview.chromium.org/3449001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59630 0039d316-1c4b-4281-b951-d872f2087c98
* Use magic to init our 'localtime' wrapper.agl@chromium.org2010-09-151-6/+5
| | | | | | | | | | | (See bug for details.) Patch-by: kcc (Chromium) BUG=54264 TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59512 0039d316-1c4b-4281-b951-d872f2087c98
* Pull seccomp-sandbox in via DEPS rather than using an in-tree copy mseaborn@chromium.org2010-09-011-1/+1
| | | | | | | | | | | | | | | | This means changes to the sandbox won't have to be committed twice, to both trees. This is a retry of r57921, which was committed with git-svn and failed to remove the "seccomp" directory. This caused problems when trying to "svn checkout" to the same location, and the change was reverted. This time I will use SVN to commit the change. BUG=none TEST=smoke test of running chromium with --enable-seccomp-sandbox Review URL: http://codereview.chromium.org/3225010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58184 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Header cleanup in chrome/common part 2. The majority of the changed filesjhawkins@chromium.org2010-08-201-0/+1
| | | | | | | | | | | just added notification_observer.h. BUG=none TEST=none Review URL: http://codereview.chromium.org/3120021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56824 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: bit hacky way to ensure Pepper plugins get loaded by zygote.viettrungluu@chromium.org2010-07-281-1/+5
| | | | | | | | | BUG=49702 TEST=Integrated PDF plugin should work on Linux Chrome, and --register-pepper-plugins works on Linux even with sandbox enabled. Review URL: http://codereview.chromium.org/3031011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53977 0039d316-1c4b-4281-b951-d872f2087c98
* base/ header cleanup. Forward declaration instead of including.erg@google.com2010-07-281-0/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3068004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53969 0039d316-1c4b-4281-b951-d872f2087c98
* Load Pepper v2 internal pdf plugin.jam@chromium.org2010-07-161-14/+0
| | | | | | Review URL: http://codereview.chromium.org/2891016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52575 0039d316-1c4b-4281-b951-d872f2087c98
* Add about:sandbox.agl@chromium.org2010-07-131-1/+28
| | | | | | | | | | | (Idea from Julien Tinnes) BUG=none TEST=Navigate to about:sandbox on Linux and see the status of the sandbox. http://codereview.chromium.org/2966003/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52176 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 52161 -Accidental checkin. Load Pepper v2 internal pdf plugin.jam@chromium.org2010-07-131-2/+1
| | | | | | | | | | Also need to uncomment pepper_plugin_registry.cc Review URL: http://codereview.chromium.org/2804037 TBR=jam@chromium.org Review URL: http://codereview.chromium.org/2968007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52165 0039d316-1c4b-4281-b951-d872f2087c98
* Load Pepper v2 internal pdf plugin.jam@chromium.org2010-07-131-1/+2
| | | | | | | Also need to uncomment pepper_plugin_registry.cc Review URL: http://codereview.chromium.org/2804037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52161 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up a comment.agl@chromium.org2010-07-121-2/+2
| | | | | | No code changes. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52081 0039d316-1c4b-4281-b951-d872f2087c98
* Checking in Lei's fix from http://codereview.chromium.org/2827024: Don't ↵jam@chromium.org2010-06-251-1/+1
| | | | | | | | | | crash if the pdf plugin couldn't be loaded. BUG=47362 TBR=thestig Review URL: http://codereview.chromium.org/2852026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50814 0039d316-1c4b-4281-b951-d872f2087c98
* Internal plugin needs to be loaded in a different place for the Linux sandbox.jam@chromium.org2010-06-171-0/+14
| | | | | | Review URL: http://codereview.chromium.org/2817012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50066 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49982 - patchthakis@chromium.org2010-06-161-5/+0
| | | | | | | TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/2825006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50002 0039d316-1c4b-4281-b951-d872f2087c98
* patchthakis@chromium.org2010-06-161-0/+5
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49982 0039d316-1c4b-4281-b951-d872f2087c98
* Log the errno when the zygote fails to fork.agl@chromium.org2010-06-091-1/+1
| | | | | | BUG=46114 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49288 0039d316-1c4b-4281-b951-d872f2087c98
* Fix typo which was causing unneeded logging messages.agl@chromium.org2010-04-191-1/+3
| | | | | | | | BUG=41970 http://codereview.chromium.org/1591039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44913 0039d316-1c4b-4281-b951-d872f2087c98
* SELinux: add basic policy.agl@chromium.org2010-04-191-20/+24
| | | | | | | | | | | | | | | | This patch removes the chromium_zygote_t type and adds a chromium_renderer_t type. Also, a basic policy for chromium_renderer_t is included. I decided not to try to have a different policy for the zygote since it just makes things more complex for little reason. BUG=none TEST=none http://codereview.chromium.org/1104002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44908 0039d316-1c4b-4281-b951-d872f2087c98
* posix: handle the return value of close() in more places.evan@chromium.org2010-04-161-2/+4
| | | | | | | | | | | | | | | Generally, we don't expect it to fail and there isn't much we can do anyway, but it's good to at least consider each case and do something so we can continue to receive warnings in situations where we forgot to check the return code. (Bonus extra bugfix: use int where we previously had bool. I think it compiles to the same thing but the old code was definitely wrong.) Review URL: http://codereview.chromium.org/1564037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44844 0039d316-1c4b-4281-b951-d872f2087c98
* linux: enable seccomp sandbox by defaultevan@chromium.org2010-03-301-7/+3
| | | | | | | | | | | | | | | It seems the best way to keep the seccomp sandbox working is to have everyone's development environment have it on by default. So we turn on the seccomp sandbox, but only for non-official builds. If the build-time flag is set: --disable-seccomp-sandbox turns it off. If the build-time flag is *not* set: --enable-seccomp-sandbox turns it on. BUG=36133 Review URL: http://codereview.chromium.org/1558003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43122 0039d316-1c4b-4281-b951-d872f2087c98
* linux: make seccomp sandbox also use OOP font loadingevan@chromium.org2010-03-291-25/+29
| | | | | | | | | | | | | | Within the SUID sandbox, we IPC up to the browser process when we need to open font files. We should do the same thing within the seccomp sandbox. (Note that in test_shell and in SELinux, which uses finer grained file access permissions, we don't need to do such a thing.) BUG=26522 Review URL: http://codereview.chromium.org/1541002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42986 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: fix SELinux support.agl@chromium.org2010-03-171-9/+15
| | | | | | | | (First of a series to improve our SELinux support) http://codereview.chromium.org/1000008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41867 0039d316-1c4b-4281-b951-d872f2087c98
* Zygote: Clarify relationship between HandleForkRequest() and ChromeMain()mseaborn@chromium.org2010-03-081-11/+13
| | | | | | | | | | | | | | HandleForkRequest() returns to ChromeMain() multiple times, once per fork(). Add comments to indicate this, because this type of control flow is unusual. HandleReapRequest() and HandleDidProcessCrash() never spawn a new renderer, so remove the possibility that these can do "return true" to do so. Review URL: http://codereview.chromium.org/669065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40894 0039d316-1c4b-4281-b951-d872f2087c98
* Rename constants to be consistent with the names used inagl@chromium.org2010-02-231-4/+4
| | | | | | | | | | | | | | sandbox/linux/suid/sandbox.c, in order to make the source more greppable. With inconsistent constant names it was harder to find who sends the message that sandbox.c receives. http://codereview.chromium.org/652108 (Patch from mseaborn@chromium.org) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39793 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "linux: enable seccomp sandbox by default"evan@chromium.org2010-02-181-7/+7
| | | | | | This reverts commit r39358. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39359 0039d316-1c4b-4281-b951-d872f2087c98
* linux: enable seccomp sandbox by defaultevan@chromium.org2010-02-181-7/+7
| | | | | | | | | | | This is an experiment. Hopefully it will flush out problems. Use --disable-seccomp-sandbox to turn it off. BUG=36133 Review URL: http://codereview.chromium.org/647017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39358 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Only close kZygoteIdDescriptor when using the SUID sandbox.thestig@chromium.org2010-02-171-1/+2
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/608020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39189 0039d316-1c4b-4281-b951-d872f2087c98
* linux: unused variable in ARM buildjoel@chromium.org2009-11-191-0/+3
| | | | | | | | | | The seccomp sandbox is conditional on ARCH_CPU_X86_FAMILY. When building for !ARCH_CPU_X86_FAMILY the variable g_proc_fd is unused, leading to a build error when -Werror is turned on. Review URL: http://codereview.chromium.org/397040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32453 0039d316-1c4b-4281-b951-d872f2087c98
* Hide seccomp sandbox calls from non-x86 machinesjoel@chromium.org2009-11-181-0/+7
| | | | | | | | | | | | The seccomp sandbox is not built on ARM as it contains x86 specific code. However, there are a pair of calls to seccomp sandbox functions in the zygote initialisation, this hides those calls behind the ARCH_CPU_X86_FAMILY define. Without this the ARM build does not link. Review URL: http://codereview.chromium.org/402009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32278 0039d316-1c4b-4281-b951-d872f2087c98
* Allow the seccomp sandbox to be enabled, even if the suid sandbox hasmarkus@chromium.org2009-11-071-7/+37
| | | | | | | | | | already put a chroot() jail around it. The only tricky part is access to /proc/self/maps, but we can safely pass in an open file descriptor. BUG=26527 Review URL: http://codereview.chromium.org/371047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31372 0039d316-1c4b-4281-b951-d872f2087c98
* Only enable the seccomp sandbox, if the machine actually has kernel support formarkus@chromium.org2009-11-041-0/+17
| | | | | | | | | | | | | this feature, and if no other obstacle prevents us from enabling it. Otherwise, we print a warning message and continue running without the sandbox. This is not ideal, but given the non-trivial number of users who might not have seccomp enabled by default, this seems the prudent approach. BUG=26521 Review URL: http://codereview.chromium.org/341092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30966 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for getting the real process id from within the suid sandbox. ↵thestig@chromium.org2009-11-041-26/+107
| | | | | | | | | | | | | | | | | | The browser processes gets the real process ids, so they look correct in the task manager. When it asks the zygote to reap a process, we use the process ids internal to the sandbox. While we are at it, reap the sandbox process after it clones the zygote and figure out zygote's actual process id. Save the actual process id rather than that of the sandbox. Original review: http://codereview.chromium.org/262020 This is try 2 - initialize the sandbox host and zygote for InProcessBrowserTest. TBR=agl BUG=20012, 20714, 23072 TEST=Process IDs for renderers should be correct in the task manager and you should be able to use the end process button to kill them. Review URL: http://codereview.chromium.org/361002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30948 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 30938 - Add support for getting the real process id from within the ↵thestig@chromium.org2009-11-041-107/+26
| | | | | | | | | | | | | suid sandbox. The browser processes gets the real process ids, so they look correct in the task manager. When it asks the zygote to reap a process, we use the process ids internal to the sandbox. While we are at it, reap the sandbox process after it clones the zygote and figure out zygote's actual process id. Save the actual process id rather than that of the sandbox. BUG=20012,20714,23072 TEST=Process IDs for renderers should be correct in the task manager and you should be able to use the end process button to kill them. Review URL: http://codereview.chromium.org/262020 Review URL: http://codereview.chromium.org/359001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30939 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for getting the real process id from within the suid sandbox. ↵thestig@chromium.org2009-11-041-26/+107
| | | | | | | | | | | | The browser processes gets the real process ids, so they look correct in the task manager. When it asks the zygote to reap a process, we use the process ids internal to the sandbox. While we are at it, reap the sandbox process after it clones the zygote and figure out zygote's actual process id. Save the actual process id rather than that of the sandbox. BUG=20012,20714,23072 TEST=Process IDs for renderers should be correct in the task manager and you should be able to use the end process button to kill them. Review URL: http://codereview.chromium.org/262020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30938 0039d316-1c4b-4281-b951-d872f2087c98
* CommandLine: rejigger how initialization works.evan@chromium.org2009-10-121-1/+4
| | | | | | | | | | I'm attempting to clean up CommandLine. This change rearranges how initialization is done. I am trying to eliminate redundant functions; more will come in subsequent changes. Review URL: http://codereview.chromium.org/273018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28752 0039d316-1c4b-4281-b951-d872f2087c98
* Add a dummy call to icu::TimeZone.createDefault() before the sandbox kicks in.jshin@chromium.org2009-10-051-0/+9
| | | | | | | | | | | This is necessary to get the datetime formatting work correctly in a renderer process (e.g. FTP directory list that is now done in a renderer process.) BUG=23361,23082 TEST=... Review URL: http://codereview.chromium.org/243060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27999 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: add support for SELinux.agl@chromium.org2009-09-151-16/+62
| | | | | | | | | | | | | | | | | | This patch adds support for a selinux GYP variable which, when set to one, does the following: * Removes the seccomp sandbox from the compile * Removes support for SUID sandboxing from the zygote * Performs a dynamic transition, in the zygote, to chromium_renderer_t. This code requires that the system policy have a sensible set of access vectors for the chromium_renderer_t type. Such a policy will be found in sandbox/selinux in the future. http://codereview.chromium.org/203071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26257 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: set the process title (that shows in "ps" etc.) of renderers ↵mdm@chromium.org2009-09-101-0/+1
| | | | | | | | | | | correctly when using the zygote. BUG=none TEST=none Review URL: http://codereview.chromium.org/196009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25877 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: work around broken dlsym's.agl@chromium.org2009-09-081-2/+40
| | | | | | | | | | | | | | | | It appears that Nvidia's libGL.so is overriding dlopen/dlsym with versions that don't fully function. So far, all the users reporting this have been running Gentoo, but it might just be that they have up-to-date drivers. The report[1] suggests that all drivers >= 180 have this issue. [1] http://www.nvnews.net/vbulletin/showthread.php?t=132259 BUG=16800 http://codereview.chromium.org/201055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25671 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: don't use GOT patching to intercept localtime(_r)agl@chromium.org2009-08-061-57/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our current GOT patching code is platform specific and fails to work when V8 is built as a library. Instead we define global functions for those functions which we wish to override. Since we will be first in the dynamic resolution order, the dynamic linker will point callers to our versions of these functions. However, we have the same binary for both the browser and the renderers, which means that our overrides will apply in the browser too. The global |g_am_zygote_or_renderer| is true iff we are in a zygote or renderer process. It's set in ZygoteMain and inherited by the renderers when they fork. (This means that it'll be incorrect for global constructor functions and before ZygoteMain is called - beware). Our replacement functions can check this global and either proxy the call to the browser over the sandbox IPC (http://code.google.com/p/chromium/wiki/LinuxSandboxIPC) or they can use dlsym with RTLD_NEXT to resolve the symbol, ignoring any symbols in the current module. TEST=Run javascript:alert(new Date().getTimezoneOffset()). It shouldn't return 0 unless you're actually in GMT. BUG=16800 http://codereview.chromium.org/165011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22636 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: preload ffmpeg in the zygote.agl@chromium.org2009-08-051-0/+7
| | | | | | | | | | | | | | | | | | When using the sandbox, the renderer cannot load the ffmpeg shared objects from disk. So we load them in the zygote before the sandbox is started. (Note that this doesn't get media working, but it's a start.) BUG=18329 http://codereview.chromium.org/159841 (Note: relanding. Original landing in r22392, reverted in r22405 due to check-deps failure.) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22492 0039d316-1c4b-4281-b951-d872f2087c98