void WebConnection::postMessage(const String& messageName, API::Object* messageBody) { if (!hasValidConnection()) return; send(Messages::WebConnection::HandleMessage(messageName, UserData(transformObjectsToHandles(messageBody)))); }
virtual RefPtr<API::Object> transformObject(API::Object& object) const override { switch (object.type()) { case API::Object::Type::BundleFrame: return API::FrameHandle::createAutoconverting(static_cast<const WebFrame&>(object).frameID()); case API::Object::Type::BundlePage: return API::PageHandle::createAutoconverting(static_cast<const WebPage&>(object).pageID()); case API::Object::Type::BundlePageGroup: { WebPageGroupData pageGroupData; pageGroupData.pageGroupID = static_cast<const WebPageGroupProxy&>(object).pageGroupID(); return API::PageGroupHandle::create(WTF::move(pageGroupData)); } #if PLATFORM(COCOA) case API::Object::Type::ObjCObjectGraph: return transformObjectsToHandles(static_cast<ObjCObjectGraph&>(object)); #endif default: return &object; } }