summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorklink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-09 00:03:18 +0000
committerklink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-09 00:03:18 +0000
commitbdf647955f0bed7bd2fd3b7a9133ff46e9604687 (patch)
tree906f28e577382543a9a20fe913b5eec81af83e84 /chrome
parent0d13416b940db94edc3d0a275f41abfe15b36a84 (diff)
downloadchromium_src-bdf647955f0bed7bd2fd3b7a9133ff46e9604687.zip
chromium_src-bdf647955f0bed7bd2fd3b7a9133ff46e9604687.tar.gz
chromium_src-bdf647955f0bed7bd2fd3b7a9133ff46e9604687.tar.bz2
Fixes crash in BrowserAccessibilityManager destructor (see CPBrowsingContextManager for example of this type of fix).
Also fixes small style issue, to be consistent with other Singleton implementations. Review URL: http://codereview.chromium.org/6282 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3078 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/browser_accessibility.cc11
-rw-r--r--chrome/browser/browser_accessibility_manager.cc6
-rw-r--r--chrome/browser/browser_accessibility_manager.h4
-rw-r--r--chrome/browser/render_widget_host_hwnd.cc5
4 files changed, 14 insertions, 12 deletions
diff --git a/chrome/browser/browser_accessibility.cc b/chrome/browser/browser_accessibility.cc
index bb6b8d2..fea5bf2 100644
--- a/chrome/browser/browser_accessibility.cc
+++ b/chrome/browser/browser_accessibility.cc
@@ -533,23 +533,24 @@ STDMETHODIMP BrowserAccessibility::put_accValue(VARIANT var_id, BSTR put_val) {
STDMETHODIMP BrowserAccessibility::CreateInstance(REFIID iid,
int iaccessible_id,
void** interface_ptr) {
- return BrowserAccessibilityManager::Instance()->CreateAccessibilityInstance(
- iid, iaccessible_id, instance_id(), interface_ptr);
+ return BrowserAccessibilityManager::GetInstance()->
+ CreateAccessibilityInstance(iid, iaccessible_id, instance_id(),
+ interface_ptr);
}
bool BrowserAccessibility::RequestAccessibilityInfo(int iaccessible_func_id,
VARIANT var_id, LONG input1,
LONG input2) {
- return BrowserAccessibilityManager::Instance()->RequestAccessibilityInfo(
+ return BrowserAccessibilityManager::GetInstance()->RequestAccessibilityInfo(
iaccessible_id(), instance_id(), iaccessible_func_id, var_id, input1,
input2);
}
ViewHostMsg_Accessibility_Out_Params BrowserAccessibility::response() {
- return BrowserAccessibilityManager::Instance()->response();
+ return BrowserAccessibilityManager::GetInstance()->response();
}
HWND BrowserAccessibility::parent_hwnd() {
- return BrowserAccessibilityManager::Instance()->parent_hwnd(instance_id());
+ return BrowserAccessibilityManager::GetInstance()->parent_hwnd(instance_id());
}
diff --git a/chrome/browser/browser_accessibility_manager.cc b/chrome/browser/browser_accessibility_manager.cc
index c670cf8..f2755c0 100644
--- a/chrome/browser/browser_accessibility_manager.cc
+++ b/chrome/browser/browser_accessibility_manager.cc
@@ -13,7 +13,7 @@
static const int kAccessibilityMessageTimeOut = 500;
// static
-BrowserAccessibilityManager* BrowserAccessibilityManager::Instance() {
+BrowserAccessibilityManager* BrowserAccessibilityManager::GetInstance() {
return Singleton<BrowserAccessibilityManager>::get();
}
@@ -28,8 +28,8 @@ BrowserAccessibilityManager::~BrowserAccessibilityManager() {
instance_map_.clear();
render_process_host_map_.clear();
- NotificationService::current()->RemoveObserver(this,
- NOTIFY_RENDERER_PROCESS_TERMINATED, NotificationService::AllSources());
+ // We don't remove ourselves as an observer because we are a Singleton object,
+ // and NotifcationService is likely gone by this point.
}
STDMETHODIMP BrowserAccessibilityManager::CreateAccessibilityInstance(
diff --git a/chrome/browser/browser_accessibility_manager.h b/chrome/browser/browser_accessibility_manager.h
index 1ac25e4..4d837bf 100644
--- a/chrome/browser/browser_accessibility_manager.h
+++ b/chrome/browser/browser_accessibility_manager.h
@@ -47,7 +47,7 @@ class BrowserAccessibilityManager : public NotificationObserver {
// Gets the singleton BrowserAccessibilityManager object. The first time this
// method is called, a CacheManagerHost object is constructed and returned.
// Subsequent calls will return the same object.
- static BrowserAccessibilityManager* Instance();
+ static BrowserAccessibilityManager* GetInstance();
// Creates an instance of BrowserAccessibility, initializes it and sets the
// iaccessible_id and parent_id.
@@ -86,7 +86,7 @@ class BrowserAccessibilityManager : public NotificationObserver {
protected:
// This class is a singleton. Do not instantiate directly.
BrowserAccessibilityManager();
- friend DefaultSingletonTraits<BrowserAccessibilityManager>;
+ friend struct DefaultSingletonTraits<BrowserAccessibilityManager>;
~BrowserAccessibilityManager();
diff --git a/chrome/browser/render_widget_host_hwnd.cc b/chrome/browser/render_widget_host_hwnd.cc
index bae1cfa..3ed7b6d 100644
--- a/chrome/browser/render_widget_host_hwnd.cc
+++ b/chrome/browser/render_widget_host_hwnd.cc
@@ -773,8 +773,9 @@ LRESULT RenderWidgetHostHWND::OnGetObject(UINT message, WPARAM wparam,
accessibility->set_iaccessible_id(0);
// Set the unique member variables of this particular process.
- accessibility->set_instance_id(BrowserAccessibilityManager::Instance()->
- SetMembers(accessibility, m_hWnd, render_widget_host_));
+ accessibility->set_instance_id(
+ BrowserAccessibilityManager::GetInstance()->
+ SetMembers(accessibility, m_hWnd, render_widget_host_));
// All is well, assign the temp instance to the class smart pointer.
browser_accessibility_root_.Attach(accessibility_comptr.Detach());