// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "content/renderer/storage_util.h" #include "third_party/blink/public/platform/url_conversion.h" #include "third_party/blink/public/platform/web_security_origin.h" #include "url/gurl.h" #include "url/origin.h" namespace content { GURL WebSecurityOriginToGURL(const blink::WebSecurityOrigin& security_origin) { // "file:///" URLs navigated to by the user may have "isLocal" set, // which stringify as "null" by default. Previous code that sent // origins from Blink to Chromium via DatabaseIdentifier would ignore // this, so we mimic that behavior here. // TODO(jsbell): Eliminate this. https://crbug.com/591482 if (security_origin.Protocol().Utf8() == "file" && security_origin.Host().Utf8() == "" && security_origin.Port() == 0) { return GURL("file:///"); } return url::Origin(security_origin).GetURL(); } } // namespace content