void DOMWindowExtensionBasic::willDestroyGlobalObjectForDOMWindowExtension(WKBundleDOMWindowExtensionRef extension) { m_numberOfDestroyedExtensions++; updateExtensionStateRecord(extension, Destroyed); sendBundleMessage("WillDestroyGlobalObjectForDOMWindowExtension called"); if (m_numberOfDestroyedExtensions == 6) { sendExtensionStateMessage(); sendBundleMessage("TestComplete"); } WKRelease(extension); }
void DOMWindowExtensionBasic::willDestroyPage(WKBundleRef, WKBundlePageRef) { HashMap<WKBundleDOMWindowExtensionRef, int>::iterator it = m_extensionToRecordMap.begin(); HashMap<WKBundleDOMWindowExtensionRef, int>::iterator end = m_extensionToRecordMap.end(); for (; it != end; ++it) { updateExtensionStateRecord(it->key, Removed); WKRelease(it->key); } m_extensionToRecordMap.clear(); sendExtensionStateMessage(); sendBundleMessage("TestComplete"); }
void DOMWindowExtensionBasic::frameLoadFinished(WKBundleFrameRef frame) { bool mainFrame = !WKBundleFrameGetParentFrame(frame); if (mainFrame) m_finishedOneMainFrameLoad = true; char body[16384]; sprintf(body, "%s finished loading", mainFrame ? "Main frame" : "Subframe"); // Only consider load finished for the main frame const char* name = mainFrame ? "DidFinishLoadForMainFrame" : "DidFinishLoadForFrame"; WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString(name)); WKRetainPtr<WKStringRef> messageBody = adoptWK(WKStringCreateWithUTF8CString(body)); WKBundlePostMessage(m_bundle, messageName.get(), messageBody.get()); sendExtensionStateMessage(); }