Index: chrome/test/automation/automation_handle_tracker.cc |
=================================================================== |
--- chrome/test/automation/automation_handle_tracker.cc (revision 261647) |
+++ chrome/test/automation/automation_handle_tracker.cc (working copy) |
@@ -1,72 +0,0 @@ |
-// Copyright (c) 2006-2008 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 "chrome/test/automation/automation_handle_tracker.h" |
- |
-#include "chrome/common/automation_messages.h" |
-#include "chrome/test/automation/automation_proxy.h" |
- |
-AutomationResourceProxy::AutomationResourceProxy( |
- AutomationHandleTracker* tracker, AutomationMessageSender* sender, |
- AutomationHandle handle) |
- : handle_(handle), |
- tracker_(tracker), |
- sender_(sender), |
- is_valid_(true) { |
- tracker_->Add(this); |
-} |
- |
-AutomationResourceProxy::~AutomationResourceProxy() { |
- if (tracker_) |
- tracker_->Remove(this); |
-} |
- |
-AutomationHandleTracker::AutomationHandleTracker() : channel_(NULL) {} |
- |
-AutomationHandleTracker::~AutomationHandleTracker() { |
- // Tell any live objects that the tracker is going away so they don't try to |
- // call us when they are being destroyed. |
- for (HandleToObjectMap::iterator iter = handle_to_object_.begin(); |
- iter != handle_to_object_.end(); ++iter) { |
- iter->second->Invalidate(); |
- } |
-} |
- |
-void AutomationHandleTracker::Add(AutomationResourceProxy* proxy) { |
- base::AutoLock lock(map_lock_); |
- handle_to_object_.insert(MapEntry(proxy->handle(), proxy)); |
-} |
- |
-void AutomationHandleTracker::Remove(AutomationResourceProxy* proxy) { |
- base::AutoLock lock(map_lock_); |
- HandleToObjectMap::iterator iter = handle_to_object_.find(proxy->handle()); |
- if (iter != handle_to_object_.end()) { |
- AutomationHandle proxy_handle = proxy->handle(); |
- handle_to_object_.erase(iter); |
- if (channel_) |
- channel_->Send(new AutomationMsg_HandleUnused(proxy_handle)); |
- } |
-} |
- |
-void AutomationHandleTracker::InvalidateHandle(AutomationHandle handle) { |
- // Called in background thread. |
- base::AutoLock lock(map_lock_); |
- HandleToObjectMap::iterator iter = handle_to_object_.find(handle); |
- if (iter != handle_to_object_.end()) { |
- scoped_refptr<AutomationResourceProxy> proxy = iter->second; |
- handle_to_object_.erase(iter); |
- proxy->Invalidate(); |
- } |
-} |
- |
-AutomationResourceProxy* AutomationHandleTracker::GetResource( |
- AutomationHandle handle) { |
- base::AutoLock lock(map_lock_); |
- HandleToObjectMap::iterator iter = handle_to_object_.find(handle); |
- if (iter == handle_to_object_.end()) |
- return NULL; |
- |
- iter->second->AddRef(); |
- return iter->second.get(); |
-} |