Commit 3fe062a5 authored by Marshall Greenblatt's avatar Marshall Greenblatt
Browse files

Implement new approach for debugging leaked wrapper object references (issue #2593)

parent 176e14d4
......@@ -103,6 +103,8 @@
'libcef_dll/libcef_dll2.cc',
'libcef_dll/ptr_util.h',
'libcef_dll/resource.h',
'libcef_dll/shutdown_checker.cc',
'libcef_dll/shutdown_checker.h',
'libcef_dll/transfer_util.cc',
'libcef_dll/transfer_util.h',
'libcef_dll/wrapper_types.h',
......@@ -130,6 +132,8 @@
'libcef_dll/ctocpp/ctocpp_ref_counted.h',
'libcef_dll/ctocpp/ctocpp_scoped.h',
'libcef_dll/ptr_util.h',
'libcef_dll/shutdown_checker.cc',
'libcef_dll/shutdown_checker.h',
'libcef_dll/transfer_util.cc',
'libcef_dll/transfer_util.h',
'libcef_dll/wrapper_types.h',
......
......@@ -47,7 +47,7 @@
// Class used to implement browser process callbacks. The methods of this class
// will be called on the browser process main thread unless otherwise indicated.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefBrowserProcessHandler : public virtual CefBaseRefCounted {
public:
///
......
......@@ -52,7 +52,7 @@
// will be called on the render process main thread (TID_RENDERER) unless
// otherwise indicated.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefRenderProcessHandler : public virtual CefBaseRefCounted {
public:
typedef cef_navigation_type_t NavigationType;
......
......@@ -158,7 +158,7 @@ class CefSchemeRegistrar : public CefBaseScoped {
// Class that creates CefResourceHandler instances for handling scheme requests.
// The methods of this class will always be called on the IO thread.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefSchemeHandlerFactory : public virtual CefBaseRefCounted {
public:
///
......
......@@ -49,7 +49,7 @@ typedef cef_thread_id_t CefThreadId;
// the target thread. For this reason be cautious when performing work in the
// task object destructor.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefTask : public virtual CefBaseRefCounted {
public:
///
......
......@@ -120,7 +120,7 @@ bool CefRegisterExtension(const CefString& extension_name,
// A task runner for posting tasks on the associated thread can be retrieved via
// the CefV8Context::GetTaskRunner() method.
///
/*--cef(source=library)--*/
/*--cef(source=library,no_debugct_check)--*/
class CefV8Context : public virtual CefBaseRefCounted {
public:
///
......@@ -224,7 +224,7 @@ typedef std::vector<CefRefPtr<CefV8Value>> CefV8ValueList;
// Interface that should be implemented to handle V8 function calls. The methods
// of this class will be called on the thread associated with the V8 function.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefV8Handler : public virtual CefBaseRefCounted {
public:
///
......@@ -247,7 +247,7 @@ class CefV8Handler : public virtual CefBaseRefCounted {
// identifiers are registered by calling CefV8Value::SetValue(). The methods
// of this class will be called on the thread associated with the V8 accessor.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefV8Accessor : public virtual CefBaseRefCounted {
public:
///
......@@ -285,7 +285,7 @@ class CefV8Accessor : public virtual CefBaseRefCounted {
// handlers (with first argument of type int) are called when object is indexed
// by integer.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefV8Interceptor : public virtual CefBaseRefCounted {
public:
///
......@@ -349,7 +349,7 @@ class CefV8Interceptor : public virtual CefBaseRefCounted {
// Class representing a V8 exception. The methods of this class may be called on
// any render process thread.
///
/*--cef(source=library)--*/
/*--cef(source=library,no_debugct_check)--*/
class CefV8Exception : public virtual CefBaseRefCounted {
public:
///
......@@ -410,7 +410,7 @@ class CefV8Exception : public virtual CefBaseRefCounted {
///
// Callback interface that is passed to CefV8Value::CreateArrayBuffer.
///
/*--cef(source=client)--*/
/*--cef(source=client,no_debugct_check)--*/
class CefV8ArrayBufferReleaseCallback : public virtual CefBaseRefCounted {
public:
///
......@@ -429,7 +429,7 @@ class CefV8ArrayBufferReleaseCallback : public virtual CefBaseRefCounted {
// A task runner for posting tasks on the associated thread can be retrieved via
// the CefV8Context::GetTaskRunner() method.
///
/*--cef(source=library)--*/
/*--cef(source=library,no_debugct_check)--*/
class CefV8Value : public virtual CefBaseRefCounted {
public:
typedef cef_v8_accesscontrol_t AccessControl;
......@@ -938,7 +938,7 @@ class CefV8StackTrace : public virtual CefBaseRefCounted {
// threads. A task runner for posting tasks on the associated thread can be
// retrieved via the CefV8Context::GetTaskRunner() method.
///
/*--cef(source=library)--*/
/*--cef(source=library,no_debugct_check)--*/
class CefV8StackFrame : public virtual CefBaseRefCounted {
public:
///
......
......@@ -9,11 +9,12 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=39933d7b184df9c48a64f3aeabd4be6d8365b44a$
// $hash=5524afc164e5f8baf765fa91e5064105dd34b212$
//
#include "libcef_dll/cpptoc/accessibility_handler_cpptoc.h"
#include "libcef_dll/ctocpp/value_ctocpp.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
......@@ -22,6 +23,8 @@ namespace {
void CEF_CALLBACK accessibility_handler_on_accessibility_tree_change(
struct _cef_accessibility_handler_t* self,
struct _cef_value_t* value) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -40,6 +43,8 @@ void CEF_CALLBACK accessibility_handler_on_accessibility_tree_change(
void CEF_CALLBACK accessibility_handler_on_accessibility_location_change(
struct _cef_accessibility_handler_t* self,
struct _cef_value_t* value) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -66,6 +71,12 @@ CefAccessibilityHandlerCppToC::CefAccessibilityHandlerCppToC() {
accessibility_handler_on_accessibility_location_change;
}
// DESTRUCTOR - Do not edit by hand.
CefAccessibilityHandlerCppToC::~CefAccessibilityHandlerCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefAccessibilityHandler> CefCppToCRefCounted<
CefAccessibilityHandlerCppToC,
......
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=a7bd53b0f936750abeded7f96d1bd9b08743b210$
// $hash=9e3dc01d67ab9ee155d338f458363e8a3025d733$
//
#ifndef CEF_LIBCEF_DLL_CPPTOC_ACCESSIBILITY_HANDLER_CPPTOC_H_
......@@ -32,6 +32,7 @@ class CefAccessibilityHandlerCppToC
cef_accessibility_handler_t> {
public:
CefAccessibilityHandlerCppToC();
virtual ~CefAccessibilityHandlerCppToC();
};
#endif // CEF_LIBCEF_DLL_CPPTOC_ACCESSIBILITY_HANDLER_CPPTOC_H_
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=717cb62ab007871b500dc42b4ec07ee898ecd9af$
// $hash=7a1d9167c083721572cedc99f89ace69364abca8$
//
#include "libcef_dll/cpptoc/app_cpptoc.h"
......@@ -125,6 +125,10 @@ CefAppCppToC::CefAppCppToC() {
GetStruct()->get_render_process_handler = app_get_render_process_handler;
}
// DESTRUCTOR - Do not edit by hand.
CefAppCppToC::~CefAppCppToC() {}
template <>
CefRefPtr<CefApp>
CefCppToCRefCounted<CefAppCppToC, CefApp, cef_app_t>::UnwrapDerived(
......
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=3bc80135e0d4ddbfcd992b0f611ce2de9217819f$
// $hash=157d19ebda820053932102f3c69eff9415d628ad$
//
#ifndef CEF_LIBCEF_DLL_CPPTOC_APP_CPPTOC_H_
......@@ -30,6 +30,7 @@ class CefAppCppToC
: public CefCppToCRefCounted<CefAppCppToC, CefApp, cef_app_t> {
public:
CefAppCppToC();
virtual ~CefAppCppToC();
};
#endif // CEF_LIBCEF_DLL_CPPTOC_APP_CPPTOC_H_
......@@ -9,10 +9,11 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=97fbe821be0b86728980f0694894a66d4bb7afc2$
// $hash=103cb371ed4b96f94928587d464f1c5b459ca24c$
//
#include "libcef_dll/cpptoc/auth_callback_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
......@@ -21,6 +22,8 @@ namespace {
void CEF_CALLBACK auth_callback_cont(struct _cef_auth_callback_t* self,
const cef_string_t* username,
const cef_string_t* password) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -34,6 +37,8 @@ void CEF_CALLBACK auth_callback_cont(struct _cef_auth_callback_t* self,
}
void CEF_CALLBACK auth_callback_cancel(struct _cef_auth_callback_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -53,6 +58,12 @@ CefAuthCallbackCppToC::CefAuthCallbackCppToC() {
GetStruct()->cancel = auth_callback_cancel;
}
// DESTRUCTOR - Do not edit by hand.
CefAuthCallbackCppToC::~CefAuthCallbackCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefAuthCallback> CefCppToCRefCounted<
CefAuthCallbackCppToC,
......
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=f653271e88b2c40b1fcfc331a4dc54f4b77b5921$
// $hash=0d2e25f73053bccb5dee306ed2f71473b43eb3ab$
//
#ifndef CEF_LIBCEF_DLL_CPPTOC_AUTH_CALLBACK_CPPTOC_H_
......@@ -31,6 +31,7 @@ class CefAuthCallbackCppToC : public CefCppToCRefCounted<CefAuthCallbackCppToC,
cef_auth_callback_t> {
public:
CefAuthCallbackCppToC();
virtual ~CefAuthCallbackCppToC();
};
#endif // CEF_LIBCEF_DLL_CPPTOC_AUTH_CALLBACK_CPPTOC_H_
......@@ -9,10 +9,11 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=dc4a3c132fd8fd1c82998a7da135ed672b93b6cc$
// $hash=65ff24a6eea2a6f55773a4e8117fd56ecb8d5d8a$
//
#include "libcef_dll/cpptoc/before_download_callback_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
......@@ -22,6 +23,8 @@ void CEF_CALLBACK
before_download_callback_cont(struct _cef_before_download_callback_t* self,
const cef_string_t* download_path,
int show_dialog) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -42,6 +45,12 @@ CefBeforeDownloadCallbackCppToC::CefBeforeDownloadCallbackCppToC() {
GetStruct()->cont = before_download_callback_cont;
}
// DESTRUCTOR - Do not edit by hand.
CefBeforeDownloadCallbackCppToC::~CefBeforeDownloadCallbackCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefBeforeDownloadCallback>
CefCppToCRefCounted<CefBeforeDownloadCallbackCppToC,
......
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=539c6ddba61ba523f696cd8988586cf79970fe11$
// $hash=9f75a7fb8e74c8a2fa9309351af25628b33d6679$
//
#ifndef CEF_LIBCEF_DLL_CPPTOC_BEFORE_DOWNLOAD_CALLBACK_CPPTOC_H_
......@@ -32,6 +32,7 @@ class CefBeforeDownloadCallbackCppToC
cef_before_download_callback_t> {
public:
CefBeforeDownloadCallbackCppToC();
virtual ~CefBeforeDownloadCallbackCppToC();
};
#endif // CEF_LIBCEF_DLL_CPPTOC_BEFORE_DOWNLOAD_CALLBACK_CPPTOC_H_
......@@ -9,15 +9,18 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=ed48afaf59f8bb35ad3f437e2b4617d6eb631de5$
// $hash=1a09058e8a846ec1ecb223d7883d44e6d36600f1$
//
#include "libcef_dll/cpptoc/binary_value_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
// GLOBAL FUNCTIONS - Body may be edited by hand.
CEF_EXPORT cef_binary_value_t* cef_binary_value_create(const void* data,
size_t data_size) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Verify param: data; type: simple_byaddr
......@@ -37,6 +40,8 @@ namespace {
// MEMBER FUNCTIONS - Body may be edited by hand.
int CEF_CALLBACK binary_value_is_valid(struct _cef_binary_value_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -51,6 +56,8 @@ int CEF_CALLBACK binary_value_is_valid(struct _cef_binary_value_t* self) {
}
int CEF_CALLBACK binary_value_is_owned(struct _cef_binary_value_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -66,6 +73,8 @@ int CEF_CALLBACK binary_value_is_owned(struct _cef_binary_value_t* self) {
int CEF_CALLBACK binary_value_is_same(struct _cef_binary_value_t* self,
struct _cef_binary_value_t* that) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -86,6 +95,8 @@ int CEF_CALLBACK binary_value_is_same(struct _cef_binary_value_t* self,
int CEF_CALLBACK binary_value_is_equal(struct _cef_binary_value_t* self,
struct _cef_binary_value_t* that) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -106,6 +117,8 @@ int CEF_CALLBACK binary_value_is_equal(struct _cef_binary_value_t* self,
struct _cef_binary_value_t* CEF_CALLBACK
binary_value_copy(struct _cef_binary_value_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -120,6 +133,8 @@ binary_value_copy(struct _cef_binary_value_t* self) {
}
size_t CEF_CALLBACK binary_value_get_size(struct _cef_binary_value_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -137,6 +152,8 @@ size_t CEF_CALLBACK binary_value_get_data(struct _cef_binary_value_t* self,
void* buffer,
size_t buffer_size,
size_t data_offset) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -169,6 +186,12 @@ CefBinaryValueCppToC::CefBinaryValueCppToC() {
GetStruct()->get_data = binary_value_get_data;
}
// DESTRUCTOR - Do not edit by hand.
CefBinaryValueCppToC::~CefBinaryValueCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefBinaryValue>
CefCppToCRefCounted<CefBinaryValueCppToC, CefBinaryValue, cef_binary_value_t>::
......
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=1573678e3b5bc9179346a871cd944046719b2875$
// $hash=1a8a2164afef6788e2adf5705ee3a247daa1c09e$
//
#ifndef CEF_LIBCEF_DLL_CPPTOC_BINARY_VALUE_CPPTOC_H_
......@@ -31,6 +31,7 @@ class CefBinaryValueCppToC : public CefCppToCRefCounted<CefBinaryValueCppToC,
cef_binary_value_t> {
public:
CefBinaryValueCppToC();
virtual ~CefBinaryValueCppToC();
};
#endif // CEF_LIBCEF_DLL_CPPTOC_BINARY_VALUE_CPPTOC_H_
......@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=3234ba2fa2ca9fcb4e5062ad1e8f048cee0a2043$
// $hash=d670b45c86f780e4113755c97679cafe089680fb$
//
#include "libcef_dll/cpptoc/browser_cpptoc.h"
......@@ -17,6 +17,7 @@
#include "libcef_dll/cpptoc/browser_host_cpptoc.h"
#include "libcef_dll/cpptoc/frame_cpptoc.h"
#include "libcef_dll/cpptoc/process_message_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
#include "libcef_dll/transfer_util.h"
namespace {
......@@ -25,6 +26,8 @@ namespace {
struct _cef_browser_host_t* CEF_CALLBACK
browser_get_host(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -39,6 +42,8 @@ browser_get_host(struct _cef_browser_t* self) {
}
int CEF_CALLBACK browser_can_go_back(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -53,6 +58,8 @@ int CEF_CALLBACK browser_can_go_back(struct _cef_browser_t* self) {
}
void CEF_CALLBACK browser_go_back(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -64,6 +71,8 @@ void CEF_CALLBACK browser_go_back(struct _cef_browser_t* self) {
}
int CEF_CALLBACK browser_can_go_forward(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -78,6 +87,8 @@ int CEF_CALLBACK browser_can_go_forward(struct _cef_browser_t* self) {
}
void CEF_CALLBACK browser_go_forward(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -89,6 +100,8 @@ void CEF_CALLBACK browser_go_forward(struct _cef_browser_t* self) {
}
int CEF_CALLBACK browser_is_loading(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -103,6 +116,8 @@ int CEF_CALLBACK browser_is_loading(struct _cef_browser_t* self) {
}
void CEF_CALLBACK browser_reload(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -114,6 +129,8 @@ void CEF_CALLBACK browser_reload(struct _cef_browser_t* self) {
}
void CEF_CALLBACK browser_reload_ignore_cache(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -125,6 +142,8 @@ void CEF_CALLBACK browser_reload_ignore_cache(struct _cef_browser_t* self) {
}
void CEF_CALLBACK browser_stop_load(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -136,6 +155,8 @@ void CEF_CALLBACK browser_stop_load(struct _cef_browser_t* self) {
}
int CEF_CALLBACK browser_get_identifier(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -151,6 +172,8 @@ int CEF_CALLBACK browser_get_identifier(struct _cef_browser_t* self) {
int CEF_CALLBACK browser_is_same(struct _cef_browser_t* self,
struct _cef_browser_t* that) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -170,6 +193,8 @@ int CEF_CALLBACK browser_is_same(struct _cef_browser_t* self,
}
int CEF_CALLBACK browser_is_popup(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -184,6 +209,8 @@ int CEF_CALLBACK browser_is_popup(struct _cef_browser_t* self) {
}
int CEF_CALLBACK browser_has_document(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -199,6 +226,8 @@ int CEF_CALLBACK browser_has_document(struct _cef_browser_t* self) {
struct _cef_frame_t* CEF_CALLBACK
browser_get_main_frame(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -214,6 +243,8 @@ browser_get_main_frame(struct _cef_browser_t* self) {
struct _cef_frame_t* CEF_CALLBACK
browser_get_focused_frame(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -229,6 +260,8 @@ browser_get_focused_frame(struct _cef_browser_t* self) {
struct _cef_frame_t* CEF_CALLBACK
browser_get_frame_byident(struct _cef_browser_t* self, int64 identifier) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -245,6 +278,8 @@ browser_get_frame_byident(struct _cef_browser_t* self, int64 identifier) {
struct _cef_frame_t* CEF_CALLBACK browser_get_frame(struct _cef_browser_t* self,
const cef_string_t* name) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -261,6 +296,8 @@ struct _cef_frame_t* CEF_CALLBACK browser_get_frame(struct _cef_browser_t* self,
}
size_t CEF_CALLBACK browser_get_frame_count(struct _cef_browser_t* self) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -277,6 +314,8 @@ size_t CEF_CALLBACK browser_get_frame_count(struct _cef_browser_t* self) {
void CEF_CALLBACK browser_get_frame_identifiers(struct _cef_browser_t* self,
size_t* identifiersCount,
int64* identifiers) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -311,6 +350,8 @@ void CEF_CALLBACK browser_get_frame_identifiers(struct _cef_browser_t* self,
void CEF_CALLBACK browser_get_frame_names(struct _cef_browser_t* self,
cef_string_list_t names) {
shutdown_checker::AssertNotShutdown();
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
......@@ -337,6 +378,8 @@ int CEF_CALLBACK
browser_send_process_message(struct _cef_browser_t* self,
cef_process_id_t target_process,