History log of /haiku/src/apps/haikudepot/server/WebAppInterface.cpp
Revision Date Author Comments
# bf866d5e 17-Feb-2024 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Improve Language Code Handling

HDS is soon going to be enhanced to deal with more than
just the two-character ISO language codes that it
currently supports. The logic in HD is currently expecting
that HDS will only supply these two character codes. This
change is about making adjustments to be able to cater to
any ICU language IDs from HDS.

The naming in HDS is still going to continue to use the
terminology that it currently does; it will call the
identifier for a language a "natural language code". The
HD source will instead reflect the nomenclature of ICU
and call the same thing a language ID.

Change-Id: Ib138c2e3b7b667edf15cd497c2f710f80b3c29f8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7424
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>


# 88af15cf 18-Dec-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Refactor Screenshots

Rework the way in which the application deals
with screenshots so that there is a repository
of screenshots that is referenced from
identifiers on the package model and not that
the screenshot bitmaps are stored with the
model and not cleaned up.

Change-Id: I632def96852a518b3f6b1c8b81909de117bbbc54
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7296
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>


# b72cc7f4 06-Jan-2024 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Fix Compile Warnings

Change-Id: I3f44eb33d26c1236de2b132a27ca3ad4ddb0bbc1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7298
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# bf697877 19-Oct-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: fix issue for user check

On startup the application will check a users' credentials work; if
not then it will log them out. This was broken after the move to
token-based authentication and this commit will fix that.

Change-Id: Ic9460b668422312ed5a856a92c5b99d9bd724801
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7056
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 4b347fcc 23-Sep-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Token Based Authentication

This switches the application over from using basic
authentication to using token-based authentication in
preparation for later using Open-ID based
authentication flows. The application version is also
bumped in order that the server can detect this version
at some later date in the future when it no longer
supports basic authentication itself.

Change-Id: I7addde1d57503c58d6bcd54908f22f66830c0c59
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6944
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# b6356b91 13-Mar-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Password Requirements

Obtains HDS's password requirements and displays
those to the user when creating a new account.

Relates to #13986

Change-Id: I1b76181e17bc03e9baf915dadcd3c45f9eb89b3f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6203
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# ffc2227f 06-Oct-2022 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Changelog

Fixes #17968

Change-Id: I9952f0eddb751f0355beb1f9b020fd47be8e7f2d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5717
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 409af934 01-May-2022 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Crash on Shutdown

The MainWindow itself was a BReferencable via a listener
virtual class. It looks like the error has come from a
conflict between the MainWindow's own deletion and the
state of the reference count. This change moves the
listener / BReferencable out of the MainWindow so that
the lifecycle of the BReferenable can be managed
correctly.

A further problem here is that the new listener
was leaked from the MainWindow class on shutdown.
To resolve this problem requires a considerable
change to the "process coordinator" system.

Fixes #17689

Change-Id: I7230843ba05537015f4a597b4a616b96c6db3dde
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5285
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>


# f6e22563 21-Mar-2022 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Send Repository Code on API

Some APIs will require the repository source
code to be sent in the future instead of the
repository code. This change prepares for
this.

Change-Id: Iccf0baca077ab81356ed81c18d14122a5b0dacec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5137
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 21df7324 18-Jul-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Switch to v2 API

This switches to a new API format "v2" being introduced
on HDS. The version of the application is also bumped
at the same time in order to make a later cut-off point
possible for compatibility.

Change-Id: I577fd143ac9d001171bca7213c82e3280af1c4de
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4217
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 133ebab6 16-Mar-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Increment Pkg View Counter

Closes #16814

Change-Id: Idf451628b4680fb33563dbf4817bd11049c326b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3803
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 78b14420 24-Jul-2020 Leorize <leorize+oss@disroot.org>

libbnetapi: BUrlRequest now outputs to BDataIO

Previously, BUrlRequest returns data received via a callback that can't
return any value. This approach have several issues:

- It's not possible to signify failures to the request.
- Users have to implement custom listeners just to handle the common
case of outputting to a buffer/file/etc.
- The received data has to be serialized into BMessage when
BUrlProtocolDispatchingListener is employed. This can cause a
noticible slowdown in real-world scenarios as evident by #10748.

With this change, BUrlRequest will output directly into a BDataIO, which
exposes a richer API for request handlers to work with (for example a
BitTorrent client can request a BPositionIO for non-linear data
delivery), as well as simplifying common cases for users.

The adaptation only requires one additional API:
BHttpRequest::SetStopOnError(). This API simply instructs the HTTP
request handler to cancel the request if an HTTP error is occurred.

Change-Id: I4160884d77bff0e7678e0a623e2587987704443a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3084
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 3e27f8d5 17-Jul-2020 Leorize <leorize+oss@disroot.org>

libbnetservices: BUrlResult is no longer a BArchivable

The switch to make BUrlResult serializable was debuted in
f9e1854f198d4200f21a9cbe29fdfb0fabbe192f with the rationale is that
BHttpRequest auto-redirection might cause the headers to become
obsolete by the time a client process the BMessage received from
BUrlProtocolDispatchingListener.

