Chromium Code Reviews| 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
| 9 #include "chrome/browser/automation/automation_event_observers.h" | 9 #include "chrome/browser/automation/automation_event_observers.h" |
| 10 #include "chrome/browser/automation/automation_event_queue.h" | 10 #include "chrome/browser/automation/automation_event_queue.h" |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 21 : event_queue_(event_queue), | 21 : event_queue_(event_queue), |
| 22 recurring_(recurring), | 22 recurring_(recurring), |
| 23 observer_id_(-1), | 23 observer_id_(-1), |
| 24 event_count_(0) { | 24 event_count_(0) { |
| 25 DCHECK(event_queue_ != NULL); | 25 DCHECK(event_queue_ != NULL); |
| 26 } | 26 } |
| 27 | 27 |
| 28 AutomationEventObserver::~AutomationEventObserver() {} | 28 AutomationEventObserver::~AutomationEventObserver() {} |
| 29 | 29 |
| 30 void AutomationEventObserver::NotifyEvent(DictionaryValue* value) { | 30 void AutomationEventObserver::NotifyEvent(DictionaryValue* value) { |
| 31 if (event_queue_) { | 31 if (event_queue_) { |
|
dennis_jeffrey
2012/05/16 16:55:42
Will "value" get deleted on the "true" branch of t
craigdh
2012/05/16 17:00:55
Yes. On "true" the AutomationEventQueue takes owne
| |
| 32 if (!value) | |
| 33 value = new DictionaryValue; | |
|
dennis_jeffrey
2012/05/16 16:55:42
Is this check needed? It looks like both callers
craigdh
2012/05/16 17:00:55
Right now NULL is not being passed, but is because
| |
| 34 value->SetInteger("observer_id", GetId()); | |
| 32 event_queue_->NotifyEvent( | 35 event_queue_->NotifyEvent( |
| 33 new AutomationEventQueue::AutomationEvent( | 36 new AutomationEventQueue::AutomationEvent( |
| 34 GetId(), value)); | 37 GetId(), value)); |
| 35 event_count_++; | 38 event_count_++; |
| 39 } else if (value) { | |
| 40 delete value; | |
| 36 } | 41 } |
| 37 } | 42 } |
| 38 | 43 |
| 39 void AutomationEventObserver::Init(int observer_id) { | 44 void AutomationEventObserver::Init(int observer_id) { |
| 40 observer_id_ = observer_id; | 45 observer_id_ = observer_id; |
| 41 } | 46 } |
| 42 | 47 |
| 43 int AutomationEventObserver::GetId() const { | 48 int AutomationEventObserver::GetId() const { |
| 44 return observer_id_; | 49 return observer_id_; |
| 45 } | 50 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 85 if (type == content::NOTIFICATION_DOM_OPERATION_RESPONSE) { | 90 if (type == content::NOTIFICATION_DOM_OPERATION_RESPONSE) { |
| 86 content::Details<content::DomOperationNotificationDetails> dom_op_details( | 91 content::Details<content::DomOperationNotificationDetails> dom_op_details( |
| 87 details); | 92 details); |
| 88 if ((dom_op_details->automation_id == automation_id_ || | 93 if ((dom_op_details->automation_id == automation_id_ || |
| 89 automation_id_ == -1) && | 94 automation_id_ == -1) && |
| 90 (event_name_.length() == 0 || | 95 (event_name_.length() == 0 || |
| 91 event_name_.compare(dom_op_details->json) == 0)) { | 96 event_name_.compare(dom_op_details->json) == 0)) { |
| 92 DictionaryValue* dict = new DictionaryValue; | 97 DictionaryValue* dict = new DictionaryValue; |
| 93 dict->SetString("type", "raised_event"); | 98 dict->SetString("type", "raised_event"); |
| 94 dict->SetString("name", dom_op_details->json); | 99 dict->SetString("name", dom_op_details->json); |
| 95 dict->SetInteger("observer_id", GetId()); | |
| 96 NotifyEvent(dict); | 100 NotifyEvent(dict); |
| 97 } | 101 } |
| 98 } | 102 } |
| 99 // Nothing should happen after RemoveIfDone() as it may delete the object. | 103 // Nothing should happen after RemoveIfDone() as it may delete the object. |
| 100 RemoveIfDone(); | 104 RemoveIfDone(); |
| 101 } | 105 } |
| OLD | NEW |