summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_thread_impl.h
Commit message (Collapse)AuthorAgeFilesLines
* Add requestor_url to ConnectToService()davemoore@chromium.org2014-06-041-2/+3
| | | | | | | | | R=darin@chromium.org, darin BUG= Review URL: https://codereview.chromium.org/318773002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274937 0039d316-1c4b-4281-b951-d872f2087c98
* Add name to servicesdavemoore@chromium.org2014-05-301-0/+1
| | | | | | | | | R=darin@chromium.org, darin BUG= Review URL: https://codereview.chromium.org/304273004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273912 0039d316-1c4b-4281-b951-d872f2087c98
* Sends NetworkChangeNotifier connection type changes to Blink, to support ↵jkarlin@chromium.org2014-05-291-1/+5
| | | | | | | | | | | | NetInfo v3. Design doc: https://docs.google.com/a/chromium.org/document/d/1LTk9uVMGi4kurzcF5ellsAJReTF31fFJMHrQwSVtBjc/ BUG=368358 Review URL: https://codereview.chromium.org/298803006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273555 0039d316-1c4b-4281-b951-d872f2087c98
* Shell / ShellClient -> ServiceProviderdavemoore@chromium.org2014-05-271-2/+2
| | | | | | | | | | | Try #2 of https://codereview.chromium.org/298653010/ Fixed newly introduced GN dependency. TBR=darin@chromium.org BUG= Review URL: https://codereview.chromium.org/298003008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272989 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 272983 "Change Shell / ShellClient to ServiceProvider"davemoore@chromium.org2014-05-271-2/+2
| | | | | | | | | | | | | | | > Change Shell / ShellClient to ServiceProvider > > BUG= > R=darin@chromium.org > > Review URL: https://codereview.chromium.org/298653010 TBR=davemoore@chromium.org Review URL: https://codereview.chromium.org/304593002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272984 0039d316-1c4b-4281-b951-d872f2087c98
* Change Shell / ShellClient to ServiceProviderdavemoore@chromium.org2014-05-271-2/+2
| | | | | | | | | BUG= R=darin@chromium.org Review URL: https://codereview.chromium.org/298653010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272983 0039d316-1c4b-4281-b951-d872f2087c98
* Rename RenderThreadImpl::media_stream_factory_ to ↵perkj@chromium.org2014-05-221-1/+1
| | | | | | | | | | | RenderTreadImpl::peer_connection_factory_ The MediaStreamDependencyFactory has switched name to PeerConectionFactory but this instance variable name was missed. Removed untrue comment about media_stream_dependency_. Review URL: https://codereview.chromium.org/292343002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272233 0039d316-1c4b-4281-b951-d872f2087c98
* Renamed MediaStreamDependencyFactory to PeerConnectionDependencyFactory.perkj@chromium.org2014-05-161-3/+3
| | | | | | | | | | | | | PeerConnectionDependencyFactory should only deal with MediaStream tracks that are sent on a PeerConnection and thus is not a general MediaStream factory. This cl also moves PeerconnectionDependencyFactory to media/webrtc since it depends on libjingle/webrtc files. Note that PeerConnectionDependencyFactory still have some methods related to general audio input that should be further refactored. BUG=323223 Review URL: https://codereview.chromium.org/272043003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270977 0039d316-1c4b-4281-b951-d872f2087c98
* Gamepad API: add support for connection eventsb.kelemen@samsung.com2014-05-091-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | Co-authored with Brandon Jones. This CL continues the work of updating the Gamepad API to latest spec. IPC's added for connected and disconnected events. The connection state is observed by GamepadProvider together with polling. The other option would be to add logic to each platform fetcher. Doing it in GamepadProvider avoids duplicated logic and I think it is a bit simpler and more consistent with the polling base nature of the gamepad implementation. Extra care has been taken to make it consistent with the policy of not exposing gamepad data to the page before a user gesture is observed. When a new page starts listening it will not get any events until we see a user gesture. When we see it we notify it about all the connected pads. Now we stop polling as soon as blink is no more interested in gamepad data. BUG=344556 Review URL: https://codereview.chromium.org/195873019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269189 0039d316-1c4b-4281-b951-d872f2087c98
* Add flag to enable rendering of text using signed distance fields.jvanverth@google.com2014-05-071-0/+5
| | | | | | | | | | | | This change plumbs through a flag that turns on distance field text in Skia when doing GPU rasterization, as requested by vangelis@chromium.org. BUG=368468 Review URL: https://codereview.chromium.org/266743003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268758 0039d316-1c4b-4281-b951-d872f2087c98
* Rearrange GLImage API to create them with a usage typealexst@chromium.org2014-05-061-1/+2
| | | | | | | | | | instead of using usage type while mapping the buffer. BUG= Review URL: https://codereview.chromium.org/255713008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268548 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add initial GPU-to-GPU copy rasterizer implementation.reveman@chromium.org2014-05-011-2/+5
| | | | | | | | | | | | | | | | | | | | This adds a derived RasterWorkerPool class that use a smaller resource pool for staging and initialize tile resources by copying the contents of a staging resource to a tile resource using CHROMIUM_copy_texture. Zero-copy is still used by default when map-image rasterizer is enabled using --enable-map-image. GPU-to-GPU copy rasterizer is used when --disable-zero-copy switch is provided in combination with --enable-map-image. This zero-copy setting is also added to about:flags. BUG=269808 TBR=sky Review URL: https://codereview.chromium.org/236313006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267455 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce EmbeddedWorkerDevToolsAgent.horo@chromium.org2014-04-301-2/+2
| | | | | | | | | | | | EmbeddedWorkerDevToolsAgent is registered to RenderThreadImpl with worker_devtools_agent_route_id which will be introduced by https://codereview.chromium.org/252633003. This change depends on https://codereview.chromium.org/252633003/. BUG=358657 Review URL: https://codereview.chromium.org/251723002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267363 0039d316-1c4b-4281-b951-d872f2087c98
* Move IPC::MessageFilter and router to a separate filedmichael@chromium.org2014-04-251-3/+3
| | | | | | | | | | | | | | | There are no changes in implementation in this CL. This is in preparation for making IPC::Channel support filters on the Channel's thread. BUG=364241 TBR=cpu@chromium.org,nduca@chromium.org cpu: OWNERS for win8 nduca: OWNERS for components/tracing Review URL: https://codereview.chromium.org/245443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266057 0039d316-1c4b-4281-b951-d872f2087c98
* Remove offscreen compositor contexts.danakj@chromium.org2014-04-241-2/+0
| | | | | | | | | | | | | | | After https://codereview.chromium.org/250083002/ cc no longer uses an offscreen context for ganesh filters. Instead using the main onscreen context. So, delete the code to create offscreen contexts for the compositor. R=abarth@chromium.org, boliu@chromium.org, enne@chromium.org, piman@chromium.org, enne, piman BUG=366132,366130 Review URL: https://codereview.chromium.org/251343002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265974 0039d316-1c4b-4281-b951-d872f2087c98
* Move Mojo channel initialization closer to IPC::Channel setupdarin@chromium.org2014-04-241-0/+5
| | | | | | | | | | | | | | | | | | | This CL introduces two new content classes: - MojoApplicationHost encapsulates what's needed to host a Mojo App using Chrome IPC to bootstrap. - MojoApplication represents what's needed to be a Mojo App using Chrome IPC to bootstrap. The RenderProcess and RenderProcessHost interfaces are replaced with WebUISetup and WebUISetupClient interfaces. This way the interface is more specific to the service of setting up WebUI. WebUISetupClient is empty and uninteresting. RenderProcessHostImpl no longer deals with WebUI setup. That is all done directly by RenderViewHostImpl by talking to the WebUISetup service. Service names get defined in content/common/mojo/mojo_service_names.{h,cc}. TBR=sky@chromium.org, tsepez@chromium.org Originally reviewed at https://codereview.chromium.org/236813002/ Review URL: https://codereview.chromium.org/256403004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265962 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 265693 "Move Mojo channel initialization closer to IPC::C..."brianderson@chromium.org2014-04-231-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This is causing runhooks failures on the iOS build bots. > Move Mojo channel initialization closer to IPC::Channel setup > > This CL introduces two new content classes: > - MojoApplicationHost encapsulates what's needed to host a Mojo App using Chrome IPC to bootstrap. > - MojoApplication represents what's needed to be a Mojo App using Chrome IPC to bootstrap. > > The RenderProcess and RenderProcessHost interfaces are replaced with WebUISetup and WebUISetupClient interfaces. This way the interface is more specific to the service of setting up WebUI. > > WebUISetupClient is empty and uninteresting. RenderProcessHostImpl no longer deals with WebUI setup. That is all done directly by RenderViewHostImpl by talking to the WebUISetup service. > > Service names get defined in content/common/mojo/mojo_service_names.{h,cc}. > > R=sky@chromium.org, tsepez@chromium.org > > Review URL: https://codereview.chromium.org/236813002 TBR=darin@chromium.org Review URL: https://codereview.chromium.org/247953005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265705 0039d316-1c4b-4281-b951-d872f2087c98
* Move Mojo channel initialization closer to IPC::Channel setupdarin@chromium.org2014-04-231-0/+5
| | | | | | | | | | | | | | | | | | This CL introduces two new content classes: - MojoApplicationHost encapsulates what's needed to host a Mojo App using Chrome IPC to bootstrap. - MojoApplication represents what's needed to be a Mojo App using Chrome IPC to bootstrap. The RenderProcess and RenderProcessHost interfaces are replaced with WebUISetup and WebUISetupClient interfaces. This way the interface is more specific to the service of setting up WebUI. WebUISetupClient is empty and uninteresting. RenderProcessHostImpl no longer deals with WebUI setup. That is all done directly by RenderViewHostImpl by talking to the WebUISetup service. Service names get defined in content/common/mojo/mojo_service_names.{h,cc}. R=sky@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/236813002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265693 0039d316-1c4b-4281-b951-d872f2087c98
* GpuChannelHost: allocate route IDs on the client (renderer) side.hshi@chromium.org2014-04-081-2/+3
| | | | | | | | | | | | | This avoids a timing-sensitive bug where the pattern of non-Host-allocated route IDs are in conflict with non-Host-initiated-first-IPC. BUG=360276 TEST=trybot and manual testing. R=fischman@chromium.org, palmer@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/227433010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262553 0039d316-1c4b-4281-b951-d872f2087c98
* Don't handle DispatchOnInspectorBackend msg for SharedWorkers in ↵horo@chromium.org2014-03-201-0/+3
| | | | | | | | | | | | DevToolsAgentFilter. DevToolsAgentMsg_DispatchOnInspectorBackend message for SharedWorkers must be handled in SharedWorkerDevToolsAgent. BUG=327256 Review URL: https://codereview.chromium.org/198753002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258237 0039d316-1c4b-4281-b951-d872f2087c98
* Add --disable-low-res-tiling. Disable low res tiling to save power.anton@chromium.org2014-03-181-0/+3
| | | | | | | | | | | | | | | | | | | Generating low resolution tiles uses about 10% of the power used by pages that have gif animations (measured on Nexus 4). These are the most common pages on which chrome consumes above baseline power. It is unclear whether low resolutions are still valuable. It is likely that having low resolution tiles is more useful on older devices. For the moment providing this as a flag, so that it is easier to investigate whether dropping low resolution tiles is reasonable. Default behavior is unchanged, low resolution tiles are enabled. BUG= Review URL: https://codereview.chromium.org/196473007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257790 0039d316-1c4b-4281-b951-d872f2087c98
* Notify the entire renderer of timezone changes instead of each frame ↵jochen@chromium.org2014-03-131-0/+5
| | | | | | | | | | | | | | individually The timezone cache in v8 is a global property, so we shouldn't have to clear it several times. BUG=348856 R=tsepez@chromium.org,marja@chromium.org,kalman@chromium.org Review URL: https://codereview.chromium.org/194643003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256876 0039d316-1c4b-4281-b951-d872f2087c98
* Implement renderer process side handler of WorkerProcessMsg_CreateWorker ↵horo@chromium.org2014-03-121-0/+3
| | | | | | | | | | | | message. WorkerProcessMsg_CreateWorker will be sent from the browser process to a renderer process if "enable-embedded-shared-worker" flag is set after https://codereview.chromium.org/154263004/ is landed. BUG=327256 Review URL: https://codereview.chromium.org/194393002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256552 0039d316-1c4b-4281-b951-d872f2087c98
* Define a --force-gpu-rasterization flagajuma@chromium.org2014-03-111-0/+23
| | | | | | | | | | | | | | | This flag forces gpu rasterization for all layers (that is, it behaves the way --enable-gpu-rasterization behaved previously). --enable-gpu-rasterization now enables gpu rasterization only on layers that have a GPU rasterization hint. Since this hint will be added in a later CL, this flag is currently a no-op. BUG=329722 Review URL: https://codereview.chromium.org/189883009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256143 0039d316-1c4b-4281-b951-d872f2087c98
* Add RenderThread::GetShutdownEvent().teravest@chromium.org2014-03-061-0/+1
| | | | | | | | | | | | This change adds RenderThread::GetShutdownEvent() to the public content API. This is required for code outside of content/ that wants to safely use interfaces like SyncChannel. BUG= Review URL: https://codereview.chromium.org/186973002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255275 0039d316-1c4b-4281-b951-d872f2087c98
* Remove GpuChannelHostFactory::GetShutDownEvent().teravest@chromium.org2014-03-031-2/+0
| | | | | | | | | | | | | | | I'd like to add GetShutDownEvent() to RenderThread. However, that would cause RenderThreadImpl to have two base classes specify that method, which is pretty weird. This removes GpuChannelHostFactory::GetShutDownEvent() and provides the shutdown event in the GpuChannelHost constructor instead. BUG= Review URL: https://codereview.chromium.org/181413003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254515 0039d316-1c4b-4281-b951-d872f2087c98
* Move ContextProvider binding to inside GpuVideoAcceleratorFactorysheu@chromium.org2014-02-281-2/+2
| | | | | | | | | | | | | | | | Bind the ContextProvider inside the GpuVideoAcceleratorFactory itself, so the Factory can decide appropriately what to do in casae of binding failure. Also: replace references to RendererGpuVideoAcceleratorFactory with references to its superclass, GpuVideoAcceleratorFactory. BUG=345424 TEST=local run, build on CrOS snow, desktop Linux TBR=avi Review URL: https://codereview.chromium.org/176963020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254014 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 253259 "Move ContextProvider binding to inside GpuVideoAc..."pkasting@chromium.org2014-02-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Broke 100+ WebKit layout tests. > Move ContextProvider binding to inside GpuVideoAcceleratorFactory > > Bind the ContextProvider inside the GpuVideoAcceleratorFactory itself, so the > Factory can decide appropriately what to do in casae of binding failure. > > Also: replace references to RendererGpuVideoAcceleratorFactory with references > to its superclass, GpuVideoAcceleratorFactory. > > BUG=345424 > TEST=local build on desktop Linux > R=avi@chromium.org, fischman@chromium.org > > Review URL: https://codereview.chromium.org/171773014 TBR=sheu@google.com Review URL: https://codereview.chromium.org/176923018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253326 0039d316-1c4b-4281-b951-d872f2087c98
* Move ContextProvider binding to inside GpuVideoAcceleratorFactorysheu@google.com2014-02-251-2/+2
| | | | | | | | | | | | | | | | Bind the ContextProvider inside the GpuVideoAcceleratorFactory itself, so the Factory can decide appropriately what to do in casae of binding failure. Also: replace references to RendererGpuVideoAcceleratorFactory with references to its superclass, GpuVideoAcceleratorFactory. BUG=345424 TEST=local build on desktop Linux R=avi@chromium.org, fischman@chromium.org Review URL: https://codereview.chromium.org/171773014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253259 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: make naming convention be consistenttoyoshim@chromium.org2014-02-041-3/+3
| | | | | | | | | | | | | | | | | | | Naming cleanup based on following rules: - MidiFooBar ... use this style to be consistent with chromium - WebMIDIFooBar ... Web API name related things, or names in blink - MIDIFooBar ... APIs and structures defined by each operating systems Other cleanup: - Modify some TODO(crogers) to TODO(toyoshim) - Add some crbug links. - Remove some obsolete UI TODOs related to infobars BUG=none TEST=build for all platforms Review URL: https://codereview.chromium.org/151343002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248686 0039d316-1c4b-4281-b951-d872f2087c98
* Move preferred scrollbar style preference change listening from renderer to ↵rsesek@chromium.org2014-01-231-0/+5
| | | | | | | | | | | | | | browser, 2 of 3. This adds the preference observer to the browser and starts sending the parameter to the renderer over IPC when it changes. Blink will not use this until part 3 lands. BUG=306348 Review URL: https://codereview.chromium.org/136443008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246635 0039d316-1c4b-4281-b951-d872f2087c98
* Removed requirement for the renderer to know it's process IDbajones@chromium.org2014-01-211-8/+0
| | | | | | | | | | Process ID is now patched into the latency info once it reaches the browser process BUG=333501 Review URL: https://codereview.chromium.org/140663003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246149 0039d316-1c4b-4281-b951-d872f2087c98
* Disable the idle handler timer when no action is expected.qsr@chromium.org2014-01-201-0/+1
| | | | | | | | | | | | | On Android, the webkit timer are disabled after the application is in the background for 5 minutes. When this happens, there is no reason to let the idle handler timer run indefinitly. This CL disables the timer once v8 reported that it will not take any further action. BUG=333875 Review URL: https://codereview.chromium.org/136903002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245908 0039d316-1c4b-4281-b951-d872f2087c98
* Added warning about not using a to-be-deleted method.kbr@chromium.org2014-01-141-3/+2
| | | | | | | | BUG=333501 Review URL: https://codereview.chromium.org/135363002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244704 0039d316-1c4b-4281-b951-d872f2087c98
* Use ContextProvider subclass to provide WGC3D pointersjamesr@chromium.org2014-01-141-1/+3
| | | | | | | | | | | | | | | Some cc::ContextProvider instances will also need to provide WebGraphicsContext3D* interfaces to the underlying GL context, but not all. This adds a subclass of ContextProvider in content:: to use for these users. The compositor itself doesn't need the WGC3D accessor so it just uses the base class. BUG=181120 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=244383 Review URL: https://codereview.chromium.org/126093010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244697 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate video capture thread in rendererhclam@chromium.org2014-01-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main motivation of this change is to remove the video capture thread in the renderer. All users of a video capture device already handles the video frame on their thread. There is no need to call the clients with an additional thread. Summary of this change: * Video capture thread eliminated VideoCaptureImpl now runs on the IO thread. Clients are called on the IO thread. * Simplified VideoCaptureImplManager We still need to keep this object for the purpose of sharing a VideoCaptureImpl object with multiple clients. It should own these objects and maintain the usage count. A couple clean up items are done on this class: * It doesn't own the video capture thread now. * It is now a render thread only object. * It maintains refcount of a VideoCaptureImpl explicitly. * It is no longer refcounted. * Clients access it through RenderThreadImpl. Which ensures usage is on the render thread. * New VideoCaptureHandle class Object of this class is returned by VideoCaptureImplManager to give access to a media::VideoCapture object. It is purely a wrapper and helps to do refcounting on the render thread. Testing: Added unit tests for VideoCaptureImplManager to test refcounting. Also updated unit test for VideoCaptureImpl due to the threading changes. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=244074 Review URL: https://codereview.chromium.org/120893002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244687 0039d316-1c4b-4281-b951-d872f2087c98
* Move the guts of user_metrics to a new static lib in //base/metrics.ben@chromium.org2014-01-131-1/+2
| | | | | | | | | | | I retained a couple of wrapper functions in content that post back to the UI thread if they are called from another thread. All existing code will continue to use these wrappers. The intent is that some code that I don't want to depend on content that only lives on the UI thread can now call //base/metrics code directly. R=isherman@chromium.org, jam@chromium.org http://crbug.com/332504 Review URL: https://codereview.chromium.org/129223004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244580 0039d316-1c4b-4281-b951-d872f2087c98
* Remove some code left over after r191766.jam@chromium.org2014-01-131-1/+0
| | | | | | | | R=kristianm@chromium.org, pliard@chromium.org Review URL: https://codereview.chromium.org/136533005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244541 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 244383 "Use ContextProvider subclass to provide WGC3D poi..."kbr@chromium.org2014-01-131-3/+1
| | | | | | | | | | | | | | | | | | | | | | | Likely cause of WebGL conformance test crashes on Android GPU bot. BUG=333761,181120 > Use ContextProvider subclass to provide WGC3D pointers > > Some cc::ContextProvider instances will also need to provide WebGraphicsContext3D* > interfaces to the underlying GL context, but not all. This adds a subclass of ContextProvider > in content:: to use for these users. The compositor itself doesn't need the WGC3D > accessor so it just uses the base class. > > BUG=181120 > > Review URL: https://codereview.chromium.org/126093010 TBR=jamesr@chromium.org Review URL: https://codereview.chromium.org/136273002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244470 0039d316-1c4b-4281-b951-d872f2087c98
* Use ContextProvider subclass to provide WGC3D pointersjamesr@chromium.org2014-01-111-1/+3
| | | | | | | | | | | | | Some cc::ContextProvider instances will also need to provide WebGraphicsContext3D* interfaces to the underlying GL context, but not all. This adds a subclass of ContextProvider in content:: to use for these users. The compositor itself doesn't need the WGC3D accessor so it just uses the base class. BUG=181120 Review URL: https://codereview.chromium.org/126093010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244383 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 244074 "Eliminate video capture thread in renderer"thakis@chromium.org2014-01-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Caused lots of races on the tsan bot: http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20Tests%20%28tsan%29%283%29?numbuilds=200 Example: ThreadSanitizer:Race fun:std::_Rb_tree::_M_begin fun:std::_Rb_tree::~_Rb_tree fun:std::map::~map fun:content::VideoCaptureImpl::~VideoCaptureImpl fun:content::MockVideoCaptureImpl::~MockVideoCaptureImpl fun:content::MockVideoCaptureImpl::~MockVideoCaptureImpl fun:linked_ptr::depart fun:linked_ptr::~linked_ptr fun:std::pair::~pair fun:std::pair::~pair fun:__gnu_cxx::new_allocator::destroy fun:std::_Rb_tree::_M_destroy_node fun:std::_Rb_tree::_M_erase fun:std::_Rb_tree::~_Rb_tree fun:std::map::~map fun:content::VideoCaptureImplManager::~VideoCaptureImplManager ThreadSanitizer:Race fun:std::_Rb_tree::_M_begin fun:std::_Rb_tree::~_Rb_tree fun:std::map::~map fun:content::VideoCaptureImpl::~VideoCaptureImpl fun:content::VideoCaptureImplTest::MockVideoCaptureImpl::~MockVideoCaptureImpl fun:content::VideoCaptureImplTest::MockVideoCaptureImpl::~MockVideoCaptureImpl fun:content::VideoCaptureImplTest::~VideoCaptureImplTest fun:content::VideoCaptureImplTest_TwoClientsInSequence_Test::~VideoCaptureImplTest_TwoClientsInSequence_Test fun:content::VideoCaptureImplTest_TwoClientsInSequence_Test::~VideoCaptureImplTest_TwoClientsInSequence_Test fun:testing::Test::DeleteSelf_ > Eliminate video capture thread in renderer > > The main motivation of this change is to remove the video capture thread > in the renderer. All users of a video capture device already handles the > video frame on their thread. There is no need to call the clients with > an additional thread. > > Summary of this change: > * Video capture thread eliminated > VideoCaptureImpl now runs on the IO thread. Clients are called on the > IO thread. > * Simplified VideoCaptureImplManager > We still need to keep this object for the purpose of sharing a > VideoCaptureImpl object with multiple clients. It should own these > objects and maintain the usage count. A couple clean up items are done > on this class: > * It doesn't own the video capture thread now. > * It is now a render thread only object. > * It maintains refcount of a VideoCaptureImpl explicitly. > * It is no longer refcounted. > * Clients access it through RenderThreadImpl. Which ensures usage is > on the render thread. > * New VideoCaptureHandle class > Object of this class is returned by VideoCaptureImplManager to give > access to a media::VideoCapture object. It is purely a wrapper and > helps to do refcounting on the render thread. > > Testing: > Added unit tests for VideoCaptureImplManager to test refcounting. > Also updated unit test for VideoCaptureImpl due to the threading > changes. > > Review URL: https://codereview.chromium.org/120893002 TBR=hclam@chromium.org Review URL: https://codereview.chromium.org/135683002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244358 0039d316-1c4b-4281-b951-d872f2087c98
* Fix idle handlers not being called. The problem was that ↵jam@chromium.org2014-01-101-2/+7
| | | | | | | | | | | RenderThread::AddRoute was assuming that each listener was a RenderWidget. That used to be the case originally, but hasn't been like that for a while (i.e. also see ChromeV8ExtensionHandler and ChromePluginPlaceholder). BUG=333051 R=nasko@chromium.org Review URL: https://codereview.chromium.org/133483002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244193 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate video capture thread in rendererhclam@chromium.org2014-01-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main motivation of this change is to remove the video capture thread in the renderer. All users of a video capture device already handles the video frame on their thread. There is no need to call the clients with an additional thread. Summary of this change: * Video capture thread eliminated VideoCaptureImpl now runs on the IO thread. Clients are called on the IO thread. * Simplified VideoCaptureImplManager We still need to keep this object for the purpose of sharing a VideoCaptureImpl object with multiple clients. It should own these objects and maintain the usage count. A couple clean up items are done on this class: * It doesn't own the video capture thread now. * It is now a render thread only object. * It maintains refcount of a VideoCaptureImpl explicitly. * It is no longer refcounted. * Clients access it through RenderThreadImpl. Which ensures usage is on the render thread. * New VideoCaptureHandle class Object of this class is returned by VideoCaptureImplManager to give access to a media::VideoCapture object. It is purely a wrapper and helps to do refcounting on the render thread. Testing: Added unit tests for VideoCaptureImplManager to test refcounting. Also updated unit test for VideoCaptureImpl due to the threading changes. Review URL: https://codereview.chromium.org/120893002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244074 0039d316-1c4b-4281-b951-d872f2087c98
* Start removing support for in-process NPAPI plugins. This was a debugging ↵jam@chromium.org2013-12-261-11/+0
| | | | | | | | | | | mode and was only supported by non-Aura Windows code. BUG=330735 R=avi@chromium.org Review URL: https://codereview.chromium.org/111613005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242552 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Add IOSurface backed GpuMemoryBuffer implementation.reveman@chromium.org2013-12-051-0/+6
| | | | | | | | | | | | This adds a GpuMemoryBuffer implementation on MacOSX that is backed by IOSurfaces. These GpuMemmoryBuffers provide zero-copy texture updates when using impl-side painting on MacOSX. BUG=321785,323338 Review URL: https://codereview.chromium.org/77023002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238841 0039d316-1c4b-4281-b951-d872f2087c98
* Use UserMetricsAction for renderer user metrics.xhwang@chromium.org2013-12-041-1/+2
| | | | | | | | | | | | | | | | | | | | | Benefits of this change: - Unified action recording. We don't need special renderer treatment in extract_actions.py. - UserMetricsAction() is shorter than RenderThread::Get()->RecordAction(). So that we can have longer action names (since the action name must be on the same line and we have 80 chars limit). - Rename RecordUserMetrics() to RecordAction() to be consistent. - Separate RecordComputedAction() from RecordAction() so that we can catch unhandled computed actions. TBR=bauerb@chromium.org R=isherman@chromium.org BUG=none TEST=none Review URL: https://codereview.chromium.org/102073005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238621 0039d316-1c4b-4281-b951-d872f2087c98
* Convert string16 to base::string16 in content.brettw@chromium.org2013-12-031-1/+2
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/102593002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238447 0039d316-1c4b-4281-b951-d872f2087c98
* Initial child-process side plumbing for starting an embedded ServiceWorker ↵kinuko@chromium.org2013-11-291-0/+6
| | | | | | | | | | | | | | | | | | | | | | | context Design assumptions (some assumptions can be tentative) for this CL: * ServiceWorkerProvider is going to be embedded in all frame/document * Browser process can tell which SWP is associated to which SW (if any), via SWP registration process that is not added yet * A newly created embedded worker context will always create its own shadow page for its loading context * A newly created embedded worker context stub will keep a ref to the embedding process No browser-side implementation / blink plumbing yet. This adds a new tiny dispatcher which listens messages solely on the renderer thread. BUG=313530 Review URL: https://codereview.chromium.org/54573002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237873 0039d316-1c4b-4281-b951-d872f2087c98
* Change WebDatabaseObserverImpl to implement public/platform's ↵kinuko@chromium.org2013-11-121-4/+0
| | | | | | | | | | | | | | | | | | | WebDatabaseObserver I'm trying to fix DatabaseObserver layering issue in blink and am going to move WebDatabaseObserver from public/web to public/platform. Depends on blink side patches: part 1: https://codereview.chromium.org/64353002/ (landed) part 2: https://codereview.chromium.org/59423003/ BUG=none TEST=layout_tests Review URL: https://codereview.chromium.org/66823002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234602 0039d316-1c4b-4281-b951-d872f2087c98
* Have Blink be told of scrollbar changes rather than paying attention itself ↵avi@chromium.org2013-11-081-1/+9
| | | | | | | | | | | (Chromium side). BUG=306348 TEST=no visible change; scrollbar changes still work Review URL: https://codereview.chromium.org/63203003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233826 0039d316-1c4b-4281-b951-d872f2087c98