summaryrefslogtreecommitdiffstats
path: root/content/browser/browser_plugin/browser_plugin_embedder.h
Commit message (Collapse)AuthorAgeFilesLines
* Make renderer aware of browser plugin position.lazyboy@chromium.org2013-05-151-0/+4
| | | | | | | | | | | | | | | | | We need to send updated screen rects to renderer whenever the embedder's browser side has screen rect updates. This informs webkit/renderer about the correct position of browser plugin. Fix view bounds/coordinates for RWHViewGuest. Both changes together should fix a) datalist/html5 popups appearing in correct position: i. initially, ii: after moving app window, iii: after resizing app window. b) window.screenX/Y/Left/Top for guests as well. BUG=233285, 226653 TEST=Added tests, ran them on trybots. Ran PopupPositioning test in trybot for 50 times on each run, still found few flaky occurrences, will work on it more. Review URL: https://chromiumcodereview.appspot.com/14123006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200393 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed drag and drop into and out of Browser Plugin.mthiesse@chromium.org2013-05-031-0/+32
| | | | | | | | | | | | | | | | | | | | | | Only works when the --enable-browser-plugin-compositing flag is used, which causes web_contents_view_guest to be used. How the flow works: When a drag event is initiated on the web page, the BrowserPluginGuest receives an DragHostMsg_StartDragging IPC, and keeps track of that fact that it has initiated a drag event, but doesn't handle the IPC. The IPC is then passed down the chain (not sure by who) and eventually calls WebContentsViewGuest::StartDragging. WebContentsViewGuest::StartDragging calls the platform dependent WebContentsView of the embedder and starts the OS drag event. Now, we get updates on the drag event from 2 places, BrowserPlugin::handleDragStatusUpdate, and RenderViewImpl::OnDragTargetDragOver of the embedder process. BrowserPlugin::handleDragStatusUpdate goes through the guest to call RenderViewHostImpl::DragTargetDragOver on the guest process (but only when the mouse is hovering over the guest) RenderViewImpl::OnDragTargetDragOver also calls RenderViewHostImpl::DragTargetDragOver but on the embedder process, and it always calls the function, whether or not the mouse is over the guest. For that reason, we keep track of if the mouse if over the guest, and use the embedder to capture and ignore the DragTargetDragOver message on the embedder process when the mouse is over the guest (or we get a flickering mouse). Now, when the mouse is released, the native drag_host calls RenderViewImpl::OnDragSourceSystemDragEnded, which in turn calls webview()->dragSourceSystemDragEnded(); on the embedder process. However, the guest process webview() is not informed that the drag has ended, so it still blocks user input. So we send a new IPC, DragHostMsg_DragStopped to the embedder to let it inform the guest, who in turn informs the guest webview, that the drag has ended. BUG= 161112 Review URL: https://chromiumcodereview.appspot.com/12086095 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198119 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Unify Attach IPCfsamuel@chromium.org2013-05-011-4/+2
| | | | | | | | | | | | | | | | | BrowserPluginHostMsg_CreateGuest, and BrowserPluginHostMsg_Attach are two very similar IPCs that served slightly different purposes. CreateGuest was used to create a new guest renderer. Attach was used to attach to an existing (unattached) guest renderer. We might, in the future, wish to expose this as an internal API to enable shims to use BrowserPlugin as their underlying infrastructure. By unifying the two operations and adding additional security checks in BrowserPluginGuestManager, we reduce the likelihood of abuse for this API and fully define its behavior. BUG=166165 Review URL: https://chromiumcodereview.appspot.com/14327007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197526 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement window.open in guestsfsamuel@chromium.org2013-03-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sample API: function handleNewWindow(event) { // The default behavior is to discard the new window. If we don't prevent // default or event.window is no longer reachable the garbage collector will // automagically discard the window for us. event.preventDefault(); chrome.app.window.create('newwindow.html', { top: 0, left: 0, width: 640, height: 480, }, function(newwindow) { newwindow.contentWindow.onload = function(e) { var newwebview = newwindow.contentWindow.document.querySelector("webview"); event.window.attach(newwebview); } }); } webview.addEventListener('newwindow', handleNewWindow); This is implemented by reusing a lot of the existing code for the permission API. The event.window object is managed by the v8 garbage collector. The new BrowserPluginGuest's lifetime is managed by its opener as long as it's not attached. Once a BrowserPluginGuest is attached, it has an embedder WebContents, and loading of resources begins. BUG=140316 Test=WebViewTest.Shim { webViewNewWindow, webViewNewWindowTwListeners, webViewNewWindowNoPreventDefault, webViewNoReferrerLink } Review URL: https://chromiumcodereview.appspot.com/11280291 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188665 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement BrowserPluginGuestManagerfsamuel@chromium.org2013-03-061-66/+21
| | | | | | | | | | | | | | | | | | | | | This patch centralizes instance ID allocation and routing to a per-profile object called BrowserPluginGuestManager. This patch minimizes BrowserPluginEmbedder's responsibilities without entirely removing it. BrowserPluginEmbedder lives for the lifetime of an embedder WebContents. It handles IPC messages that are not directed at any particular guest process, currently those are: BrowserPluginHostMsg_AllocateInstanceID BrowserPluginHostMsg_CreateGuest, BrowserPluginHostMsg_PluginAtPositionResponse These message handlers were kept in BrowserPluginEmbedder because they either operate on the embedder (as with PluginAtPosition), or they need to reply back to the correct BrowserPluginManager. This requires an understanding of the process ID and routing ID of the origin of the message. This information does not seem particularly appropriate in BrowserPluginGuestManager because that object spans multiple embedders and potentially multiple processes (outside of Chrome Apps). BUG=174673, 140316 Test=BrowserPluginHostTest.* Review URL: https://chromiumcodereview.appspot.com/12253046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186338 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: BrowserPluginGuest manages its own lifetimefsamuel@chromium.org2013-02-201-6/+3
| | | | | | | | | | | | | | | | | | In an effort to eventually remove BrowserPluginEmbedder, I've moved a guest's lifetime management to the BrowserPluginGuest itself. 1. BrowserPluginHostMsg_PluginDestroyed messages are routed to BrowserPluginGuest. 2. A guest listens for its embedder's NOTIFICATION_RENDER_VIEW_HOST_DELETED and destroys itself. BUG=174673, 140316 Test=BrowserPluginHostTest.* Review URL: https://chromiumcodereview.appspot.com/12230028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183471 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Reduce BrowserPluginEmbedder's responsibilitiesfsamuel@chromium.org2013-02-151-20/+1
| | | | | | | | | | | | | | | | | | Attaching windows to <webview>s across Chrome App windows via window.open is currently not possible with the BrowserPluginEmbedder abstraction. In upcoming patches, a new concept, BrowserPluginGuestManager will replace BrowserPluginEmbedder to allowing routing to guests hosted across multiple Chrome App windows. Towards that end, this patch reduces the responsibilities of BrowserPluginEmbedder by moving more code into BrowserPluginGuest. BUG=140316, 174673 Test=BrowserPluginHostTest.* Review URL: https://chromiumcodereview.appspot.com/12217141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182690 0039d316-1c4b-4281-b951-d872f2087c98
* Prepare for webview compositing on MACOSX.alexst@chromium.org2013-02-071-4/+5
| | | | | | | | | | | We need to ACK buffers different when threaded compositing is not turned on. BUG=143429 Review URL: https://chromiumcodereview.appspot.com/12193021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181375 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Allocate Instance IDs in BrowserPluginEmbedder instead of ↵fsamuel@chromium.org2013-01-231-6/+9
| | | | | | | | | | | | | | | | | | | | | | | BrowserPluginManager This patch is a step towards enabling window.open. How it works: 1. On the initial navigation, BrowserPlugin asynchronously requests a new Instance ID from the browser process. 2. The request and response BrowserPluginHostMsg_AllocateInstanceIDRequest, and BrowserPluginMsg_AllocateInstanceIDResponse are managed by BrowserPluginManager. 3. Once the browser process has allocated an instance ID and relayed it to BrowserPlugin, then BrowserPlugin collects all the current state of BrowserPlugin and stores it in a BrowserPluginHostMsg_CreateGuest_Params struct and ships it to the browser process using the new instance ID to create a new guest with that initial state. Initial state includes the current value of the src attribute. 4. Once BrowserPlugin has an instance ID, it will begin sending IPCs to the browser process as state changes, rather than merely accumulating state changes in member variables. BUG=140316 Test=BrowserPluginHostTest.*, BrowserPluginTest.*, WebViewTest.* Review URL: https://chromiumcodereview.appspot.com/11956022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178167 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Minor refactor to move NavigateGuest handling to ↵fsamuel@chromium.org2013-01-151-1/+0
| | | | | | | | | | BrowserPluginGuest. BUG=none Review URL: https://codereview.chromium.org/11942003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176996 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Refactor BrowserPluginEmbedder to allow creating guests with ↵fsamuel@chromium.org2013-01-081-4/+17
| | | | | | | | | | | | | | | | | | | | openers Changes: 1. Move most of logic in BrowserPluginEmbedder:OnCreateGuest to BrowserPluginEmbedder::CreateGuest. BrowserPluginEmbedder::CreateGuest takes in an opener guest and a routing ID. BrowserPluginEmbedder::OnCreateGuest calls CreateGuest with a NULL opener. 2. WebContentsImpl::CreateGuest now takes in a routing_id, and a base_web_contents. 3. WebContentsImpl::opener() is now a public accessor. 4. BrowserPluginEmbedder::GetGuestByInstanceID and BrowserPluginEmbedder::DestroyGuestByInstanceID are now public to allow a guest to take (temporary) "ownership" of another guest until it is attached to the embedder's DOM tree. BUG=140316 Review URL: https://codereview.chromium.org/11748034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175588 0039d316-1c4b-4281-b951-d872f2087c98
* Aura/Android: Send mailbox name with every Swap message.sievers@chromium.org2012-12-211-1/+1
| | | | | | | | | | | | | | This eliminates GpuHostMsg_AcceleratedSurfaceNew and instead of using a handle to identify textures being swapped and returned, it simply uses the mailbox name. This will make it simplifier to put textures in the mailbox from the client, i.e. renderer. Review URL: https://chromiumcodereview.appspot.com/11608005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174313 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Simplify BrowserPluginHostMsg_* message routingfsamuel@chromium.org2012-12-201-77/+28
| | | | | | | | | | | | | | | | 1. Remove BrowserPluginEmbedderHelper as its no longer needed (we assume that the lifetime of the BrowserPlugin is strictly less than the lifetime of the embedder's RenderViewHost). 2. Move the bulk of BrowserPluginHostMsg_* message handling to BrowserPluginGuest. BUG=166165 Test=BrowserPluginHostTest.* Review URL: https://chromiumcodereview.appspot.com/11616008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174063 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Simplify BrowserPluginGuestHelperfsamuel@chromium.org2012-12-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | Since BrowserPlugin was first implemented, support for cross-process navigation was dropped but BrowserPlugin*Helper classes maintain a lot of complexity that was no longer necessary. This CL attempts to reduce some of this complexity by simplifying BrowserPluginGuestHelper. It is only needed now to intercept ViewHostMsg_* before arriving to RenderViewHost. It is still a separate class because RenderViewHostObserver's lifetime is managed by RenderViewHost and BrowserPluginGuest's lifetime is managed by WebContentsImpl. This refactor/simplification is a prerequisite to introducing a BrowserPluginGuestObserver class. Further changes will come in a subsequent CL to simplify the message routing from BrowserPluginEmbedderHelper --> BrowserPluginEmbedder --> BrowserPluginGuest BUG=166165 Test=BrowserPluginHostTest.* Review URL: https://codereview.chromium.org/11606005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173804 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Use asynchronous input eventsfsamuel@chromium.org2012-12-071-3/+7
| | | | | | | | | | | | | | | | | Currently, if the guest is unresponsive, we kill the guest and return control back to the embedder. This approach switches to asynchronous input events. The guest always swallows input events. This CL also introduces 'unresponsive' and 'responsive' events. BUG=149063, 153542 Test=BrowserPluginHostTest.GuestHung Review URL: https://chromiumcodereview.appspot.com/11400002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171696 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Enable Speech Bubble and Position Correctlyfsamuel@chromium.org2012-11-271-1/+1
| | | | | | | | BUG=156643 Review URL: https://codereview.chromium.org/11273056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169767 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement asynchronous Resize and Autosizefsamuel@chromium.org2012-11-261-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Resize state is grouped into two sets of params: BrowserPluginHostMsg_AutoSize_Params BrowserPluginHostMsg_ResizeGuest_Params As suggested by the names, the former is autosize state and the latter is standard resize state. This patch enables asynchronous resize and autosize state pushes to the guest process from BrowserPlugin. It also supports flow control of these state pushes. When updated autosize or resize state is pushed to the guest, the guest responds with a ViewHostMsg_UpdateRect that is then propagated to the BrowserPlugin via a BrowserPluginMsg_UpdateRect message. When BrowserPlugin is resized, if there is no pending state push without an associated UpdateRect, then BrowserPlugin allocates an appropriately sized damage buffer |pending_damage_buffer_| and issues an asynchronous "SetAutoSize" or "ResizeGuest" to the browser process with a handle to the new damage buffer. Every UpdateRect the BrowserPlugin receives holds a handle to the damage buffer that was used to copy pixels over to the embedder. Once the browser process begins to use the |pending_damage_buffer_| then the current damage buffer is dropped and the pending buffer becomes the current buffer. If resize or autosize state changes in BrowserPlugin while there's a pending damage buffer, then no additional resize messages get sent. Instead, BrowserPlugin waits until an UpdateRect arrives that uses the pending buffer before pushing new state to the browser process, and guest. BUG=155915 Review URL: https://chromiumcodereview.appspot.com/11369185 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169534 0039d316-1c4b-4281-b951-d872f2087c98
* Triggering InspectElement from context menu over a guest will open guest's ↵lazyboy@chromium.org2012-11-141-1/+21
| | | | | | | | | | | | | | devtools with correct element highlighted. BUG=140329 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=167486 Relanding after linux_clang dbg bot fix. Review URL: https://chromiumcodereview.appspot.com/11362016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167744 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting this to fix the compile failures on linux clang. please reland ↵ananta@chromium.org2012-11-131-21/+1
| | | | | | | | | | | | | | | after fixing. Revert 167486 - Triggering InspectElement from context menu over a guest will open guest's devtools with correct element highlighted. BUG=140329 Review URL: https://chromiumcodereview.appspot.com/11362016 TBR=lazyboy@chromium.org Review URL: https://chromiumcodereview.appspot.com/11275300 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167506 0039d316-1c4b-4281-b951-d872f2087c98
* Triggering InspectElement from context menu over a guest will open guest's ↵lazyboy@chromium.org2012-11-131-1/+21
| | | | | | | | | | devtools with correct element highlighted. BUG=140329 Review URL: https://chromiumcodereview.appspot.com/11362016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167486 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement AutoSizefsamuel@chromium.org2012-11-091-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | How it works: There are five new properties on BrowserPlugin: autoSize minHeight minWidth maxHeight maxWidth If autoSize is enabled, then we ask the guest for autosize. A lot of the complexity comes from the fact that the guest's size may change, while the backing store is fixed in size to avoid excessive back and forth allocation of a shared memory buffer. The damage buffer is created to fit a guest of size (maxWidth, maxHeight). ViewHostMsg_UpdateRect_Params has a view_size parameter that indicates the size of guest. We carry that value into the embedder. Some code was added to the embedder's backing store to clear the backing store. This is called when view_size changes to clear out any pixels outside the current view_size's bounds. The basic plumbing was landed already. This patch completes this work. BUG=157620 Test=BrowserPluginHostTest.AutoSizeBeforeNavigation, BrowserPluginHostTest.AutoSizeAfterNavigation, BrowserPluginTest.AutoSizeAttributes Review URL: https://chromiumcodereview.appspot.com/11360106 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166948 0039d316-1c4b-4281-b951-d872f2087c98
* BrowserPlugin: Move resize logic to BrowserPluginGuestfsamuel@chromium.org2012-11-051-5/+0
| | | | | | | | | | | | | | | | | | I'm working on AutoSize and I need to call the resize code from BrowserPluginGuest. This patch moves the complexity of BrowserPluginEmbedder::ResizeGuest to BrowserPluginGuest::Resize which feels appropriate. This patch is a step towards reducing BrowserPluginEmbedder's role to that of a message router and lifetime manager of BrowserPluginGuests which makes plumbing more obvious. BUG=none Test=BrowserPluginHostTest.*, BrowserPluginTest.* Review URL: https://chromiumcodereview.appspot.com/11367086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166031 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement autosize (Embedder-side code)fsamuel@chromium.org2012-11-031-4/+2
| | | | | | | | | | | | | | | | | | | | | | Snippet from bug: "When using <webview> to embed widgets that change in size (e.g. the +1 button has various hover bubbles that can appear), it can be tedious (and inefficient) to make the contents monitor their size and inform the embedder that the <webview> needs to be resize." This patch doesn't fully implement this feature, but in the interest of smaller, easier to review patches, this can stand alone. This patch implements autoSize, minWidth, minHeight, maxWidth, maxHeight attributes on BrowserPlugin. If these attributes are set before first navigation, they are propagated to the browser process on BrowserPluginHostMsg_CreateGuest. If these attributes or updated after navigation, they are propagated via BrowserPluginHostMsg_SetAutoSize. BUG=157620 Review URL: https://chromiumcodereview.appspot.com/11361052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165817 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Guest focus state should always match BrowserPlugin focus statefsamuel@chromium.org2012-10-301-0/+1
| | | | | | | | | | | | | | | | In a nutshell, the guest should be focused iff the embedder's BrowserPlugin is focused. This means that if the BrowserPlugin is focused before initial navigation, the guest needs to get focused upon committing its first navigation. Furthermore, if a guest crashes and a new guest process is created, the new guest process should inherit the focus state of the previous guest. BUG=157293 Test=BrowserPluginHostTest.FocusBeforeNavigation, BrowserPluginHostTest.FocusPreservation Review URL: https://chromiumcodereview.appspot.com/11228043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164824 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Guest visibility state should always match BrowserPlugin ↵fsamuel@chromium.org2012-10-271-1/+5
| | | | | | | | | | | | visibility state. BUG=157662 Test=BrowserPluginHostTest.HiddenBeforeNavigation, BrowserPluginHostTest.VisibilityPreservation Review URL: https://chromiumcodereview.appspot.com/11275012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164499 0039d316-1c4b-4281-b951-d872f2087c98
* Move a bunch more code into the content namespace.jam@chromium.org2012-10-231-1/+1
| | | | | | Review URL: https://codereview.chromium.org/11231077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163632 0039d316-1c4b-4281-b951-d872f2087c98
* browser-plugin: Allow accepting drag-n-drop events.sadrul@chromium.org2012-10-121-0/+9
| | | | | | | | | | | This allows dragging content from within the embedder (or other windows) into the browser-tag plugin. BUG=120264 Review URL: https://codereview.chromium.org/11088043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161457 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Update Guest WebContents Visibility on BrowserPlugin ↵fsamuel@chromium.org2012-10-081-0/+3
| | | | | | | | | | | Visiblity Change. BUG=140310 Test=BrowserPluginHostTest.{EmbedderVisiblityChanged, BrowserPluginVisibilityChanged} Review URL: https://chromiumcodereview.appspot.com/11066032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160660 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement terminate()fsamuel@chromium.org2012-10-041-0/+1
| | | | | | | | | | BUG=153532 Test=BrowserPluginHostTest.TerminateGuest Review URL: https://chromiumcodereview.appspot.com/11048023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160057 0039d316-1c4b-4281-b951-d872f2087c98
* Propagate storage partition id and persistence to the browser.nasko@chromium.org2012-10-011-0/+6
| | | | | | | | | BUG=145500 Review URL: https://chromiumcodereview.appspot.com/10978028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159578 0039d316-1c4b-4281-b951-d872f2087c98
* [BrowserTag] Send dib info with NavigateGuest message,lazyboy@chromium.org2012-09-291-14/+17
| | | | | | | | | | | | | | | | | | | | | This would fix guest painting in: set no src + resize + navigate to src case. Without this change, for the scenario above, we don't get any dib at all from embedder upon setting the non-empty src. Now we also ship dib on NavigateGuest if necessary. This dib is the last accumulated dib from updateGeometry(). Note that our unit test exercises this case, but doesn't look for correct painting, it only expects UpdateRect to be called with correct size. I've updated the test now to look for correct sized damage buffer instead. BUG=151948 TEST= Create an empty src guest and keep changing its size in SetInterval from the embedder, then in the middle set a non-empty src. Observed that guest paints correctly with final size. Updated unit test to look for damage buffer with correct size instead of looking for UpdateRect with correct size. Review URL: https://chromiumcodereview.appspot.com/10965048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159404 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Implement Back, Forward, and Go.fsamuel@chromium.org2012-09-281-0/+1
| | | | | | | | BUG=151143 Review URL: https://chromiumcodereview.appspot.com/10960003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159348 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Remove unnecessary references to frame_idfsamuel@chromium.org2012-09-271-4/+1
| | | | | | | | | | | | | | Cleanup no longer requires knowledge of the parent frame of the BrowserPlugin and so we no longer need any references to the frame_id. This patch cleans up cruft left over from old cleanup code. BUG=none Review URL: https://chromiumcodereview.appspot.com/10982068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159123 0039d316-1c4b-4281-b951-d872f2087c98
* BrowserPluginGuest/Embedder: Remove friend helper classes, made necessary ↵lazyboy@chromium.org2012-09-211-23/+22
| | | | | | | | | | calls public as Charlie suggested in other review. BUG=141232 Review URL: https://chromiumcodereview.appspot.com/10965009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158074 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Plugin: Reload and Stop operationsfsamuel@chromium.org2012-09-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | Fairly simple change. Just a whole lot of plumbing to call the following: void BrowserPluginGuest::Stop() { web_contents()->Stop(); } void BrowserPluginGuest::Reload() { web_contents()->GetController().Reload(false); } This includes the parsing the methods in browser_plugin_bindings.cc, the IPCs in browser_plugin.cc, the plumbing to the embedder and from the embedder to the appropriate guest. This also includes tests to verify that these two operations do indeed get plumbed correctly. BUG=148981 Review URL: https://codereview.chromium.org/10917225 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157988 0039d316-1c4b-4281-b951-d872f2087c98
* This is followup from Charlie's comments on Fady's cl: ↵lazyboy@chromium.org2012-09-201-0/+144
| | | | | | | | | | | | | | | | | | | | http://chromiumcodereview.appspot.com/10560022, it seems I cannot upload patch to that issue (since I'm not owner), I'm creating a new one. Split Embedder and Guest 'roles' for browser plugin, web contents can now play any or both roles, main idea is to have more readable separation between the two. Also stop creating browser_plugin counterpart in browser/host for every web_contents, instead create them only when there's a browser_plugin element. BUG= 141232 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=157650 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=157773 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/10868012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157808 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 157773 - This is followup from Charlie's comments on Fady's cl: ↵zea@chromium.org2012-09-201-144/+0
| | | | | | | | | | | | | | | | | | | | | http://chromiumcodereview.appspot.com/10560022, it seems I cannot upload patch to that issue (since I'm not owner), I'm creating a new one. NavigateGuest is flaky on windows (crashes at shutdown) Split Embedder and Guest 'roles' for browser plugin, web contents can now play any or both roles, main idea is to have more readable separation between the two. Also stop creating browser_plugin counterpart in browser/host for every web_contents, instead create them only when there's a browser_plugin element. BUG= 141232 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=157650 Review URL: https://chromiumcodereview.appspot.com/10868012 TBR=lazyboy@chromium.org Review URL: https://codereview.chromium.org/10968015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157801 0039d316-1c4b-4281-b951-d872f2087c98
* This is followup from Charlie's comments on Fady's cl: ↵lazyboy@chromium.org2012-09-201-0/+144
| | | | | | | | | | | | | | | | http://chromiumcodereview.appspot.com/10560022, it seems I cannot upload patch to that issue (since I'm not owner), I'm creating a new one. Split Embedder and Guest 'roles' for browser plugin, web contents can now play any or both roles, main idea is to have more readable separation between the two. Also stop creating browser_plugin counterpart in browser/host for every web_contents, instead create them only when there's a browser_plugin element. BUG= 141232 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=157650 Review URL: https://chromiumcodereview.appspot.com/10868012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157773 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 157650 - This is followup from Charlie's comments on Fady's cl: ↵zea@chromium.org2012-09-191-144/+0
| | | | | | | | | | | | | | | | | | | http://chromiumcodereview.appspot.com/10560022, it seems I cannot upload patch to that issue (since I'm not owner), I'm creating a new one. Introduced too many static initializers - broke linux sizes. Split Embedder and Guest 'roles' for browser plugin, web contents can now play any or both roles, main idea is to have more readable separation between the two. Also stop creating browser_plugin counterpart in browser/host for every web_contents, instead create them only when there's a browser_plugin element. BUG= 141232 Review URL: https://chromiumcodereview.appspot.com/10868012 TBR=lazyboy@chromium.org Review URL: https://codereview.chromium.org/10946044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157656 0039d316-1c4b-4281-b951-d872f2087c98
* This is followup from Charlie's comments on Fady's cl: ↵lazyboy@chromium.org2012-09-191-0/+144
http://chromiumcodereview.appspot.com/10560022, it seems I cannot upload patch to that issue (since I'm not owner), I'm creating a new one. Split Embedder and Guest 'roles' for browser plugin, web contents can now play any or both roles, main idea is to have more readable separation between the two. Also stop creating browser_plugin counterpart in browser/host for every web_contents, instead create them only when there's a browser_plugin element. BUG= 141232 Review URL: https://chromiumcodereview.appspot.com/10868012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157650 0039d316-1c4b-4281-b951-d872f2087c98