Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: chrome/browser/renderer_host/render_widget_host.cc

Issue 146078: linux: OOP windowed plugins (Closed)
Patch Set: new version Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/renderer_host/render_widget_host.h" 5 #include "chrome/browser/renderer_host/render_widget_host.h"
6 6
7 #include "base/histogram.h" 7 #include "base/histogram.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/keyboard_codes.h" 9 #include "base/keyboard_codes.h"
10 #include "chrome/browser/renderer_host/backing_store.h" 10 #include "chrome/browser/renderer_host/backing_store.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 IPC_MESSAGE_HANDLER(ViewHostMsg_Close, OnMsgClose) 113 IPC_MESSAGE_HANDLER(ViewHostMsg_Close, OnMsgClose)
114 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestMove, OnMsgRequestMove) 114 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestMove, OnMsgRequestMove)
115 IPC_MESSAGE_HANDLER(ViewHostMsg_PaintRect, OnMsgPaintRect) 115 IPC_MESSAGE_HANDLER(ViewHostMsg_PaintRect, OnMsgPaintRect)
116 IPC_MESSAGE_HANDLER(ViewHostMsg_ScrollRect, OnMsgScrollRect) 116 IPC_MESSAGE_HANDLER(ViewHostMsg_ScrollRect, OnMsgScrollRect)
117 IPC_MESSAGE_HANDLER(ViewHostMsg_HandleInputEvent_ACK, OnMsgInputEventAck) 117 IPC_MESSAGE_HANDLER(ViewHostMsg_HandleInputEvent_ACK, OnMsgInputEventAck)
118 IPC_MESSAGE_HANDLER(ViewHostMsg_Focus, OnMsgFocus) 118 IPC_MESSAGE_HANDLER(ViewHostMsg_Focus, OnMsgFocus)
119 IPC_MESSAGE_HANDLER(ViewHostMsg_Blur, OnMsgBlur) 119 IPC_MESSAGE_HANDLER(ViewHostMsg_Blur, OnMsgBlur)
120 IPC_MESSAGE_HANDLER(ViewHostMsg_SetCursor, OnMsgSetCursor) 120 IPC_MESSAGE_HANDLER(ViewHostMsg_SetCursor, OnMsgSetCursor)
121 IPC_MESSAGE_HANDLER(ViewHostMsg_ImeUpdateStatus, OnMsgImeUpdateStatus) 121 IPC_MESSAGE_HANDLER(ViewHostMsg_ImeUpdateStatus, OnMsgImeUpdateStatus)
122 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_ShowPopup, OnMsgShowPopup(msg)) 122 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_ShowPopup, OnMsgShowPopup(msg))
123 #if defined(OS_LINUX)
124 IPC_MESSAGE_HANDLER(ViewHostMsg_CreatePluginContainer,
125 OnMsgCreatePluginContainer)
126 IPC_MESSAGE_HANDLER(ViewHostMsg_DestroyPluginContainer,
127 OnMsgDestroyPluginContainer)
128 #endif
123 IPC_MESSAGE_UNHANDLED_ERROR() 129 IPC_MESSAGE_UNHANDLED_ERROR()
124 IPC_END_MESSAGE_MAP() 130 IPC_END_MESSAGE_MAP()
125 131
126 bool RenderWidgetHost::Send(IPC::Message* msg) { 132 bool RenderWidgetHost::Send(IPC::Message* msg) {
127 return process_->Send(msg); 133 return process_->Send(msg);
128 } 134 }
129 135
130 void RenderWidgetHost::WasHidden() { 136 void RenderWidgetHost::WasHidden() {
131 is_hidden_ = true; 137 is_hidden_ = true;
132 138
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 747
742 view_->ShowPopupWithItems(validated_params.bounds, 748 view_->ShowPopupWithItems(validated_params.bounds,
743 validated_params.item_height, 749 validated_params.item_height,
744 validated_params.selected_item, 750 validated_params.selected_item,
745 validated_params.popup_items); 751 validated_params.popup_items);
746 #else // OS_WIN || OS_LINUX 752 #else // OS_WIN || OS_LINUX
747 NOTREACHED(); 753 NOTREACHED();
748 #endif 754 #endif
749 } 755 }
750 756
757 #if defined(OS_LINUX)
758 void RenderWidgetHost::OnMsgCreatePluginContainer(
759 gfx::PluginWindowHandle *container) {
760 *container = view_->CreatePluginContainer();
761 }
762
763 void RenderWidgetHost::OnMsgDestroyPluginContainer(
764 gfx::PluginWindowHandle container) {
765 view_->DestroyPluginContainer(container);
766 }
767 #endif
768
751 void RenderWidgetHost::PaintBackingStoreRect(TransportDIB* bitmap, 769 void RenderWidgetHost::PaintBackingStoreRect(TransportDIB* bitmap,
752 const gfx::Rect& bitmap_rect, 770 const gfx::Rect& bitmap_rect,
753 const gfx::Size& view_size) { 771 const gfx::Size& view_size) {
754 // The view may be destroyed already. 772 // The view may be destroyed already.
755 if (!view_) 773 if (!view_)
756 return; 774 return;
757 775
758 if (is_hidden_) { 776 if (is_hidden_) {
759 // Don't bother updating the backing store when we're hidden. Just mark it 777 // Don't bother updating the backing store when we're hidden. Just mark it
760 // as being totally invalid. This will cause a complete repaint when the 778 // as being totally invalid. This will cause a complete repaint when the
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 810
793 // TODO(darin): do we need to do something else if our backing store is not 811 // TODO(darin): do we need to do something else if our backing store is not
794 // the same size as the advertised view? maybe we just assume there is a 812 // the same size as the advertised view? maybe we just assume there is a
795 // full paint on its way? 813 // full paint on its way?
796 BackingStore* backing_store = BackingStoreManager::Lookup(this); 814 BackingStore* backing_store = BackingStoreManager::Lookup(this);
797 if (!backing_store || (backing_store->size() != view_size)) 815 if (!backing_store || (backing_store->size() != view_size))
798 return; 816 return;
799 backing_store->ScrollRect(process_->process().handle(), bitmap, bitmap_rect, 817 backing_store->ScrollRect(process_->process().handle(), bitmap, bitmap_rect,
800 dx, dy, clip_rect, view_size); 818 dx, dy, clip_rect, view_size);
801 } 819 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_host.h ('k') | chrome/browser/renderer_host/render_widget_host_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698