Index: Source/web/ColorChooserUIController.cpp |
diff --git a/Source/web/ColorChooserUIController.cpp b/Source/web/ColorChooserUIController.cpp |
index e456781cfd077914a471cc157ea260409516c739..874918455b22d237021a349d1c8b183f3b100a5f 100644 |
--- a/Source/web/ColorChooserUIController.cpp |
+++ b/Source/web/ColorChooserUIController.cpp |
@@ -45,6 +45,16 @@ ColorChooserUIController::ColorChooserUIController(LocalFrame* frame, ColorChoos |
ColorChooserUIController::~ColorChooserUIController() |
{ |
+ // The client cannot be accessed when finalizing. |
+ m_client = nullptr; |
+ endChooser(); |
+} |
+ |
+void ColorChooserUIController::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_frame); |
+ visitor->trace(m_client); |
+ ColorChooser::trace(visitor); |
} |
void ColorChooserUIController::openUI() |
@@ -79,7 +89,8 @@ void ColorChooserUIController::didEndChooser() |
{ |
ASSERT(m_client); |
m_chooser = nullptr; |
- m_client->didEndChooser(); |
+ if (m_client) |
+ m_client->didEndChooser(); |
} |
void ColorChooserUIController::openColorChooser() |