diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 21:40:55 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 21:40:55 +0000 |
commit | ef9162785c55957324e72f737bb9b6b2406053dd (patch) | |
tree | d8c4b934a957eff37caffa911c91066fe27e04fb /chrome/common/child_process_logging.h | |
parent | 9e6f8526f9a60410b6d448103a9015d72a067deb (diff) | |
download | chromium_src-ef9162785c55957324e72f737bb9b6b2406053dd.zip chromium_src-ef9162785c55957324e72f737bb9b6b2406053dd.tar.gz chromium_src-ef9162785c55957324e72f737bb9b6b2406053dd.tar.bz2 |
Add the page url to plugin crashes to aid debugging.
Review URL: http://codereview.chromium.org/155238
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20191 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/child_process_logging.h')
-rw-r--r-- | chrome/common/child_process_logging.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/chrome/common/child_process_logging.h b/chrome/common/child_process_logging.h new file mode 100644 index 0000000..43b34d2 --- /dev/null +++ b/chrome/common/child_process_logging.h @@ -0,0 +1,55 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_COMMON_CHILD_PROCESS_LOGGING_H_ +#define CHROME_COMMON_CHILD_PROCESS_LOGGING_H_ + +#include "base/basictypes.h" +#include "googleurl/src/gurl.h" + +namespace child_process_logging { + +// Sets the URL that is logged if the child process crashes. Use GURL() to clear +// the URL. +void SetActiveURL(const GURL& url); + +// Simple wrapper class that sets the active URL in it's constructor and clears +// the active URL in the destructor. +class ScopedActiveURLSetter { + public: + explicit ScopedActiveURLSetter(const GURL& url) { + SetActiveURL(url); + } + + ~ScopedActiveURLSetter() { + SetActiveURL(GURL()); + } + + private: + DISALLOW_COPY_AND_ASSIGN(ScopedActiveURLSetter); +}; + +} // namespace child_process_logging + +#if defined(OS_MACOSX) && __OBJC__ +// Exported for testing purposes. + +@class NSString; + +typedef void (*SetCrashKeyValueFuncPtr)(NSString*, NSString*); +typedef void (*ClearCrashKeyValueFuncPtr)(NSString*); + +namespace child_process_logging { +void SetActiveURLImpl(const GURL& url, + SetCrashKeyValueFuncPtr set_key_func, + ClearCrashKeyValueFuncPtr clear_key_func); + +extern const int kMaxNumCrashURLChunks; +extern const int kMaxNumURLChunkValueLength; +extern const char *kUrlChunkFormatStr; +} // namespace child_process_logging + +#endif // defined(OS_MACOSX) && __OBJC__ + +#endif // CHROME_COMMON_CHILD_PROCESS_LOGGING_H_ |