diff options
Diffstat (limited to 'security/manager/ssl/nsKeygenHandlerContent.cpp')
-rw-r--r-- | security/manager/ssl/nsKeygenHandlerContent.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/security/manager/ssl/nsKeygenHandlerContent.cpp b/security/manager/ssl/nsKeygenHandlerContent.cpp new file mode 100644 index 000000000..766da0a6d --- /dev/null +++ b/security/manager/ssl/nsKeygenHandlerContent.cpp @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * vim: set ts=2 sw=2 sts=2 et tw=80: + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsKeygenHandlerContent.h" + +#include "nsIFormProcessor.h" +#include "nsString.h" + +#include "mozilla/dom/ContentChild.h" +#include "mozilla/Unused.h" + +#include "keythi.h" +#include "nss.h" +#include "secmodt.h" +#include "nsKeygenHandler.h" + +using mozilla::dom::ContentChild; +using mozilla::Unused; + +NS_IMPL_ISUPPORTS(nsKeygenFormProcessorContent, nsIFormProcessor) + +nsKeygenFormProcessorContent::nsKeygenFormProcessorContent() +{ +} + +nsKeygenFormProcessorContent::~nsKeygenFormProcessorContent() +{ +} + +nsresult +nsKeygenFormProcessorContent::ProcessValue(nsIDOMHTMLElement* aElement, + const nsAString& aName, + nsAString& aValue) +{ + nsAutoString challengeValue; + nsAutoString keyTypeValue; + nsAutoString keyParamsValue; + nsKeygenFormProcessor::ExtractParams(aElement, challengeValue, keyTypeValue, keyParamsValue); + + ContentChild* child = ContentChild::GetSingleton(); + + nsString oldValue(aValue); + nsString newValue; + Unused << child->SendKeygenProcessValue(oldValue, challengeValue, + keyTypeValue, keyParamsValue, + &newValue); + + aValue.Assign(newValue); + return NS_OK; +} + +nsresult +nsKeygenFormProcessorContent::ProcessValueIPC(const nsAString& aOldValue, + const nsAString& aChallenge, + const nsAString& aKeyType, + const nsAString& aKeyParams, + nsAString& aNewValue) +{ + MOZ_ASSERT(false, "should never be called in the child process"); + return NS_ERROR_UNEXPECTED; +} + +nsresult +nsKeygenFormProcessorContent::ProvideContent(const nsAString& aFormType, + nsTArray<nsString>& aContent, + nsAString& aAttribute) +{ + nsString attribute; + Unused << + ContentChild::GetSingleton()->SendKeygenProvideContent(&attribute, + &aContent); + aAttribute.Assign(attribute); + return NS_OK; +} |