| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/accessibility/browser_accessibility_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_win.h" |
| 6 | 6 |
| 7 #include "ui/base/win/atl_module.h" | 7 #include "ui/base/win/atl_module.h" |
| 8 | 8 |
| 9 namespace content { | 9 namespace content { |
| 10 | 10 |
| 11 // static | 11 // static |
| 12 BrowserAccessibility* BrowserAccessibility::Create() { | 12 BrowserAccessibility* BrowserAccessibility::Create() { |
| 13 return new BrowserAccessibilityWin(); | 13 return new BrowserAccessibilityWin(); |
| 14 } | 14 } |
| 15 | 15 |
| 16 BrowserAccessibilityWin::BrowserAccessibilityWin() { | 16 BrowserAccessibilityWin::BrowserAccessibilityWin() { |
| 17 ui::win::CreateATLModuleIfNeeded(); | 17 ui::win::CreateATLModuleIfNeeded(); |
| 18 HRESULT hr = CComObject<BrowserAccessibilityComWin>::CreateInstance( | 18 HRESULT hr = CComObject<BrowserAccessibilityComWin>::CreateInstance( |
| 19 &browser_accessibility_com_); | 19 &browser_accessibility_com_); |
| 20 DCHECK(SUCCEEDED(hr)); | 20 DCHECK(SUCCEEDED(hr)); |
| 21 | 21 |
| 22 browser_accessibility_com_->AddRef(); | 22 browser_accessibility_com_->AddRef(); |
| 23 browser_accessibility_com_->SetOwner(this); | 23 browser_accessibility_com_->SetOwner(this); |
| 24 | 24 |
| 25 // Set the delegate to us | 25 // Set the delegate to us |
| 26 browser_accessibility_com_->Init(this); | 26 browser_accessibility_com_->Init(this); |
| 27 } | 27 } |
| 28 | 28 |
| 29 BrowserAccessibilityWin::~BrowserAccessibilityWin() {} | 29 BrowserAccessibilityWin::~BrowserAccessibilityWin() { |
| 30 if (browser_accessibility_com_) { |
| 31 browser_accessibility_com_->Destroy(); |
| 32 browser_accessibility_com_ = nullptr; |
| 33 } |
| 34 } |
| 30 | 35 |
| 31 void BrowserAccessibilityWin::UpdatePlatformAttributes() { | 36 void BrowserAccessibilityWin::UpdatePlatformAttributes() { |
| 32 GetCOM()->UpdateStep1ComputeWinAttributes(); | 37 GetCOM()->UpdateStep1ComputeWinAttributes(); |
| 33 GetCOM()->UpdateStep2ComputeHypertext(); | 38 GetCOM()->UpdateStep2ComputeHypertext(); |
| 34 GetCOM()->UpdateStep3FireEvents(false); | 39 GetCOM()->UpdateStep3FireEvents(false); |
| 35 } | 40 } |
| 36 | 41 |
| 37 void BrowserAccessibilityWin::Destroy() { | |
| 38 if (browser_accessibility_com_) { | |
| 39 browser_accessibility_com_->Destroy(); | |
| 40 browser_accessibility_com_ = nullptr; | |
| 41 } | |
| 42 BrowserAccessibility::Destroy(); | |
| 43 } | |
| 44 | |
| 45 void BrowserAccessibilityWin::OnSubtreeWillBeDeleted() { | 42 void BrowserAccessibilityWin::OnSubtreeWillBeDeleted() { |
| 46 GetCOM()->FireNativeEvent(EVENT_OBJECT_HIDE); | 43 GetCOM()->FireNativeEvent(EVENT_OBJECT_HIDE); |
| 47 } | 44 } |
| 48 | 45 |
| 49 bool BrowserAccessibilityWin::IsNative() const { | 46 bool BrowserAccessibilityWin::IsNative() const { |
| 50 return true; | 47 return true; |
| 51 } | 48 } |
| 52 | 49 |
| 53 void BrowserAccessibilityWin::OnLocationChanged() { | 50 void BrowserAccessibilityWin::OnLocationChanged() { |
| 54 GetCOM()->FireNativeEvent(EVENT_OBJECT_LOCATIONCHANGE); | 51 GetCOM()->FireNativeEvent(EVENT_OBJECT_LOCATIONCHANGE); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 70 return static_cast<BrowserAccessibilityWin*>(obj); | 67 return static_cast<BrowserAccessibilityWin*>(obj); |
| 71 } | 68 } |
| 72 | 69 |
| 73 const BrowserAccessibilityWin* | 70 const BrowserAccessibilityWin* |
| 74 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { | 71 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { |
| 75 DCHECK(!obj || obj->IsNative()); | 72 DCHECK(!obj || obj->IsNative()); |
| 76 return static_cast<const BrowserAccessibilityWin*>(obj); | 73 return static_cast<const BrowserAccessibilityWin*>(obj); |
| 77 } | 74 } |
| 78 | 75 |
| 79 } // namespace content | 76 } // namespace content |
| OLD | NEW |