With the change to BHttpRequest to not notify listeners when
auto-redirection is enabled, this is no longer the case and the
serialization code can go away now. This simplifies BUrlResult and its
subclasses, and gain us some performance for clients using
BUrlProtocolDispatchingListener as the result object no longer has to be
serialized.

This also change the ABI of BUrlProtocolListener::HeadersReceived to no
longer passing a BUrlResult.

Additionally, BUrlResult and BHttpResult now express the size of the content
as an off_t, thus allowing results larger than 4 GB.

Change-Id: I9dd29a8b26fdd9aa8e5bbad8d1728084f136312d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3082
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 64a0ec2d 24-Feb-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Add HTTP Header for JSON-RPC

Change-Id: Ibdc112378870cb29770b7938bc8d80631009c03e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3750
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 626466da 07-Apr-2020 X512 <danger_mail@list.ru>

Network kit: use off_t for download and upload size

This change only applies in libnetservices.a. The implementation in
libbnetapi.so will use the original definitions.

Change-Id: I0aaa5a40af5fbcafaf233c32206cb4af862f8141
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2465
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 4080dbd6 22-Jan-2021 Niels Sascha Reedijk <niels.reedijk@gmail.com>

haikudepot: switch to libnetservices.a

Switch to the experimental services API as the copy in libbnetapi.so is
deprecated.

Change-Id: Ic5e2c23a1be598be3057ea913c420c5346f9007f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3669
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# cb847223 24-Dec-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Screenshot List

Remove the use of custom list class related to
screenshots on a package.

Relates To #15534

Change-Id: I8289c25ef0ab5a6715dd9c6c83b6602a25d2f544
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3549
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# e67a4284 16-Jul-2020 Leorize <leorize+oss@disroot.org>

libbnetapi: Disallow instantiation of BUrlRequest subclasses directly

This API change forces all creation of BUrlRequest to be done via
BUrlProtocolRoster::MakeRequest(). This allows the structure of protocol
addons to be altered without breaking ABI for client applications.

Change-Id: I1785c9136c50d19eaa9e57cb9d259ed8d88a5b56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3080
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# fa5c8097 25-Jul-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Languages List

Abstacts the list of supported languages into
the LanguageModel class preventing use of
List. Also; fix a few cases where newer
logging techniques may have caused incorrect
logic flow.

Relates To #15534

Change-Id: I144fe4788abdaf0d93e53eeabc97b3f7aa2ec710
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3085
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# f96d1f4d 10-Jul-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Better Logging

Changes the logging in HD to use a macro for the
various log levels to declutter the code and to
make it easier to more systematically log.

Change-Id: I025970707a0a11e7e3aaa4b52fc91288af0183f5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3018
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 10cd325c 30-Mar-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Check User Auth on Start

The user might have changed their authentication details
on the server and the client won't detect this until
they go to do something. Instead, if possible, check
this as the client starts. Also check that the user has
agreed to the current user usage conditions.

As a side-effect this generalizes the logic for process
coordination in the main window and also fixes some bugs
in the main window's progress display as the application
starts.

Relates to #15209

Change-Id: I4c9620648819ecd14fb095e4cb2c66fe7b2a0920
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2467
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 835e7239 07-Oct-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Refactor of Login

These changes cover a rework of the login and
account creation logic before making additional
changes related to the user usage conditions.

Relates to #15209

Change-Id: I90b7dbcee5b0285476938c6ced0afc89483d6227
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2023
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# d17c92f7 13-Jan-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Error Reporting Improvement

When editing a user rating it can be that the user
is not authenticated properly or there is some
problem. This change improves the error reporting
in this situation to give the user a better idea
about what is going on.

Change-Id: Ib8890c2ea8a7316849486e472aabec05788243ef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2112
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# d2d4866d 19-Sep-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Display User's Usage Conditions

A HaikuDepotServer may have previously agreed to
user usage conditions. If this is the case then
they are now able to view those conditions. There
were some problems with date formatting in this
change and so the date formatting logic has moved
into the HaikuDepot source code temporarily until
issues with the BDateTime class can be resolved;
most likely as a separate piece of work.

Relates to 15209

Change-Id: Ic3e5413d9139f410d7f7e8b566d4c56352dd2778
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1870
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 0c82f64b 02-Sep-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Conditions on Create User

When the user chooses to create a new user they
are able to view the current usage conditions for
users. They are also required to agree to the
conditions and they are required to confirm that
they meet the minimum age requirement.

Relates to 15209

Change-Id: I83cdaabe1b3da31a4cd21139b72341f4b93cab85
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1842
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 051ee9d8 01-Sep-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Improvements to User Ratings

Change to match the web user interface behaviour;
the user ratings for all architectures are shown
and the list of user ratings is restricted to the
actual repository in use. This is important
where two repositories have the same package with
different versions. Also the architecture
is displayed with the version in the package info
page.

Change-Id: I8c024d9ddec6b97f52233b7462c47d2a1c83af09
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1817
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>


# 01339a54 08-Jul-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Display User Usage Conditions

