Title: [171860] trunk/Source/WebKit2
- Revision
- 171860
- Author
- [email protected]
- Date
- 2014-07-31 10:11:30 -0700 (Thu, 31 Jul 2014)
Log Message
AX: iOS: Crash accessing m_page in WKAccessibilityPageObject
https://bugs.webkit.org/show_bug.cgi?id=134617
Reviewed by Darin Adler.
Provide a way to detach a WK2 WebPage object so that it can uninitialize other pointers, like the accessibility object.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::~WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::platformDetach):
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformDetach):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformDetach):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformDetach):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (171859 => 171860)
--- trunk/Source/WebKit2/ChangeLog 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/ChangeLog 2014-07-31 17:11:30 UTC (rev 171860)
@@ -1,3 +1,24 @@
+2014-07-31 Chris Fleizach <[email protected]>
+
+ AX: iOS: Crash accessing m_page in WKAccessibilityPageObject
+ https://bugs.webkit.org/show_bug.cgi?id=134617
+
+ Reviewed by Darin Adler.
+
+ Provide a way to detach a WK2 WebPage object so that it can uninitialize other pointers, like the accessibility object.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::~WebPage):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/efl/WebPageEfl.cpp:
+ (WebKit::WebPage::platformDetach):
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::platformDetach):
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::platformDetach):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::WebPage::platformDetach):
+
2014-07-31 Dan Bernstein <[email protected]>
WebKit part of: Server trust authentication challenges aren’t sent to the navigation delegate
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (171859 => 171860)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-07-31 17:11:30 UTC (rev 171860)
@@ -500,6 +500,8 @@
WebProcess::shared().eventDispatcher().removeScrollingTreeForPage(this);
#endif
+ platformDetach();
+
m_sandboxExtensionTracker.invalidate();
for (auto* pluginView : m_pluginViews)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (171859 => 171860)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2014-07-31 17:11:30 UTC (rev 171860)
@@ -853,6 +853,7 @@
virtual uint64_t messageSenderDestinationID() override;
void platformInitialize();
+ void platformDetach();
void didReceiveWebPageMessage(IPC::Connection*, IPC::MessageDecoder&);
void didReceiveSyncWebPageMessage(IPC::Connection*, IPC::MessageDecoder&, std::unique_ptr<IPC::MessageEncoder>&);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp (171859 => 171860)
--- trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp 2014-07-31 17:11:30 UTC (rev 171860)
@@ -61,6 +61,10 @@
#endif
}
+void WebPage::platformDetach()
+{
+}
+
#if HAVE(ACCESSIBILITY)
void WebPage::updateAccessibilityTree()
{
Modified: trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp (171859 => 171860)
--- trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp 2014-07-31 17:11:30 UTC (rev 171860)
@@ -66,6 +66,10 @@
#endif
}
+void WebPage::platformDetach()
+{
+}
+
#if HAVE(ACCESSIBILITY)
void WebPage::updateAccessibilityTree()
{
Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (171859 => 171860)
--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2014-07-31 17:11:30 UTC (rev 171860)
@@ -101,6 +101,11 @@
platformInitializeAccessibility();
}
+void WebPage::platformDetach()
+{
+ [m_mockAccessibilityElement setWebPage:nullptr];
+}
+
void WebPage::platformInitializeAccessibility()
{
m_mockAccessibilityElement = adoptNS([[WKAccessibilityWebPageObject alloc] init]);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm (171859 => 171860)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm 2014-07-31 16:45:19 UTC (rev 171859)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm 2014-07-31 17:11:30 UTC (rev 171860)
@@ -102,6 +102,11 @@
m_mockAccessibilityElement = mockAccessibilityElement;
}
+void WebPage::platformDetach()
+{
+ [m_mockAccessibilityElement setWebPage:nullptr];
+}
+
NSObject *WebPage::accessibilityObjectForMainFramePlugin()
{
if (!m_page)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes