| Index: base/logging.h
|
| diff --git a/base/logging.h b/base/logging.h
|
| index 1dcb0f71f12ed6b9854524161e7555ea3ac609e1..bf4152728dbba6babb4237e3c6cc2a6d4c4d87e6 100644
|
| --- a/base/logging.h
|
| +++ b/base/logging.h
|
| @@ -15,9 +15,11 @@
|
| #include <utility>
|
|
|
| #include "base/base_export.h"
|
| +#include "base/callback_forward.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/debug/debugger.h"
|
| #include "base/macros.h"
|
| +#include "base/strings/string_piece_forward.h"
|
| #include "base/template_util.h"
|
| #include "build/build_config.h"
|
|
|
| @@ -274,11 +276,24 @@ BASE_EXPORT void SetLogItems(bool enable_process_id, bool enable_thread_id,
|
| BASE_EXPORT void SetShowErrorDialogs(bool enable_dialogs);
|
|
|
| // Sets the Log Assert Handler that will be used to notify of check failures.
|
| +// Resets Log Assert Handler on object destruction.
|
| // The default handler shows a dialog box and then terminate the process,
|
| // however clients can use this function to override with their own handling
|
| // (e.g. a silent one for Unit Tests)
|
| -typedef void (*LogAssertHandlerFunction)(const std::string& str);
|
| -BASE_EXPORT void SetLogAssertHandler(LogAssertHandlerFunction handler);
|
| +using LogAssertHandlerFunction =
|
| + base::Callback<void(const char* file,
|
| + int line,
|
| + const base::StringPiece message,
|
| + const base::StringPiece stack_trace)>;
|
| +
|
| +class BASE_EXPORT ScopedLogAssertHandler {
|
| + public:
|
| + explicit ScopedLogAssertHandler(LogAssertHandlerFunction handler);
|
| + ~ScopedLogAssertHandler();
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ScopedLogAssertHandler);
|
| +};
|
|
|
| // Sets the Log Message Handler that gets passed every log message before
|
| // it's sent to other log destinations (if any).
|
|
|