@@ -210,6 +210,43 @@ class PlatformView {
210210 // /
211211 virtual void OnPlatformViewMarkTextureFrameAvailable (
212212 int64_t texture_id) = 0;
213+
214+ // --------------------------------------------------------------------------
215+ // / @brief Loads the dart shared library into the dart VM. When the
216+ // / dart library is loaded successfully, the dart future
217+ // / returned by the originating loadLibrary() call completes.
218+ // /
219+ // / The Dart compiler may generate separate shared library .so
220+ // / files called 'loading units' when libraries are imported
221+ // / as deferred. Each of these shared libraries are identified
222+ // / by a unique loading unit id and can be dynamically loaded
223+ // / into the VM by dlopen-ing and resolving the data and
224+ // / instructions symbols.
225+ // /
226+ // /
227+ // / @param[in] loading_unit_id The unique id of the deferred library's
228+ // / loading unit.
229+ // /
230+ // / @param[in] snapshot_data Dart snapshot data of the loading unit's
231+ // / shared library.
232+ // /
233+ // / @param[in] snapshot_data Dart snapshot instructions of the loading
234+ // / unit's shared library.
235+ // /
236+ virtual void LoadDartDeferredLibrary (
237+ intptr_t loading_unit_id,
238+ const uint8_t * snapshot_data,
239+ const uint8_t * snapshot_instructions) = 0;
240+
241+ // TODO(garyq): Implement a proper asset_resolver replacement instead of
242+ // overwriting the entire asset manager.
243+ // --------------------------------------------------------------------------
244+ // / @brief Sets the asset manager of the engine to asset_manager
245+ // /
246+ // / @param[in] asset_manager The asset manager to use.
247+ // /
248+ virtual void UpdateAssetManager (
249+ std::shared_ptr<AssetManager> asset_manager) = 0;
213250 };
214251
215252 // ----------------------------------------------------------------------------
@@ -565,6 +602,62 @@ class PlatformView {
565602
566603 virtual std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder ();
567604
605+ // --------------------------------------------------------------------------
606+ // / @brief Invoked when the dart VM requests that a deferred library
607+ // / be loaded. Notifies the engine that the deferred library
608+ // / identified by the specified loading unit id should be
609+ // / downloaded and loaded into the Dart VM via
610+ // / `LoadDartDeferredLibrary`
611+ // /
612+ // / @param[in] loading_unit_id The unique id of the deferred library's
613+ // / loading unit. This id is to be passed
614+ // / back into LoadDartDeferredLibrary
615+ // / in order to identify which deferred
616+ // / library to load.
617+ // /
618+ virtual void RequestDartDeferredLibrary (intptr_t loading_unit_id);
619+
620+ // --------------------------------------------------------------------------
621+ // / @brief Loads the Dart shared library into the Dart VM. When the
622+ // / Dart library is loaded successfully, the Dart future
623+ // / returned by the originating loadLibrary() call completes.
624+ // /
625+ // / The Dart compiler may generate separate shared libraries
626+ // / files called 'loading units' when libraries are imported
627+ // / as deferred. Each of these shared libraries are identified
628+ // / by a unique loading unit id. Callers should dlopen the
629+ // / shared library file and use dlsym to resolve the dart
630+ // / symbols. These symbols can then be passed to this method to
631+ // / be dynamically loaded into the VM.
632+ // /
633+ // / This method is paired with a RequestDartDeferredLibrary
634+ // / invocation that provides the embedder with the loading unit id
635+ // / of the deferred library to load.
636+ // /
637+ // /
638+ // / @param[in] loading_unit_id The unique id of the deferred library's
639+ // / loading unit, as passed in by
640+ // / RequestDartDeferredLibrary.
641+ // /
642+ // / @param[in] snapshot_data Dart snapshot data of the loading unit's
643+ // / shared library.
644+ // /
645+ // / @param[in] snapshot_data Dart snapshot instructions of the loading
646+ // / unit's shared library.
647+ // /
648+ virtual void LoadDartDeferredLibrary (intptr_t loading_unit_id,
649+ const uint8_t * snapshot_data,
650+ const uint8_t * snapshot_instructions);
651+
652+ // TODO(garyq): Implement a proper asset_resolver replacement instead of
653+ // overwriting the entire asset manager.
654+ // --------------------------------------------------------------------------
655+ // / @brief Sets the asset manager of the engine to asset_manager
656+ // /
657+ // / @param[in] asset_manager The asset manager to use.
658+ // /
659+ virtual void UpdateAssetManager (std::shared_ptr<AssetManager> asset_manager);
660+
568661 protected:
569662 PlatformView::Delegate& delegate_;
570663 const TaskRunners task_runners_;
0 commit comments