mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Update to Chromium revision 248478.
- Add new CefSettings.windowless_rendering_enabled value that must be enabled when using windowless (off-screen) rendering. - Improve naming and documentation for CefWindowInfo members. - CefBeginTracing now completes asynchronously. - Rename CefEndTracingAsync to CefEndTracing. - Rename CefCompletionHandler to CefCompletionCallback. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1592 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -110,8 +110,8 @@ struct CefWindowInfoTraits {
|
||||
static inline void set(const struct_type* src, struct_type* target,
|
||||
bool copy) {
|
||||
target->parent_widget = src->parent_widget;
|
||||
target->window_rendering_disabled = src->window_rendering_disabled;
|
||||
target->transparent_painting = src->transparent_painting;
|
||||
target->windowless_rendering_enabled = src->windowless_rendering_enabled;
|
||||
target->transparent_painting_enabled = src->transparent_painting_enabled;
|
||||
target->widget = src->widget;
|
||||
}
|
||||
};
|
||||
@@ -125,17 +125,29 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
||||
explicit CefWindowInfo(const cef_window_info_t& r) : parent(r) {}
|
||||
explicit CefWindowInfo(const CefWindowInfo& r) : parent(r) {}
|
||||
|
||||
void SetAsChild(CefWindowHandle ParentWidget) {
|
||||
parent_widget = ParentWidget;
|
||||
///
|
||||
// Create the browser as a child widget.
|
||||
///
|
||||
void SetAsChild(CefWindowHandle parent) {
|
||||
parent_widget = parent;
|
||||
}
|
||||
|
||||
void SetTransparentPainting(bool transparentPainting) {
|
||||
transparent_painting = transparentPainting;
|
||||
}
|
||||
|
||||
void SetAsOffScreen(CefWindowHandle ParentWidget) {
|
||||
window_rendering_disabled = true;
|
||||
parent_widget = ParentWidget;
|
||||
///
|
||||
// Create the browser using windowless (off-screen) rendering. No widget
|
||||
// will be created for the browser and all rendering will occur via the
|
||||
// CefRenderHandler interface. The |parent| value will be used to identify
|
||||
// monitor info and to act as the parent widget for dialogs, context menus,
|
||||
// etc. If |parent| is not provided then the main screen monitor will be used
|
||||
// and some functionality that requires a parent widget may not function
|
||||
// correctly. If |transparent| is true a transparent background color will be
|
||||
// used (RGBA=0x00000000). If |transparent| is false the background will be
|
||||
// white and opaque. In order to create windowless browsers the
|
||||
// CefSettings.windowless_rendering_enabled value must be set to true.
|
||||
///
|
||||
void SetAsWindowless(CefWindowHandle parent, bool transparent) {
|
||||
windowless_rendering_enabled = true;
|
||||
parent_widget = parent;
|
||||
transparent_painting_enabled = transparent;
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -112,8 +112,6 @@ struct CefWindowInfoTraits {
|
||||
|
||||
static inline void set(const struct_type* src, struct_type* target,
|
||||
bool copy) {
|
||||
target->view = src->view;
|
||||
target->parent_view = src->parent_view;
|
||||
cef_string_set(src->window_name.str, src->window_name.length,
|
||||
&target->window_name, copy);
|
||||
target->x = src->x;
|
||||
@@ -121,8 +119,10 @@ struct CefWindowInfoTraits {
|
||||
target->width = src->width;
|
||||
target->height = src->height;
|
||||
target->hidden = src->hidden;
|
||||
target->transparent_painting = src->transparent_painting;
|
||||
target->window_rendering_disabled = src->window_rendering_disabled;
|
||||
target->parent_view = src->parent_view;
|
||||
target->windowless_rendering_enabled = src->windowless_rendering_enabled;
|
||||
target->transparent_painting_enabled = src->transparent_painting_enabled;
|
||||
target->view = src->view;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -135,9 +135,12 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
||||
explicit CefWindowInfo(const cef_window_info_t& r) : parent(r) {}
|
||||
explicit CefWindowInfo(const CefWindowInfo& r) : parent(r) {}
|
||||
|
||||
void SetAsChild(CefWindowHandle ParentView, int x, int y, int width,
|
||||
///
|
||||
// Create the browser as a child view.
|
||||
///
|
||||
void SetAsChild(CefWindowHandle parent, int x, int y, int width,
|
||||
int height) {
|
||||
parent_view = ParentView;
|
||||
parent_view = parent;
|
||||
this->x = x;
|
||||
this->y = y;
|
||||
this->width = width;
|
||||
@@ -145,13 +148,22 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
||||
hidden = false;
|
||||
}
|
||||
|
||||
void SetTransparentPainting(bool transparentPainting) {
|
||||
transparent_painting = transparentPainting;
|
||||
}
|
||||
|
||||
void SetAsOffScreen(NSView* view) {
|
||||
window_rendering_disabled = true;
|
||||
parent_view = view;
|
||||
///
|
||||
// Create the browser using windowless (off-screen) rendering. No view
|
||||
// will be created for the browser and all rendering will occur via the
|
||||
// CefRenderHandler interface. The |parent| value will be used to identify
|
||||
// monitor info and to act as the parent view for dialogs, context menus,
|
||||
// etc. If |parent| is not provided then the main screen monitor will be used
|
||||
// and some functionality that requires a parent view may not function
|
||||
// correctly. If |transparent| is true a transparent background color will be
|
||||
// used (RGBA=0x00000000). If |transparent| is false the background will be
|
||||
// white and opaque. In order to create windowless browsers the
|
||||
// CefSettings.windowless_rendering_enabled value must be set to true.
|
||||
///
|
||||
void SetAsWindowless(CefWindowHandle parent, bool transparent) {
|
||||
windowless_rendering_enabled = true;
|
||||
parent_view = parent;
|
||||
transparent_painting_enabled = transparent;
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -223,6 +223,13 @@ typedef struct _cef_settings_t {
|
||||
///
|
||||
int multi_threaded_message_loop;
|
||||
|
||||
///
|
||||
// Set to true to enable windowless (off-screen) rendering support. Do not
|
||||
// enable this value if the application does not use windowless rendering as
|
||||
// it may reduce rendering performance on some systems.
|
||||
///
|
||||
bool windowless_rendering_enabled;
|
||||
|
||||
///
|
||||
// Set to true (1) to disable configuration of browser process features using
|
||||
// standard CEF and Chromium command-line arguments. Configuration can still
|
||||
@@ -1650,14 +1657,11 @@ typedef enum {
|
||||
DOM_NODE_TYPE_ATTRIBUTE,
|
||||
DOM_NODE_TYPE_TEXT,
|
||||
DOM_NODE_TYPE_CDATA_SECTION,
|
||||
DOM_NODE_TYPE_ENTITY,
|
||||
DOM_NODE_TYPE_PROCESSING_INSTRUCTIONS,
|
||||
DOM_NODE_TYPE_COMMENT,
|
||||
DOM_NODE_TYPE_DOCUMENT,
|
||||
DOM_NODE_TYPE_DOCUMENT_TYPE,
|
||||
DOM_NODE_TYPE_DOCUMENT_FRAGMENT,
|
||||
DOM_NODE_TYPE_NOTATION,
|
||||
DOM_NODE_TYPE_XPATH_NAMESPACE,
|
||||
} cef_dom_node_type_t;
|
||||
|
||||
///
|
||||
|
@@ -60,18 +60,34 @@ typedef struct _cef_main_args_t {
|
||||
// Class representing window information.
|
||||
///
|
||||
typedef struct _cef_window_info_t {
|
||||
// Pointer for the parent GtkBox widget.
|
||||
///
|
||||
// Pointer for the parent widget.
|
||||
///
|
||||
cef_window_handle_t parent_widget;
|
||||
|
||||
// If window rendering is disabled no browser window will be created. Set
|
||||
// |parent_widget| to the window that will act as the parent for popup menus,
|
||||
// dialog boxes, etc.
|
||||
int window_rendering_disabled;
|
||||
///
|
||||
// Set to true (1) to create the browser using windowless (off-screen)
|
||||
// rendering. No widget will be created for the browser and all rendering will
|
||||
// occur via the CefRenderHandler interface. The |parent_widget| value will be
|
||||
// used to identify monitor info and to act as the parent widget for dialogs,
|
||||
// context menus, etc. If |parent_widget| is not provided then the main screen
|
||||
// monitor will be used and some functionality that requires a parent widget
|
||||
// may not function correctly. In order to create windowless browsers the
|
||||
// CefSettings.windowless_rendering_enabled value must be set to true.
|
||||
///
|
||||
int windowless_rendering_enabled;
|
||||
|
||||
// Set to true to enable transparent painting.
|
||||
int transparent_painting;
|
||||
///
|
||||
// Set to true (1) to enable transparent painting in combination with
|
||||
// windowless rendering. When this value is true a transparent background
|
||||
// color will be used (RGBA=0x00000000). When this value is false the
|
||||
// background will be white and opaque.
|
||||
///
|
||||
int transparent_painting_enabled;
|
||||
|
||||
// Pointer for the new browser widget.
|
||||
///
|
||||
// Pointer for the new browser widget. Only used with windowed rendering.
|
||||
///
|
||||
cef_window_handle_t widget;
|
||||
} cef_window_info_t;
|
||||
|
||||
|
@@ -82,20 +82,40 @@ typedef struct _cef_window_info_t {
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
///
|
||||
// Set to true (1) to create the view initially hidden.
|
||||
///
|
||||
int hidden;
|
||||
|
||||
///
|
||||
// NSView pointer for the parent view.
|
||||
///
|
||||
cef_window_handle_t parent_view;
|
||||
|
||||
// If window rendering is disabled no browser window will be created. Set
|
||||
// |parent_view| to the window that will act as the parent for popup menus,
|
||||
// dialog boxes, etc.
|
||||
int window_rendering_disabled;
|
||||
///
|
||||
// Set to true (1) to create the browser using windowless (off-screen)
|
||||
// rendering. No view will be created for the browser and all rendering will
|
||||
// occur via the CefRenderHandler interface. The |parent_view| value will be
|
||||
// used to identify monitor info and to act as the parent view for dialogs,
|
||||
// context menus, etc. If |parent_view| is not provided then the main screen
|
||||
// monitor will be used and some functionality that requires a parent view
|
||||
// may not function correctly. In order to create windowless browsers the
|
||||
// CefSettings.windowless_rendering_enabled value must be set to true.
|
||||
///
|
||||
int windowless_rendering_enabled;
|
||||
|
||||
// Set to true to enable transparent painting.
|
||||
int transparent_painting;
|
||||
///
|
||||
// Set to true (1) to enable transparent painting in combination with
|
||||
// windowless rendering. When this value is true a transparent background
|
||||
// color will be used (RGBA=0x00000000). When this value is false the
|
||||
// background will be white and opaque.
|
||||
///
|
||||
int transparent_painting_enabled;
|
||||
|
||||
// NSView pointer for the new browser view.
|
||||
///
|
||||
// NSView pointer for the new browser view. Only used with windowed rendering.
|
||||
///
|
||||
cef_window_handle_t view;
|
||||
} cef_window_info_t;
|
||||
|
||||
|
@@ -70,19 +70,29 @@ typedef struct _cef_window_info_t {
|
||||
cef_window_handle_t parent_window;
|
||||
HMENU menu;
|
||||
|
||||
// If window rendering is disabled no browser window will be created. Set
|
||||
// |parent_window| to be used for identifying monitor info
|
||||
// (MonitorFromWindow). If |parent_window| is not provided the main screen
|
||||
// monitor will be used.
|
||||
BOOL window_rendering_disabled;
|
||||
///
|
||||
// Set to true (1) to create the browser using windowless (off-screen)
|
||||
// rendering. No window will be created for the browser and all rendering will
|
||||
// occur via the CefRenderHandler interface. The |parent_window| value will be
|
||||
// used to identify monitor info and to act as the parent window for dialogs,
|
||||
// context menus, etc. If |parent_window| is not provided then the main screen
|
||||
// monitor will be used and some functionality that requires a parent window
|
||||
// may not function correctly. In order to create windowless browsers the
|
||||
// CefSettings.windowless_rendering_enabled value must be set to true.
|
||||
///
|
||||
int windowless_rendering_enabled;
|
||||
|
||||
// Set to true to enable transparent painting.
|
||||
// If window rendering is disabled and |transparent_painting| is set to true
|
||||
// WebKit rendering will draw on a transparent background (RGBA=0x00000000).
|
||||
// When this value is false the background will be white and opaque.
|
||||
BOOL transparent_painting;
|
||||
///
|
||||
// Set to true (1) to enable transparent painting in combination with
|
||||
// windowless rendering. When this value is true a transparent background
|
||||
// color will be used (RGBA=0x00000000). When this value is false the
|
||||
// background will be white and opaque.
|
||||
///
|
||||
int transparent_painting_enabled;
|
||||
|
||||
// Handle for the new browser window.
|
||||
///
|
||||
// Handle for the new browser window. Only used with windowed rendering.
|
||||
///
|
||||
cef_window_handle_t window;
|
||||
} cef_window_info_t;
|
||||
|
||||
|
@@ -349,6 +349,7 @@ struct CefSettingsTraits {
|
||||
src->browser_subprocess_path.length,
|
||||
&target->browser_subprocess_path, copy);
|
||||
target->multi_threaded_message_loop = src->multi_threaded_message_loop;
|
||||
target->windowless_rendering_enabled = src->windowless_rendering_enabled;
|
||||
target->command_line_args_disabled = src->command_line_args_disabled;
|
||||
|
||||
cef_string_set(src->cache_path.str, src->cache_path.length,
|
||||
|
@@ -119,9 +119,9 @@ struct CefWindowInfoTraits {
|
||||
target->height = src->height;
|
||||
target->parent_window = src->parent_window;
|
||||
target->menu = src->menu;
|
||||
target->transparent_painting_enabled = src->transparent_painting_enabled;
|
||||
target->windowless_rendering_enabled = src->windowless_rendering_enabled;
|
||||
target->window = src->window;
|
||||
target->transparent_painting = src->transparent_painting;
|
||||
target->window_rendering_disabled = src->window_rendering_disabled;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -136,20 +136,26 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
||||
explicit CefWindowInfo(const cef_window_info_t& r) : parent(r) {}
|
||||
explicit CefWindowInfo(const CefWindowInfo& r) : parent(r) {}
|
||||
|
||||
void SetAsChild(HWND hWndParent, RECT windowRect) {
|
||||
///
|
||||
// Create the browser as a child window.
|
||||
///
|
||||
void SetAsChild(CefWindowHandle parent, RECT windowRect) {
|
||||
style = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_TABSTOP |
|
||||
WS_VISIBLE;
|
||||
parent_window = hWndParent;
|
||||
parent_window = parent;
|
||||
x = windowRect.left;
|
||||
y = windowRect.top;
|
||||
width = windowRect.right - windowRect.left;
|
||||
height = windowRect.bottom - windowRect.top;
|
||||
}
|
||||
|
||||
void SetAsPopup(HWND hWndParent, const CefString& windowName) {
|
||||
///
|
||||
// Create the browser as a popup window.
|
||||
///
|
||||
void SetAsPopup(CefWindowHandle parent, const CefString& windowName) {
|
||||
style = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS |
|
||||
WS_VISIBLE;
|
||||
parent_window = hWndParent;
|
||||
parent_window = parent;
|
||||
x = CW_USEDEFAULT;
|
||||
y = CW_USEDEFAULT;
|
||||
width = CW_USEDEFAULT;
|
||||
@@ -158,13 +164,22 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
||||
cef_string_copy(windowName.c_str(), windowName.length(), &window_name);
|
||||
}
|
||||
|
||||
void SetTransparentPainting(BOOL transparentPainting) {
|
||||
transparent_painting = transparentPainting;
|
||||
}
|
||||
|
||||
void SetAsOffScreen(HWND hWndParent) {
|
||||
window_rendering_disabled = TRUE;
|
||||
parent_window = hWndParent;
|
||||
///
|
||||
// Create the browser using windowless (off-screen) rendering. No window
|
||||
// will be created for the browser and all rendering will occur via the
|
||||
// CefRenderHandler interface. The |parent| value will be used to identify
|
||||
// monitor info and to act as the parent window for dialogs, context menus,
|
||||
// etc. If |parent| is not provided then the main screen monitor will be used
|
||||
// and some functionality that requires a parent window may not function
|
||||
// correctly. If |transparent| is true a transparent background color will be
|
||||
// used (RGBA=0x00000000). If |transparent| is false the background will be
|
||||
// white and opaque. In order to create windowless browsers the
|
||||
// CefSettings.windowless_rendering_enabled value must be set to true.
|
||||
///
|
||||
void SetAsWindowless(CefWindowHandle parent, bool transparent) {
|
||||
windowless_rendering_enabled = TRUE;
|
||||
parent_window = parent;
|
||||
transparent_painting_enabled = transparent;
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user