1f2173b9be
The custom scheme handling implementation had been inherited from the original WebKit1 implementation. It attempted to intercept navigation and resource load requests and then inject the resources. It seems that this method doesn't work in WebKit2, but fortunately, there is native support in WebKit2 for custom URI schemes through the webkit_web_context_register_uri_scheme() API. Also extend wxGtkError to allow creating it from an existing GError object as a side-effect of these changes. See https://github.com/wxWidgets/wxWidgets/pull/716
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: gtk/private/error.h
|
|
// Purpose: Wrapper around GError.
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2012-07-25
|
|
// Copyright: (c) 2012 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_PRIVATE_ERROR_H_
|
|
#define _WX_GTK_PRIVATE_ERROR_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxGtkError wraps GError and releases it automatically.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Create an object of this class and pass the result of its Out() method to a
|
|
// function taking "GError**", then use GetMessage() if the function returned
|
|
// false.
|
|
class wxGtkError
|
|
{
|
|
public:
|
|
wxGtkError() { m_error = NULL; }
|
|
explicit wxGtkError(GError* error) { m_error = error; }
|
|
~wxGtkError() { if ( m_error ) g_error_free(m_error); }
|
|
|
|
GError** Out()
|
|
{
|
|
// This would result in a GError leak.
|
|
wxASSERT_MSG( !m_error, wxS("Can't reuse the same object.") );
|
|
|
|
return &m_error;
|
|
}
|
|
|
|
// Check if any error actually occurred.
|
|
operator bool() const
|
|
{
|
|
return m_error != NULL;
|
|
}
|
|
|
|
operator GError*() const
|
|
{
|
|
return m_error;
|
|
}
|
|
|
|
wxString GetMessage() const
|
|
{
|
|
return wxString::FromUTF8(m_error->message);
|
|
}
|
|
|
|
private:
|
|
GError* m_error;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxGtkError);
|
|
};
|
|
|
|
#endif // _WX_GTK_PRIVATE_ERROR_H_
|