1 // Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights
2 // reserved. Use of this source code is governed by a BSD-style license that
3 // can be found in the LICENSE file.
4
5 #include "libcef/browser/navigation_entry_impl.h"
6
7 #include "libcef/browser/ssl_status_impl.h"
8 #include "libcef/common/time_util.h"
9
10 #include "content/public/browser/navigation_entry.h"
11 #include "url/gurl.h"
12
CefNavigationEntryImpl(content::NavigationEntry * value)13 CefNavigationEntryImpl::CefNavigationEntryImpl(content::NavigationEntry* value)
14 : CefValueBase<CefNavigationEntry, content::NavigationEntry>(
15 value,
16 nullptr,
17 kOwnerNoDelete,
18 false,
19 new CefValueControllerNonThreadSafe()) {
20 // Indicate that this object owns the controller.
21 SetOwnsController();
22 }
23
IsValid()24 bool CefNavigationEntryImpl::IsValid() {
25 return !detached();
26 }
27
GetURL()28 CefString CefNavigationEntryImpl::GetURL() {
29 CEF_VALUE_VERIFY_RETURN(false, CefString());
30 return mutable_value()->GetURL().spec();
31 }
32
GetDisplayURL()33 CefString CefNavigationEntryImpl::GetDisplayURL() {
34 CEF_VALUE_VERIFY_RETURN(false, CefString());
35 return mutable_value()->GetVirtualURL().spec();
36 }
37
GetOriginalURL()38 CefString CefNavigationEntryImpl::GetOriginalURL() {
39 CEF_VALUE_VERIFY_RETURN(false, CefString());
40 return mutable_value()->GetUserTypedURL().spec();
41 }
42
GetTitle()43 CefString CefNavigationEntryImpl::GetTitle() {
44 CEF_VALUE_VERIFY_RETURN(false, CefString());
45 return mutable_value()->GetTitle();
46 }
47
GetTransitionType()48 CefNavigationEntry::TransitionType CefNavigationEntryImpl::GetTransitionType() {
49 CEF_VALUE_VERIFY_RETURN(false, TT_EXPLICIT);
50 return static_cast<TransitionType>(mutable_value()->GetTransitionType());
51 }
52
HasPostData()53 bool CefNavigationEntryImpl::HasPostData() {
54 CEF_VALUE_VERIFY_RETURN(false, false);
55 return mutable_value()->GetHasPostData();
56 }
57
GetCompletionTime()58 CefTime CefNavigationEntryImpl::GetCompletionTime() {
59 CefTime time;
60 CEF_VALUE_VERIFY_RETURN(false, time);
61 cef_time_from_basetime(mutable_value()->GetTimestamp(), time);
62 return time;
63 }
64
GetHttpStatusCode()65 int CefNavigationEntryImpl::GetHttpStatusCode() {
66 CEF_VALUE_VERIFY_RETURN(false, 0);
67 return mutable_value()->GetHttpStatusCode();
68 }
69
GetSSLStatus()70 CefRefPtr<CefSSLStatus> CefNavigationEntryImpl::GetSSLStatus() {
71 CEF_VALUE_VERIFY_RETURN(false, nullptr);
72 return new CefSSLStatusImpl(mutable_value()->GetSSL());
73 }
74