• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CONTENT_COMMON_WEBPLUGIN_GEOMETRY_H_
6 #define CONTENT_COMMON_WEBPLUGIN_GEOMETRY_H_
7 
8 #include <vector>
9 
10 #include "base/basictypes.h"
11 #include "ui/gfx/native_widget_types.h"
12 #include "ui/gfx/rect.h"
13 
14 namespace content {
15 
16 // Describes the new location for a plugin window.
17 struct WebPluginGeometry {
18   WebPluginGeometry();
19   ~WebPluginGeometry();
20 
21   bool Equals(const WebPluginGeometry& rhs) const;
22 
23   // On Windows, this is the plugin window in the plugin process.
24   // On X11, this is the XID of the plugin-side GtkPlug containing the
25   // GtkSocket hosting the actual plugin window.
26   //
27   // On Mac OS X, all of the plugin types are currently "windowless"
28   // (window == 0) except for the special case of the GPU plugin,
29   // which currently performs rendering on behalf of the Pepper 3D API
30   // and WebGL. The GPU plugin uses a simple integer for the
31   // PluginWindowHandle which is used to map to a side data structure
32   // containing information about the plugin. Soon this plugin will be
33   // generalized, at which point this mechanism will be rethought or
34   // removed.
35   gfx::PluginWindowHandle window;
36   gfx::Rect window_rect;
37   // Clip rect (include) and cutouts (excludes), relative to
38   // window_rect origin.
39   gfx::Rect clip_rect;
40   std::vector<gfx::Rect> cutout_rects;
41   bool rects_valid;
42   bool visible;
43 };
44 
45 }  // namespace content
46 
47 #endif  // CONTENT_COMMON_WEBPLUGIN_GEOMETRY_H_
48