// Copyright (c) 2012 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. #include "content/browser/accessibility/browser_accessibility_win.h" #include "content/browser/accessibility/browser_accessibility_manager.h" #include "content/browser/accessibility/browser_accessibility_state_impl.h" #include "ui/base/win/atl_module.h" namespace content { // static BrowserAccessibility* BrowserAccessibility::Create() { return new BrowserAccessibilityWin(); } BrowserAccessibilityWin::BrowserAccessibilityWin() { ui::win::CreateATLModuleIfNeeded(); HRESULT hr = CComObject::CreateInstance( &browser_accessibility_com_); DCHECK(SUCCEEDED(hr)); browser_accessibility_com_->AddRef(); // Set the delegate to us browser_accessibility_com_->Init(this); } BrowserAccessibilityWin::~BrowserAccessibilityWin() { if (browser_accessibility_com_) { browser_accessibility_com_->Destroy(); browser_accessibility_com_ = nullptr; } } void BrowserAccessibilityWin::UpdatePlatformAttributes() { GetCOM()->UpdateStep1ComputeWinAttributes(); GetCOM()->UpdateStep2ComputeHypertext(); GetCOM()->UpdateStep3FireEvents(); } bool BrowserAccessibilityWin::CanFireEvents() const { // On Windows, we want to hide the subtree of a collapsed