Share code between Navigator and WorkerNavigator

Also shares code between Location and WorkerLocation. This has been done
by introducing NavigatorInfo and UrlHelper.

Fixes #3159
This commit is contained in:
Gilles Leblanc 2014-09-20 08:51:35 -04:00
parent de67710934
commit 652d217961
7 changed files with 81 additions and 32 deletions

View file

@ -0,0 +1,30 @@
/* 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/. */
use servo_util::str::DOMString;
use url::Url;
pub struct UrlHelper;
impl UrlHelper {
pub fn Href(url: &Url) -> DOMString {
url.serialize()
}
pub fn Search(url: &Url) -> DOMString {
match url.query {
None => "".to_string(),
Some(ref query) if query.as_slice() == "" => "".to_string(),
Some(ref query) => "?".to_string().append(query.as_slice())
}
}
pub fn Hash(url: &Url) -> DOMString {
match url.fragment {
None => "".to_string(),
Some(ref hash) if hash.as_slice() == "" => "".to_string(),
Some(ref hash) => "#".to_string().append(hash.as_slice())
}
}
}