blob: f06bb547aac5ddc456c84be8b5e7612b8b35e109 [file] [log] [blame]
// Copyright (c) 2014 The Chromium Embedded Framework 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 "libcef/browser/navigation_entry_impl.h"
#include "libcef/browser/ssl_status_impl.h"
#include "libcef/common/time_util.h"
#include "content/public/browser/navigation_entry.h"
#include "url/gurl.h"
CefNavigationEntryImpl::CefNavigationEntryImpl(content::NavigationEntry* value)
: CefValueBase<CefNavigationEntry, content::NavigationEntry>(
value,
nullptr,
kOwnerNoDelete,
false,
new CefValueControllerNonThreadSafe()) {
// Indicate that this object owns the controller.
SetOwnsController();
}
bool CefNavigationEntryImpl::IsValid() {
return !detached();
}
CefString CefNavigationEntryImpl::GetURL() {
CEF_VALUE_VERIFY_RETURN(false, CefString());
return mutable_value()->GetURL().spec();
}
CefString CefNavigationEntryImpl::GetDisplayURL() {
CEF_VALUE_VERIFY_RETURN(false, CefString());
return mutable_value()->GetVirtualURL().spec();
}
CefString CefNavigationEntryImpl::GetOriginalURL() {
CEF_VALUE_VERIFY_RETURN(false, CefString());
return mutable_value()->GetUserTypedURL().spec();
}
CefString CefNavigationEntryImpl::GetTitle() {
CEF_VALUE_VERIFY_RETURN(false, CefString());
return mutable_value()->GetTitle();
}
CefNavigationEntry::TransitionType CefNavigationEntryImpl::GetTransitionType() {
CEF_VALUE_VERIFY_RETURN(false, TT_EXPLICIT);
return static_cast<TransitionType>(mutable_value()->GetTransitionType());
}
bool CefNavigationEntryImpl::HasPostData() {
CEF_VALUE_VERIFY_RETURN(false, false);
return mutable_value()->GetHasPostData();
}
CefTime CefNavigationEntryImpl::GetCompletionTime() {
CefTime time;
CEF_VALUE_VERIFY_RETURN(false, time);
cef_time_from_basetime(mutable_value()->GetTimestamp(), time);
return time;
}
int CefNavigationEntryImpl::GetHttpStatusCode() {
CEF_VALUE_VERIFY_RETURN(false, 0);
return mutable_value()->GetHttpStatusCode();
}
CefRefPtr<CefSSLStatus> CefNavigationEntryImpl::GetSSLStatus() {
CEF_VALUE_VERIFY_RETURN(false, nullptr);
return new CefSSLStatusImpl(mutable_value()->GetSSL());
}