Index: components/test_runner/mock_color_chooser.cc |
diff --git a/components/test_runner/mock_color_chooser.cc b/components/test_runner/mock_color_chooser.cc |
index 55d586b3580f82a2fe62b5df7eeaf8d4e89c965d..f56bbfa5eb5dd0610c173d98f4e3c6fc5226f101 100644 |
--- a/components/test_runner/mock_color_chooser.cc |
+++ b/components/test_runner/mock_color_chooser.cc |
@@ -4,6 +4,7 @@ |
#include "components/test_runner/mock_color_chooser.h" |
+#include "components/test_runner/test_runner.h" |
#include "components/test_runner/web_test_delegate.h" |
#include "components/test_runner/web_test_proxy.h" |
@@ -27,26 +28,28 @@ class HostMethodTask : public WebMethodTask<MockColorChooser> { |
MockColorChooser::MockColorChooser(blink::WebColorChooserClient* client, |
WebTestDelegate* delegate, |
- WebTestProxyBase* proxy) |
- : client_(client), |
- delegate_(delegate), |
- proxy_(proxy) { |
- proxy_->DidOpenChooser(); |
+ TestRunner* test_runner) |
+ : client_(client), delegate_(delegate), test_runner_(test_runner) { |
+ test_runner_->DidOpenChooser(); |
} |
MockColorChooser::~MockColorChooser() { |
- proxy_->DidCloseChooser(); |
+ test_runner_->DidCloseChooser(); |
} |
void MockColorChooser::setSelectedColor(const blink::WebColor color) {} |
void MockColorChooser::endChooser() { |
+ DCHECK(client_); |
+ DCHECK(delegate_); |
delegate_->PostDelayedTask( |
new HostMethodTask(this, &MockColorChooser::InvokeDidEndChooser), 0); |
+ delegate_ = nullptr; |
} |
void MockColorChooser::InvokeDidEndChooser() { |
client_->didEndChooser(); |
+ client_ = nullptr; |
kochi
2016/03/31 08:14:34
I'm seeing this line is causing a use-after-free.
|
} |
} // namespace test_runner |