NS_IMETHODIMP nsPolicyReference::HandleEvent(nsIDOMEvent *aEvent) { NS_ASSERTION(mXMLHttpRequest, "no xml http request"); nsresult result = NS_OK; nsCOMPtr<nsIPolicyListener> listener(do_QueryReferent(mListener)); NS_ENSURE_TRUE(listener, NS_ERROR_FAILURE); if (mXMLHttpRequest) { nsCOMPtr<nsIDOMDocument> document; if (mFlags & IS_MAIN_URI) { if (!mDocument) { mXMLHttpRequest->GetResponseXML(getter_AddRefs(mDocument)); PRBool success; result = RequestSucceeded(mXMLHttpRequest, &success); if (NS_FAILED(result) || !success) { listener->NotifyPolicyLocation(0, POLICY_LOAD_FAILURE); return result; } } document = mDocument; } else { mXMLHttpRequest->GetResponseXML(getter_AddRefs(document)); PRBool success; result = RequestSucceeded(mXMLHttpRequest, &success); if (NS_FAILED(result) || !success) { listener->NotifyPolicyLocation(0, POLICY_LOAD_FAILURE); return result; } if (mFlags & IS_LINKED_URI) { mDocument = document; } } nsXPIDLCString policyLocation; result = ProcessPolicyReferenceFile(document, getter_Copies(policyLocation)); if (NS_SUCCEEDED(result)) { listener->NotifyPolicyLocation(policyLocation, mError); } else { listener->NotifyPolicyLocation(0, POLICY_LOAD_FAILURE); } } return result; }
void Service::HandleResponse(Response& response, HttpResponse& http_response) { if (RequestSucceeded(response, http_response)) { switch (response.type) { HANDLE_HTTP_RESPONSE(kAddLibraryEntry, AddLibraryEntry); HANDLE_HTTP_RESPONSE(kAuthenticateUser, AuthenticateUser); HANDLE_HTTP_RESPONSE(kDeleteLibraryEntry, DeleteLibraryEntry); HANDLE_HTTP_RESPONSE(kGetLibraryEntries, GetLibraryEntries); HANDLE_HTTP_RESPONSE(kGetMetadataById, GetMetadataById); HANDLE_HTTP_RESPONSE(kGetMetadataByIdV2, GetMetadataByIdV2); HANDLE_HTTP_RESPONSE(kSearchTitle, SearchTitle); HANDLE_HTTP_RESPONSE(kUpdateLibraryEntry, UpdateLibraryEntry); } } }