This change will allow the user to view the user
usage conditions from the HDS system in a
HaikuDepot window. The display of the text is not
currently well formatted in that the Markdown is
not yet properly parsed, but the display of the
data is working.

Relates to 15209

Change-Id: Ia6ad4ef995f5fe3c29c40221964e44d4554a033d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1750
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# f85e0300 28-Apr-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Load Languages from HDS

The HaikuDepot application has, thus far had its
own hard-coded list of languages that the user is
able to choose when (a) creating a new account or
(b) creating a user-rating. This change will mean
that those languages are loaded from the HDS
server dynamically and in this way the user can
choose from the full list. There have also been
improvements to the way in which the languages are
displayed in the menu as well.

Change-Id: If7cb7b87f348ca59d503d276a22444e72d0e6168
Reviewed-on: https://review.haiku-os.org/c/1425
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 66f8dcb1 27-Sep-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Improvement for Buffer Management

Changes the logic flow around reverting the position of
the request / response buffers when the buffer is logged
during trace logging.

Change-Id: I025ca9988b32447e225e3ad1b1d4da1174d2d122
Reviewed-on: https://review.haiku-os.org/599
Reviewed-by: Rene Gollent <rene@gollent.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 88575af1 19-Sep-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Fixes for User-Ratings Related API Calls

Corrections to some areas where the 'position' of a
data stream was not being set correctly before reading.

Change-Id: I0030a113008028d5480dc36d034cf06915d928de
Reviewed-on: https://review.haiku-os.org/588
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# cd417b96 30-Jun-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Trace Logging of RPC Payloads

Changes the trace logging so that JSON-RPC payloads
are included in the log stream. Also fixes a
memory-leak in the JSON-RPC client.

Change-Id: Ic19c64869acc525232a60ac2fd814a71bfdafdc8


# a9edb9bf 05-Jun-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Multiple improvements for user-ratings

* Display of the user-ratings listing improved
* When a user-rating is created / edited, the pkg is updated
* Creation date of the user-rating is unpacked shown
* Ability to create a user-rating with a comment, but no numerical rating
* Stars display show grey if no numerical rating present
* Improvements to error reporting when problem arise
* Parsing of the 'revision' field of the version working
* Removed debug logging for the text engine
* Other minor tweaks

Change-Id: I99f881ab1426641ef4177eec2d3bcacc7cb74e95


# b45e8b1e 19-Mar-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : additional debugging for json-rpc invocations


# 54312619 15-Feb-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : 'Old Client' Handling

The server side has the ability to reject client
requests where the client is no longer supported
because it is presumably too old. This change
will inform the user when this happens and will
prevent the client from attempting further server
communications within this execution of the
application.


# 80a272ee 27-Jan-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Changelog, Remove old API and Version Bump

This change re-instates the change-log function (TRAC#13827) that was
dropped in earlier changes. Also now-disused API handling logic is
removed. A small code-style fix is made and the version of the
application has been incremented so that this version's logic can later
be detected by the HDS application server.


# f0665db4 05-Nov-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Improved logging control

The application had previously no means to control the verbosity of
logging. This excessive logging meant that it was bit hard to
understand what is going on. Now it is possible to define the level
of logging that is output; especially as the application pulls-down
data from the remote server system.


# 6c9415e3 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

BJson: Use the normal "input, output" argument ordering instead of the reverse.

Update all in-tree consumers of the BJson API to match. Also added
const-qualifiers to the BString versions of the API, and added the leading
"_" to the header guards.


# 0c1bbfe5 31-Jan-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: suggested code improvements from Adrien


# f9e1854f 29-Jan-2017 Adrien Destugues <pulkomandy@gmail.com>

libbnetapi: fix access to HTTP headers

The asynchronous listener had no reliable way to access HTTP result and
headers from the callbacks. As the callbacks are triggered
asynchronously, they can be run after the request has carried on and,
for example, followed an HTTP redirect, clearing its internal state.

The HeadersReceived callback now passes a reference to BUrlResult for
the request. There are two cases:
- Synchronous listener: passes a reference to the request's results
directly
- Asynchronous listener: archives a copy of the result into the
notification message, and passes a reference to the unarchived copy.

Unfortunately this comes with several ABI and API breakages:
- Change to the prototype of HeadersReceived()
- Change to the class hierarchy of BUrlResult (implements BArchivable)

All users of HTTP requests will need to be updated if they implemented
in HeadersReceived or used BUrlResult.


# 19c15fec 27-Jan-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Improve icon download handling performance

Previously each icon would launch an independent HTTP request to
pull down the HVIF icon data. This change means that the data
will be pulled down in bulk across all packages as a .tgz and
will then be kept in a cache locally. The client-server logic
will use standard "If-Modified-Since" headers to check for
updates each time the HaikuDepot desktop application starts up.
This arrangement will bring down the HVIF as well as bitmap
icons and use the best representation it can.

Additionally, it is possible from a command-line option to log
HTTP traffic verbosely and it is also possible to use an "-h"
flag to display help on command-line arguments.

The code-structure around this change also anticipates some
future extensions to handle other client-server improvements.

Fixes #11804