Index: chrome/test/chromedriver/session.h |
diff --git a/chrome/test/chromedriver/session.h b/chrome/test/chromedriver/session.h |
index fe837fbf061d252393742ef161326ad3cf8051fe..2df16d7ae6912c4ae08824f94ada9edd25cb9885 100644 |
--- a/chrome/test/chromedriver/session.h |
+++ b/chrome/test/chromedriver/session.h |
@@ -16,6 +16,7 @@ |
#include "chrome/test/chromedriver/basic_types.h" |
#include "chrome/test/chromedriver/chrome/device_metrics.h" |
#include "chrome/test/chromedriver/chrome/geoposition.h" |
+#include "chrome/test/chromedriver/command_listener.h" |
namespace base { |
class DictionaryValue; |
@@ -77,6 +78,11 @@ struct Session { |
base::ScopedTempDir temp_dir; |
scoped_ptr<base::DictionaryValue> capabilities; |
bool auto_reporting_enabled; |
+ // |command_listeners| should be declared after |chrome|. When the |Session| |
+ // is destroyed, |command_listeners| should be freed first, since some |
+ // |CommandListener|s might be |CommandListenerProxy|s that forward to |
+ // |DevToolsEventListener|s owned by |chrome|. |
+ ScopedVector<CommandListener> command_listeners; |
}; |
Session* GetThreadLocalSession(); |