1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/extensions/pending_extension_info.h"
7 #include "base/logging.h"
11 PendingExtensionInfo::PendingExtensionInfo(
12 const std::string
& id
,
13 const std::string
& install_parameter
,
14 const GURL
& update_url
,
15 const Version
& version
,
16 ShouldAllowInstallPredicate should_allow_install
,
18 bool install_silently
,
19 Manifest::Location install_source
,
21 bool mark_acknowledged
)
23 update_url_(update_url
),
25 install_parameter_(install_parameter
),
26 should_allow_install_(should_allow_install
),
27 is_from_sync_(is_from_sync
),
28 install_silently_(install_silently
),
29 install_source_(install_source
),
30 creation_flags_(creation_flags
),
31 mark_acknowledged_(mark_acknowledged
) {}
33 PendingExtensionInfo::PendingExtensionInfo()
35 should_allow_install_(NULL
),
37 install_silently_(false),
38 install_source_(Manifest::INVALID_LOCATION
) {}
40 PendingExtensionInfo::~PendingExtensionInfo() {}
42 bool PendingExtensionInfo::operator==(const PendingExtensionInfo
& rhs
) const {
43 return id_
== rhs
.id_
;
46 int PendingExtensionInfo::CompareTo(const PendingExtensionInfo
& other
) const {
47 DCHECK_EQ(id_
, other
.id_
);
48 if (version_
.IsValid() && other
.version_
.IsValid()) {
49 int comparison
= version_
.CompareTo(other
.version_
);
51 // If the versions differ then return the version comparison result.
56 // The versions aren't specified, or they are the same version. Check
57 // the install source.
58 if (install_source_
== other
.install_source_
) {
59 // Same install source, so |this| has the same precedence as |other|.
63 // Different install sources; |this| has higher precedence if
64 // |install_source_| is the higher priority source.
65 Manifest::Location higher_priority_source
=
66 Manifest::GetHigherPriorityLocation(
67 install_source_
, other
.install_source_
);
69 return higher_priority_source
== install_source_
? 1 : -1;
72 } // namespace extensions