Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: ui/views/accessibility/ax_aura_obj_cache.cc

Issue 895623003: Reland Ensure WebView notifies desktop automation on creation, destruction, and change (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Is destroying. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ui/views/accessibility/ax_aura_obj_cache.h" 5 #include "ui/views/accessibility/ax_aura_obj_cache.h"
6 6
7 #include "base/memory/singleton.h" 7 #include "base/memory/singleton.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "ui/aura/window.h" 9 #include "ui/aura/window.h"
10 #include "ui/views/accessibility/ax_aura_obj_wrapper.h" 10 #include "ui/views/accessibility/ax_aura_obj_wrapper.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 void AXAuraObjCache::Remove(int32 id) { 69 void AXAuraObjCache::Remove(int32 id) {
70 AXAuraObjWrapper* obj = Get(id); 70 AXAuraObjWrapper* obj = Get(id);
71 71
72 if (id == -1 || !obj) 72 if (id == -1 || !obj)
73 return; 73 return;
74 74
75 cache_.erase(id); 75 cache_.erase(id);
76 delete obj; 76 delete obj;
77 } 77 }
78 78
79 AXAuraObjCache::AXAuraObjCache() : current_id_(1) { 79 AXAuraObjCache::AXAuraObjCache() : current_id_(1), is_destroying_(false) {
80 } 80 }
81 81
82 AXAuraObjCache::~AXAuraObjCache() { 82 AXAuraObjCache::~AXAuraObjCache() {
83 is_destroying_ = true;
83 STLDeleteContainerPairSecondPointers(cache_.begin(), cache_.end()); 84 STLDeleteContainerPairSecondPointers(cache_.begin(), cache_.end());
84 cache_.clear(); 85 cache_.clear();
85 } 86 }
86 87
87 template <typename AuraViewWrapper, typename AuraView> 88 template <typename AuraViewWrapper, typename AuraView>
88 AXAuraObjWrapper* AXAuraObjCache::CreateInternal( 89 AXAuraObjWrapper* AXAuraObjCache::CreateInternal(
89 AuraView* aura_view, std::map<AuraView*, int32>& aura_view_to_id_map) { 90 AuraView* aura_view, std::map<AuraView*, int32>& aura_view_to_id_map) {
90 if (!aura_view) 91 if (!aura_view)
91 return NULL; 92 return NULL;
92 93
(...skipping 28 matching lines...) Expand all
121 void AXAuraObjCache::RemoveInternal( 122 void AXAuraObjCache::RemoveInternal(
122 AuraView* aura_view, std::map<AuraView*, int32>& aura_view_to_id_map) { 123 AuraView* aura_view, std::map<AuraView*, int32>& aura_view_to_id_map) {
123 int32 id = GetID(aura_view); 124 int32 id = GetID(aura_view);
124 if (id == -1) 125 if (id == -1)
125 return; 126 return;
126 aura_view_to_id_map.erase(aura_view); 127 aura_view_to_id_map.erase(aura_view);
127 Remove(id); 128 Remove(id);
128 } 129 }
129 130
130 } // namespace views 131 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/accessibility/ax_aura_obj_cache.h ('k') | ui/views/accessibility/ax_widget_obj_wrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698