OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/plugin/webplugin_proxy.h" | 5 #include "content/plugin/webplugin_proxy.h" |
6 | 6 |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 } | 172 } |
173 | 173 |
174 // Some plugins will send invalidates larger than their own rect when | 174 // Some plugins will send invalidates larger than their own rect when |
175 // offscreen, so constrain invalidates to the plugin rect. | 175 // offscreen, so constrain invalidates to the plugin rect. |
176 gfx::Rect plugin_rect = delegate_->GetRect(); | 176 gfx::Rect plugin_rect = delegate_->GetRect(); |
177 plugin_rect.set_origin(gfx::Point(0, 0)); | 177 plugin_rect.set_origin(gfx::Point(0, 0)); |
178 const gfx::Rect invalidate_rect(rect.Intersect(plugin_rect)); | 178 const gfx::Rect invalidate_rect(rect.Intersect(plugin_rect)); |
179 #else | 179 #else |
180 const gfx::Rect invalidate_rect(rect); | 180 const gfx::Rect invalidate_rect(rect); |
181 #endif | 181 #endif |
182 damaged_rect_ = damaged_rect_.Union(invalidate_rect); | 182 damaged_rect_.Union(invalidate_rect); |
183 // Ignore NPN_InvalidateRect calls with empty rects. Also don't send an | 183 // Ignore NPN_InvalidateRect calls with empty rects. Also don't send an |
184 // invalidate if it's outside the clipping region, since if we did it won't | 184 // invalidate if it's outside the clipping region, since if we did it won't |
185 // lead to a paint and we'll be stuck waiting forever for a DidPaint response. | 185 // lead to a paint and we'll be stuck waiting forever for a DidPaint response. |
186 // | 186 // |
187 // TODO(piman): There is a race condition here, because this test assumes | 187 // TODO(piman): There is a race condition here, because this test assumes |
188 // that when the paint actually occurs, the clip rect will not have changed. | 188 // that when the paint actually occurs, the clip rect will not have changed. |
189 // This is not true because scrolling (or window resize) could occur and be | 189 // This is not true because scrolling (or window resize) could occur and be |
190 // handled by the renderer before it receives the InvalidateRect message, | 190 // handled by the renderer before it receives the InvalidateRect message, |
191 // changing the clip rect and then not painting. | 191 // changing the clip rect and then not painting. |
192 if (damaged_rect_.IsEmpty() || | 192 if (damaged_rect_.IsEmpty() || |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
779 // Retrieve the IME status from a plug-in and send it to a renderer process | 779 // Retrieve the IME status from a plug-in and send it to a renderer process |
780 // when the plug-in has updated it. | 780 // when the plug-in has updated it. |
781 int input_type; | 781 int input_type; |
782 gfx::Rect caret_rect; | 782 gfx::Rect caret_rect; |
783 if (!delegate_->GetIMEStatus(&input_type, &caret_rect)) | 783 if (!delegate_->GetIMEStatus(&input_type, &caret_rect)) |
784 return; | 784 return; |
785 | 785 |
786 Send(new PluginHostMsg_NotifyIMEStatus(route_id_, input_type, caret_rect)); | 786 Send(new PluginHostMsg_NotifyIMEStatus(route_id_, input_type, caret_rect)); |
787 } | 787 } |
788 #endif | 788 #endif |
OLD | NEW |