Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1939)

Unified Diff: Source/modules/credentialmanager/Credential.cpp

Issue 464783003: Credential manager: Convert strings to URLs early. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Feedback. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/credentialmanager/Credential.cpp
diff --git a/Source/modules/credentialmanager/Credential.cpp b/Source/modules/credentialmanager/Credential.cpp
index f1500537dbbd56d18c7c0925188bd96804c0bba7..f93ec29153b3b65bf4772d14a4430c4bee8ce0f4 100644
--- a/Source/modules/credentialmanager/Credential.cpp
+++ b/Source/modules/credentialmanager/Credential.cpp
@@ -5,10 +5,21 @@
#include "config.h"
#include "modules/credentialmanager/Credential.h"
+#include "bindings/core/v8/ExceptionState.h"
+#include "core/dom/ExceptionCode.h"
+
namespace blink {
-Credential* Credential::create(const String& id, const String& name, const String& avatarURL)
+Credential* Credential::create(const String& id, const String& name, const KURL& avatar)
+{
+ return new Credential(id, name, avatar);
+}
+
+Credential* Credential::create(const String& id, const String& name, const String& avatar, ExceptionState& exceptionState)
{
+ KURL avatarURL = parseStringAsURL(avatar, exceptionState);
+ if (exceptionState.hadException())
+ return nullptr;
return new Credential(id, name, avatarURL);
}
@@ -17,12 +28,20 @@ Credential::Credential(PlatformCredential* credential)
{
}
-Credential::Credential(const String& id, const String& name, const String& avatarURL)
- : m_platformCredential(PlatformCredential::create(id, name, avatarURL))
+Credential::Credential(const String& id, const String& name, const KURL& avatar)
+ : m_platformCredential(PlatformCredential::create(id, name, avatar))
{
ScriptWrappable::init(this);
}
+KURL Credential::parseStringAsURL(const String& url, ExceptionState& exceptionState)
+{
+ KURL parsedURL = KURL(KURL(), url);
+ if (!parsedURL.isValid())
+ exceptionState.throwDOMException(SyntaxError, "'" + url + "' is not a valid URL.");
+ return parsedURL;
+}
+
void Credential::trace(Visitor* visitor)
{
visitor->trace(m_platformCredential);
« no previous file with comments | « Source/modules/credentialmanager/Credential.h ('k') | Source/modules/credentialmanager/CredentialsContainer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698