| Index: ui/views/accessibility/native_view_accessibility.cc
|
| diff --git a/ui/views/accessibility/native_view_accessibility.cc b/ui/views/accessibility/native_view_accessibility.cc
|
| index c10e55cc3ac51e5c358cbc316bf3af411bed9d00..9c753793a15fb56e77da30903ebc39a328cdf28f 100644
|
| --- a/ui/views/accessibility/native_view_accessibility.cc
|
| +++ b/ui/views/accessibility/native_view_accessibility.cc
|
| @@ -206,15 +206,22 @@ void NativeViewAccessibility::DoDefaultAction() {
|
|
|
| bool NativeViewAccessibility::SetStringValue(const base::string16& new_value) {
|
| // Return an error if the view can't set the value.
|
| - ui::AXViewState state;
|
| - view_->GetAccessibleState(&state);
|
| - if (state.set_value_callback.is_null())
|
| + if (!CanSetStringValue())
|
| return false;
|
|
|
| + ui::AXViewState state;
|
| + view_->GetAccessibleState(&state);
|
| state.set_value_callback.Run(new_value);
|
| return true;
|
| }
|
|
|
| +bool NativeViewAccessibility::CanSetStringValue() {
|
| + ui::AXViewState state;
|
| + view_->GetAccessibleState(&state);
|
| + return !ui::AXViewState::IsFlagSet(GetData().state, ui::AX_STATE_READ_ONLY) &&
|
| + !state.set_value_callback.is_null();
|
| +}
|
| +
|
| void NativeViewAccessibility::OnWidgetDestroying(Widget* widget) {
|
| if (parent_widget_ == widget) {
|
| parent_widget_->RemoveObserver(this);
|
|
|