Implement CefDisplayHandler OnStatusMessage and OnConsoleMessage callbacks (issue #662).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@772 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2012-09-07 21:01:27 +00:00
parent 6834d879d3
commit 0d086ee6fb
8 changed files with 39 additions and 23 deletions

View File

@ -91,8 +91,7 @@ typedef struct _cef_display_handler_t {
// status message type.
///
void (CEF_CALLBACK *on_status_message)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* value,
enum cef_handler_statustype_t type);
struct _cef_browser_t* browser, const cef_string_t* value);
///
// Called to display a console message. Return true (1) to stop the message

View File

@ -49,8 +49,6 @@
/*--cef(source=client)--*/
class CefDisplayHandler : public virtual CefBase {
public:
typedef cef_handler_statustype_t StatusType;
///
// Called when the loading state has changed.
///
@ -92,8 +90,7 @@ class CefDisplayHandler : public virtual CefBase {
///
/*--cef(optional_param=value)--*/
virtual void OnStatusMessage(CefRefPtr<CefBrowser> browser,
const CefString& value,
StatusType type) {}
const CefString& value) {}
///
// Called to display a console message. Return true to stop the message from

View File

@ -1199,15 +1199,6 @@ enum cef_xml_node_type_t {
XML_NODE_COMMENT,
};
///
// Status message types.
///
enum cef_handler_statustype_t {
STATUSTYPE_TEXT = 0,
STATUSTYPE_MOUSEOVER_URL,
STATUSTYPE_KEYBOARD_FOCUS_URL,
};
///
// Popup window features.
///

View File

@ -908,6 +908,30 @@ void CefBrowserHostImpl::CloseContents(content::WebContents* source) {
PlatformCloseWindow();
}
void CefBrowserHostImpl::UpdateTargetURL(content::WebContents* source,
int32 page_id,
const GURL& url) {
if (client_.get()) {
CefRefPtr<CefDisplayHandler> handler = client_->GetDisplayHandler();
if (handler.get())
handler->OnStatusMessage(this, url.spec());
}
}
bool CefBrowserHostImpl::AddMessageToConsole(content::WebContents* source,
int32 level,
const string16& message,
int32 line_no,
const string16& source_id) {
if (client_.get()) {
CefRefPtr<CefDisplayHandler> handler = client_->GetDisplayHandler();
if (handler.get())
return handler->OnConsoleMessage(this, message, source_id, line_no);
}
return false;
}
bool CefBrowserHostImpl::TakeFocus(content::WebContents* source,
bool reverse) {
if (client_.get()) {
@ -1567,4 +1591,3 @@ void CefBrowserHostImpl::OnLoadEnd(CefRefPtr<CefFrame> frame,
}
}
}

View File

@ -205,6 +205,14 @@ class CefBrowserHostImpl : public CefBrowserHost,
const content::OpenURLParams& params) OVERRIDE;
virtual void LoadingStateChanged(content::WebContents* source) OVERRIDE;
virtual void CloseContents(content::WebContents* source) OVERRIDE;
virtual void UpdateTargetURL(content::WebContents* source,
int32 page_id,
const GURL& url) OVERRIDE;
virtual bool AddMessageToConsole(content::WebContents* source,
int32 level,
const string16& message,
int32 line_no,
const string16& source_id) OVERRIDE;
virtual bool TakeFocus(content::WebContents* source,
bool reverse) OVERRIDE;
virtual void WebContentsFocused(content::WebContents* contents) OVERRIDE;

View File

@ -113,7 +113,7 @@ int CEF_CALLBACK display_handler_on_tooltip(struct _cef_display_handler_t* self,
void CEF_CALLBACK display_handler_on_status_message(
struct _cef_display_handler_t* self, cef_browser_t* browser,
const cef_string_t* value, enum cef_handler_statustype_t type) {
const cef_string_t* value) {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
@ -128,8 +128,7 @@ void CEF_CALLBACK display_handler_on_status_message(
// Execute
CefDisplayHandlerCppToC::Get(self)->OnStatusMessage(
CefBrowserCToCpp::Wrap(browser),
CefString(value),
type);
CefString(value));
}
int CEF_CALLBACK display_handler_on_console_message(

View File

@ -107,7 +107,7 @@ bool CefDisplayHandlerCToCpp::OnTooltip(CefRefPtr<CefBrowser> browser,
}
void CefDisplayHandlerCToCpp::OnStatusMessage(CefRefPtr<CefBrowser> browser,
const CefString& value, StatusType type) {
const CefString& value) {
if (CEF_MEMBER_MISSING(struct_, on_status_message))
return;
@ -122,8 +122,7 @@ void CefDisplayHandlerCToCpp::OnStatusMessage(CefRefPtr<CefBrowser> browser,
// Execute
struct_->on_status_message(struct_,
CefBrowserCppToC::Wrap(browser),
value.GetStruct(),
type);
value.GetStruct());
}
bool CefDisplayHandlerCToCpp::OnConsoleMessage(CefRefPtr<CefBrowser> browser,

View File

@ -43,7 +43,7 @@ class CefDisplayHandlerCToCpp
virtual bool OnTooltip(CefRefPtr<CefBrowser> browser,
CefString& text) OVERRIDE;
virtual void OnStatusMessage(CefRefPtr<CefBrowser> browser,
const CefString& value, StatusType type) OVERRIDE;
const CefString& value) OVERRIDE;
virtual bool OnConsoleMessage(CefRefPtr<CefBrowser> browser,
const CefString& message, const CefString& source, int line) OVERRIDE;
};