summaryrefslogtreecommitdiffstats
path: root/WebCore/page/SecurityOrigin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page/SecurityOrigin.cpp')
-rw-r--r--WebCore/page/SecurityOrigin.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/WebCore/page/SecurityOrigin.cpp b/WebCore/page/SecurityOrigin.cpp
index 6de7508..fd8144f 100644
--- a/WebCore/page/SecurityOrigin.cpp
+++ b/WebCore/page/SecurityOrigin.cpp
@@ -33,6 +33,7 @@
#include "FrameLoader.h"
#include "KURL.h"
#include "PlatformString.h"
+#include <wtf/StdLibExtras.h>
namespace WebCore {
@@ -41,7 +42,8 @@ static bool isDefaultPortForProtocol(unsigned short port, const String& protocol
if (protocol.isEmpty())
return false;
- static HashMap<String, unsigned> defaultPorts;
+ typedef HashMap<String, unsigned> DefaultPortsMap;
+ DEFINE_STATIC_LOCAL(DefaultPortsMap, defaultPorts, ());
if (defaultPorts.isEmpty()) {
defaultPorts.set("http", 80);
defaultPorts.set("https", 443);
@@ -94,6 +96,8 @@ bool SecurityOrigin::isEmpty() const
PassRefPtr<SecurityOrigin> SecurityOrigin::create(const KURL& url)
{
+ if (!url.isValid())
+ return adoptRef(new SecurityOrigin(KURL()));
return adoptRef(new SecurityOrigin(url));
}
@@ -222,7 +226,7 @@ String SecurityOrigin::toString() const
PassRefPtr<SecurityOrigin> SecurityOrigin::createFromString(const String& originString)
{
- return SecurityOrigin::create(KURL(originString));
+ return SecurityOrigin::create(KURL(KURL(), originString));
}
static const char SeparatorCharacter = '_';
@@ -260,7 +264,7 @@ PassRefPtr<SecurityOrigin> SecurityOrigin::createFromDatabaseIdentifier(const St
String SecurityOrigin::databaseIdentifier() const
{
- static String separatorString = String(&SeparatorCharacter, 1);
+ DEFINE_STATIC_LOCAL(String, separatorString, (&SeparatorCharacter, 1));
return m_protocol + separatorString + m_host + separatorString + String::number(m_port);
}