Commit Graph

830 Commits

Author SHA1 Message Date
Mikhail Pozdnyakov
25c8d0ecc8 [default] Fix possible crash at RunLoop::wake() 2020-03-02 10:32:20 +02:00
Mikhail Pozdnyakov
3bf9143079 Emit error message with URL details on load error 404 2020-02-28 12:52:26 +02:00
Mikhail Pozdnyakov
2b1bb1dc4a [core][offline] Offline download does not hang on 404 error 2020-02-28 12:52:26 +02:00
Mikhail Pozdnyakov
ba4f5efa09 [core] OnlineFileSource is never accessed directly 2020-02-26 22:31:59 +02:00
Mikhail Pozdnyakov
7c48611f9e [core] Consolidate file source keys in the generic FileSource header
Thus we do not need to include specific headers to use `{set|get}Property`
API with key constants.
2020-02-25 23:15:47 +02:00
Mikhail Pozdnyakov
3c05bd984a [core] Fix offline region download freezing
Downloaded resources are put in the buffer and inserted in the database in batches.

Before this change, the buffer was flushed only at the network response callback
and thus it never got flushed if the last required resources were present locally
and did not initiate network requests -> it caused freezing.

Now the buffer is flushed every time the remaining resources container gets empty.
2020-02-25 23:15:47 +02:00
Alexander Shalamov
89eab0530d [core] Set priorData from cache only if resource is useable
In cases when cached resource is useable, yet don't have an expiration
timestamp, we provided data to the requester from the cache and the same
data was returned once 304 response was received from the network.
2020-02-14 11:54:02 +02:00
Thiago Marcos P. Santos
47f2b20435 [build] Remove unused files
Buck build is no longer needed, neither is the previous
CMake buildsystem.
2020-02-07 20:12:44 +02:00
Mikhail Pozdnyakov
c04551a4e3 Expose READ_ONLY_MODE_KEY property for DatabaseFileSource 2020-02-07 14:39:03 +02:00
Alexander Shalamov
534003495b [core] Switch unordered_map to map
Change container types where number of elements expected
to be rather small. For instance, number of offline packs
or sql statements.
2020-02-06 23:54:19 +02:00
Alexander Shalamov
bb85ec442d [core] Add hooks for setting experimental thread priorities for mbgl threads 2020-02-06 23:54:19 +02:00
Alexander Shalamov
4be2fa4f9a [core] Add platform::setCurrentThreadPriority(double) 2020-02-06 23:54:19 +02:00
Preston A Elder
c28ffe0d4a Made number format work for newer versions of ICU (#16176) 2020-02-04 12:23:57 -05:00
Thomas Moenicke
b64ed75444 [build] Adding a build flag to build without GL if needed (#16120)
* [build] Adding a build flag to build without GL if needed

* [build] Moving custom layer to mbgl/gl
2020-02-03 19:10:57 +02:00
Alexander Shalamov
9ec2e2aff7 [core] Add pause and resume to database filesource implementation 2020-01-27 14:25:37 +03:00
Alexander Shalamov
7bf4de9f39 [core] Move resource loader to dedicated thread with scheduler 2020-01-23 12:55:57 +03:00
Mikhail Pozdnyakov
d24c1d625a [core] Pass std::shared_ptr<UpdateParameters> to the render orchestrator
So that it can retain ownership of the given parameters.
2020-01-22 14:30:26 +02:00
Alexander Shalamov
879c44f661 [core] Modularize FileSource codebase (#15768)
* [core] Introduce FileSourceManager and use it for default platform impl

  - Add `FileSourceManager` interface that provides access to `FileSource`
    instances and means of registering / unregistering `FileSource` factories
  - Split `DefaultFileSource` into smaller parts
  - Add `DatabaseFileSource` interface and it's default implementation
  - Remove inter-dependencies between concrete `FileSource` classes

* [build] Add files to next build system

* [core] Add generic property setters / getters

* [core] Remove setOnlineStatus from OnlineFileSource interface

* [core] Hide threading implementation details from DatabaseFileSource interface

* [core] Make DB file source methods virtual

* [core] Add documentation for DatabaseFileSource and rename one method

* [core] Use simple callback instead of ActorRef

* [core] Remove ActorRef from OnlineFileSource public header

* [core] Add callback to FileSource::forward async API

* [core] Pass OfflineRegionDefinition by value

* [core] Update tests to use modular file sources

* [core] Update unit tests

* [core] Update unit tests after rebase

* [core] Backport low prio fix for cached requests

* [core] Backport pack database

* [core] Return removed factory from unRegisterFileSourceFactory

* [core] Rename shadowed args in onlinefilesource

* [core] Remove simple std::function callback aliases

* [core] Expose online file source property keys in public header file

* [test-runner] Add proxy file source test runner

* [cache] Update mbgl-cache utility to use new file source

* [metrics] Rebaseline binary size metrics

* [offline] Update offline utility

* [core] Update changelog
2020-01-13 10:57:23 +02:00
Thiago Marcos P. Santos
d08bb49c34 [core] Make it possible to reopen the database read-only for testing
Needed for Android, because the database is in readonly filesystem
and also because it is annoying to see files modified every time we
run the tests.
2020-01-08 13:07:12 +02:00
Samuel Thibault
5f031dfa56 [util] fix thread.cpp portability 2020-01-08 10:50:42 +02:00
Mikhail Pozdnyakov
28ccb0ccc0 [core] Offline download must clear batch buffer at load interrupt
Otherwise, the stale buffer data are processed again at the
repeated load. It is causing various problems like missing load
completion notification or crashes (if the previously used observer
instance has been deleted).
2019-12-18 17:19:15 +02:00
Mikhail Pozdnyakov
4c49f0c9db [core] Introduce OfflineDatabase::runPackDatabaseAutomatically() API
- added a unit test
- Updated inline comments in default_file_source.hpp
2019-12-02 13:46:51 +02:00
Juha Alanen
bdd7e53078 [core] Set the priority of online requests for existing resource to low 2019-11-21 14:39:47 +02:00
Juha Alanen
69d980cdc1 [core] Add new method to DefaultFileSource
Add setMaximumConcurrentRequests() method for setting it on the
OnlineFileSource.
2019-11-21 14:39:47 +02:00
Juha Alanen
451e6d40fa [core] Notify requests about network reachability only when coming back online 2019-11-21 14:39:47 +02:00
zmiao
1b58e87f15 [render-test] Wrap test data inside RenderTestRunner App + Add a new test app (#15887)
* [render-test] Wrap test resources inside app

* [render-test] Add test app

* fix test app failure

* [render-test]add callback + add javaObjectWrapper
2019-11-19 20:45:30 +02:00
Mikhail Pozdnyakov
f567a79dd8 [core] Extend DefaultFileSource API
Add `packDatabase()` method and `bool pack` argument to the `deleteOfflineRegion()` method.
2019-11-12 17:24:50 +02:00
Mikhail Pozdnyakov
615e095ed6 [core] OfflineDatabase pack API
- introduce `OfflineDatabase::pack()` standing for incremental vacuum
- make pack optional at offline region deletion
- update `OfflineDatabase.DeleteRegion` test accordingly to the items above
2019-11-12 17:24:50 +02:00
Dane Springmeyer
49456e3fc1 remove duplicate formatNumber (#15908) 2019-11-12 06:47:43 -08:00
Mikhail Pozdnyakov
e1556fc539 [core] Improve OfflineDatabase error handling
- fixes missing exception handlers (e.g. runtim error from the `initialize()` method)
- introduces generic exception handling mechanism to reduce the repeated code
2019-11-11 15:33:55 +02:00
Mikko Pulkki
4176b28a77 [Linux] Remove CA certificate bundle 2019-11-11 10:11:49 +02:00
Mikhail Pozdnyakov
55e18a6f81 [core] Use expected.hpp from mapbox-base 2019-11-08 11:27:30 +02:00
Mikko Pulkki
a7a7e8cbe2 [render-test] Implement gfx probe for tracking gpu resources 2019-10-30 14:32:27 +02:00
Mikko Pulkki
fb062bb23e [render-test] Add resource usage tracking to gfx context 2019-10-30 14:32:27 +02:00
Mikhail Pozdnyakov
ab603c5fed [core] Enable incremental vacuum for Offline DB
Thus we avoid re-creating the whole database and keeping the backup file as it happens on calling VACUUM.
2019-10-22 15:51:16 +03:00
Mikko Pulkki
0ca96fd8a4 [render-test] Implement fps benchmarking tests (#15803) 2019-10-22 12:13:55 +03:00
zmiao
e829d1ae6f [test-runner] make render-test a shared lib (#15816)
* [test-runner] make render-test a shared lib

[test-runner] nit

[test-runner] nit again

* [test-runner] Remove redundant linked file in cmake
2019-10-15 19:16:32 +03:00
Thiago Marcos P. Santos
a4e1707f6b [offline] Document the database schema 2019-10-11 16:06:28 +03:00
Thiago Marcos P. Santos
990fdc43fa [build] Make sure offline_schema.hpp is up-to-date
- Get the bots to verify that.
 - Fix the paths.
2019-10-11 16:06:28 +03:00
Alexander Shalamov
e5cdc4ecf3 [core][android][darwin] Move number format to i18n 2019-09-26 10:55:47 +03:00
Alexander Shalamov
9c8295c6a6 [core][android][darwin] Move platform specific Collator impls from expression
Platform specific Collator implementations should not be part of an expression APIs.
2019-09-26 10:55:47 +03:00
Alexander Shalamov
30ffbe9b8d [core][android] Remove unaccent from platform interfaces
The unaccent is used only within collator, thus, there is no
need to have separate platform interface for it.
2019-09-26 10:55:47 +03:00
Thiago Marcos P. Santos
c7bbd5bbef [core] Fix performance-move-const-arg 2019-09-25 18:59:07 +03:00
Thiago Marcos P. Santos
3888af2460 [build] Move compression to platform
It depends on platform specific compression library.
2019-09-20 15:27:52 +03:00
Julian Rex
2b08c1d7bf [ios, macos] Fix MGLOfflinePack invalidate crash (#15582) 2019-09-18 18:13:07 -04:00
Thiago Marcos P. Santos
83a019d021 [build] Fix clang format and tidy checks 2019-09-17 12:28:55 +03:00
Thiago Marcos P. Santos
5cf2c7eb50 [build] Use the system CURL on Linux
And we don't need to use Mason anymore.
2019-09-17 12:28:55 +03:00
Thiago Marcos P. Santos
d424850257 [build] Make the default styles part of GL Native
The reason is applications using it, like GLFW, don't need
to depend on code inside platform/default.
2019-09-17 12:28:55 +03:00
Thiago Marcos P. Santos
1bd439ad82 [core] Fix build with old ICU versions
Use the old API for number formatting.
2019-09-06 16:23:15 +03:00
Bruno de Oliveira Abinader
544aabd020 [core] Add requiredTileCount to OfflineRegionStatus 2019-08-29 18:22:59 +03:00