| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Some functions actually return a ShmSeg, not an XID.
Review URL: http://codereview.chromium.org/519024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35359 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not OS_WIN.
Added USE_X11. Set when OS_LINUX or OS_FREEBSD is set.
Added USE_BASE_DATA_PACK for base::DataPack usage, set for OS_MACOSX,
OS_LINUX or OS_FREEBSD.
Added USE_NSS for ... nss (for crypto). Windows and MacOS use
platform-specific libraries.
All of the above cause slightly odd formulations like:
#if defined(OS_WIN)
...
#elif defined(USE_BASE_DATA_PACK)
...
#endif
Possibly should also define USE_DLL_FOR_DATA, etc? Or something?
Wrapped various references to struct stat64 and stat64() to use struct
stat and stat() for FreeBSD - but a "man stat64" on Linux suggests
that we could do the same thing for at least Linux, too, and perhaps
eliminate the wrapper?
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25599 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was a race condition when the renderer passes a TransportDIB to the plugin
process. It is possible that the renderer destroys the TransportDIB before the
plugin handles the message, in which case the plugin will fail to map the shm
handle.
This also cleans up a couple of things.
BUG=18320
Review URL: http://codereview.chromium.org/164226
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22949 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/159487
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22037 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes the location of the dummy window, cleans up some duplicate window-handling code, and tries to keep the window activation status more in sync with what it would be in a single-process system. The net result is that event handling in plugins works better, although there are still activation issues.
BUG=none
TEST=Clicks on plugins should register in the right place (assuming they register at all; there are still bugs in having them handled).
Review URL: http://codereview.chromium.org/159525
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21987 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
TBR=evmar
Review URL: http://codereview.chromium.org/149471
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20406 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This listens to tab events and tries to keep thumbnails ready to go. See
thumbnail_generator.cc for a more detailed design.
This adds a painting observer to the RenderWidgetHost to enable this new
behavior, as well as a notification to allow the thumbnail generator to hook
its observer in. There is also a new notification that a backing store has been
disabled, which required making the backing stores know about their owning
widget hosts.
This component is currently disabled. We just need to uncomment the member in
Profile and it will start to work.
Original review: http://codereview.chromium.org/118420
Review URL: http://codereview.chromium.org/126101
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18540 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be antisymmetric.
The old implementation was flawed because both of the following
comparisons were true: "{0, 1} < {1, 0}" and "{1, 0} < {0, 1}"
On Windows, std::map<> doesn't like that, and complains -- rightly so.
Review URL: http://codereview.chromium.org/93151
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14490 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal of this change is to *not* make any behavioral change, but to
instead just get all the plugin-related files linking on Linux with
a bunch of NOTIMPLEMENTED()s in the appropriate places. It's enormous
enough already without any refactorings or new features.
Changes include:
- Lots of gcc warning fixes.
- Use portable replacements for Windows-specific functions (_strdup, etc.).
- Use TransportDIB instead of just shared memory in the plugin messaging.
Note that this is not fleshed out on Linux and on Windows it just hacks
in the existing handles so there should be no functional change.
- Fix --plugin-launcher to use cross-platform APIs.
Review URL: http://codereview.chromium.org/79020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14338 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This converts Linux to using server-side backing stores. Rather than
keeping a backing store in heap memory in the browser, we create a
pixmap in the X server. This means that expose messages don't require
us to transport any images to the X server, we can just direct it to
paint from the pixmap. Also, scrolling can be performed server side
also. This greatly improves performance over remote X.
Also, shared memory transport to the X server is implemented. Shared
memory segments can be created in the renderer and mapped directly
into the X server.
Review URL: http://codereview.chromium.org/27147
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10369 0039d316-1c4b-4281-b951-d872f2087c98
|
|
This patch reworks bitmap transport on all platforms. Linux and Mac
are switched from serialising bitmaps over the IPC channel to using
shared memory. All platforms gain a shared memory mapping cache on the
host side.
The concept of a TransportDIB (device independent bitmap) is added to
encapsulate most of the platform specifics.
On Linux, we use SysV shared memory. This is because X shared pixmaps,
which predate POSIX SHM, can only use SysV. By using SysV between
renderer and browser, we open up the possibility to map the shared
memory directly from the renderer to the X server.
On Mac, we use POSIX shared memory. However, since this needs
filesystem access and the Mac renderer is sandboxed from the
filesystem, we add two new messages from renderer -> browser:
The first, AllocTransportDIB, synchronously creates a transport DIB in
the browser and passes a handle back to the renderer. The second,
FreeTransportDIB, asynchronously, notifies the browser that it may
close its handle to the shared memory region.
On Mac, the shared memory regions are identified by their inode
numbers on the wire. This means that the browser must keep handles
open to all the allocated shared memory regions (since an inode number
is insufficient to map the region). The alternative design is that the
renderer passes the file descriptor with each paint operation. Since
passing file descriptors is special case in the code, I felt that it
would be best to minimise their use. Creating and freeing transport
DIBs are relatively rare operations relative to paints and scrolls.
On Windows, most of the code remains the same, except that Windows now
uses the mapping cache added in this patch. This allows the browser to
maintain a shared memory mapping for a transport DIB over several
paints. Previously it mapped and unmapped for every operation, causing
lots of TLB and VM churn.
Review URL: http://codereview.chromium.org/21485
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10071 0039d316-1c4b-4281-b951-d872f2087c98
|