- Upgraded demo_cc_offscreen to M141, mainly adopt changes from demo_cc_gui
- Upgraded demo_cc_gui to M141 with the following main changes:
viz::SharedBitmapReporteris no longer a base class ofcc::LayerTreeFrameSink, see 6164986DidCommit(),DidCommitAndDrawFrame(),DidCompletePageScaleAnimation(),DidObserveFirstScrollDelay()added asource_frame_numberparameter.FrameTimingDetailshas been added toWebFrameWidgetImpl, see 5331910.DidReceiveCompositorFrameAck()has been removed fromLayerTreeHostClient, see 5468167.ContentLayerClient::PaintableRegion()has been removed, see 5190710.NotifyNewLocalSurfaceIdExpectedWhilePaused()has been added tocc::LayerTreeFrameSink, see 6588556.ThroughputTrackerhas been renamed toCompositorMetricsTrackerfor broader use in tracking metrics, see 6042895.WebVitalMetricshas been removed, see 5822616.- Added GPU initialization logic and initialized FrameSinkManager to properly use SharedImageInterface. Since ClientSharedImageInterface was used by LayerTreeFrameSink but changed to SharedImageInterface by 7102838, to simplify the process model, a cast is performed in BindToClient to bypass this change.
- Upgraded demo_views to M141 with the following main changes:
views::WidgetDelegateViewis marked asDeprecatedand PassKey is added to control usage, see 6441736. This example directly inherits from the two subclasses according to the comments, and separates View and Delegate according to the design logic, binding the View instance throughSetContentsView()inside Delegate.- Migrated
views::Backgroundtoui::ColorVariantwith method renaming, see 6331510 - Starting from 4518125, Windows UI requires a thread pool initialized with MTA.
- Upgraded demo_linktest to M141 with Windows support.
- Upgraded demo_gin to M141 with the following main changes:
v8::MicrotasksScope::MicrotasksScope(Isolate* isolate, Type type)has been removed, see 5539888- Moved the
extendspart as a separatecomponentto avoid inconsistentGIN_EXPORTdefinition issues - Added
v8::Isolate::ScopeinAsyncAddto fix the issue wherev8::internal::g_current_isolate_is null causingv8::Integer::Newto trigger DCheck
- Upgraded demo_skia to M141 on Windows platform (software only) with the following main changes:
- Added
WinSoftwareBitmapPresenterto support presenting software rendered bitmaps on Windows platform using GDI API. - Modified
SkiaCanvasSoftwareto utilizeWinSoftwareBitmapPresenterwhen running on Windows. - Updated build configuration to include necessary dependencies for Windows platform.
- Rename namespace
demo_jnitodemoindemo_skiamodule for consistency.
- Added
- Upgraded demo_viz_offscreen to M141 with the following main changes:
- Documentation update: converted demo list to table format and added compatibility test status markers
- Upgraded demo_viz_gui to M141 with the following main changes:
components/viz/common/resources/bitmap_allocation.hhas been removedviz::TileDrawQuad::SetNewremoved theis_premultipliedparameter, see 6500701viz::ContentDrawQuadBase::texture_sizehas been removed, multiple quad types were modified, see 6653194viz::TextureDrawQuad::SetNewremoved theis_premultiplied,flipped, andopacityparameters, see 6516061, 6019939, 5119685SharedBitmaphas been deleted, see 6180918. Normally,SharedImageInterfaceprovided byviz::RasterContextProvidershould be used instead; here we bypass using the low-level interface provided byviz::SharedImageInterfaceProvider- The
frame_ackparameter inOnBeginFrameofRootFrameSinkhas been removed, and a new pure virtual methodOnSurfaceEvicted()has been added, see 6417183, 4956873 - Fixed initialization on Windows according to commit 7230224 to avoid crashes
- Fixed the
clipparameter ofSharedQuadState. This change has not yet found a corresponding upstream change; testing found that without this change, drawing content that exceeds theclipafter transform will be discarded (made transparent) directly - Since all resources are passed through
SharedImage, the corresponding release logic is complex; after saving the trace, changed to directly force exit the process to simplify the implementation
- Upgraded demo_gl to M141 with the following main changes:
- The return type of
ui::Event::type()has changed toui::EventType, keywords modified - The
OnMouseEnter()method ofui::PlatformWindowDelegatehas been renamed toOnCursorUpdate() //gpucan no longer be externally visible; the required functionality in this case is concentrated in//gpu/config- gl's
SharedContextStaterequires surface to be off-screen; temporarily commented out the creation and use ofSharedContextState
- The return type of
- Upgraded core modules (log, task, memory, tracing, resources, mojo, mojo_v8) to M141 with the following changes:
- The
DISALLOW_COPY_AND_ASSIGNmacro is deprecated base::MemoryPressureMonitor::GetCurrentPressureLevel()now requires abase::MemoryPressureMonitorTagparameter- mojo's
ReadData()andWriteData()now usestd::spanto replace the previous buffer pointer + length parameters, and a new reference parameter has been added to indicate the actual amount of data read/written v8::FunctionCallbackInfo::Holder()is deprecated, useThis()instead- Resources
kDemoGenResourcesarray no longer provides length information - Tracing fully enables Perfetto, traditional initialization methods have been removed; Startup initialization is now moved forward to execute
tracing::InitTracingPostFeatureList()once after only initializing FeatureGating
- The
- Added a new case
demo_mojo_child_processunder mojo, demonstrating direct inter-process communication between two child processes through parent process establishment - ChangeLog split to a separate file
- Add demo_task_thread, which demonstrates the use of a task in a new thread;
Migrate some demos to M120, the upgrade is described below:
ThreadTaskRunnerHandlewas replaced bySingleThreadTaskRunner;- The
TRACE_*macro enables the perfetto client library by default; - mojo enables ipcz by default, and parameters must be passed for multi-process initialization;
- The gl initialization interface supports selecting GPU;
- The
SharedQuadState::SetAllinterface supports setting fast_rounded_corner; viz::TransferableResourcesupports a clearer distinction between single-plane and multi-plane resources;- In order to reduce the number of viz PostTasks,
CompositorFrameSinkClient::OnBeginFramemerges the functions ofReclaimResourcesandDidReceiveCompositorFrameAck; - Deleted the
SkEncodeImageinterface and replaced it withSkXXXEncoder::Encode; - Skia moved the DDL-related interfaces to chromium private and renamed them. The public DDL interface will no longer be provided in the future. After the change, only ganesh supports DrawDDL, and graphite does not.
- Add demo_linktest, demonstrates incorrect use of gn causing link errors;
- Migrate demo_skia to M110;
- Migrate demo_views to M110;
- Migrate demo_cc_offscreen to M110;
- Migrate demo_gin to M110;
- Migrate demo_viz_gui to M110;
- Update 110 branch to 5481;
- Migrate some demo to M110;
- Add demo_gin,demonstrate how to use gin to create a javascript runtime;
- Add demo_mojo_v8,demonstrate how to use js in the render process to access the mojo interface provided by the browser process;
- Migrate demo_views to M91;
- Migrate demo_cc_offscreen to M91;
- Migrate demo_viz_offscreen to M91;
- Migrate demo_ipc to M91;
- Migrate demo_services to M91;
- Migrate demo_gl to M91;
- Migrate below demos to M91:
- demo_resources
- Migrate below demos to M91:
- demo_memory
- Migrate below demos to M91:
- demo_exe
- demo_tracing_perfetto
- demo_tracing_perfetto_content
- demo_messageloop
- demo_tasks
- demo_mojo_single_process
- demo_mojo_multiple_process
- demo_mojo_multiple_process_binding
- Rename below demos:
- demo_messageloop to demo_task_executor
- demo_tasks to demo_task_thread_pool
- Add demo_gl, the demo uses the
//ui/glmodule to call GL for rendering;
- demo_viz_layer_offscreen supports off-screen rendering using the SkiaOutputDeviceOffscreen interface;
- Add demo_viz_layer_offscreen to demonstrate using VIZ's CopyOutput interface for off-screen rendering;
- Add demo_viz_layer, demonstrate the use of VIZ for handwriting writing, and support the use of command lines to switch between software and hardware rendering;
- Add demo_viz_gui_gpu to demonstrate the use of VIZ for hardware accelerated rendering and VIZ Client nesting;
- Add demo_x11_glx and demo_x11_egl;
- Add demo_x11 to demonstrate the use of X11 to create transparent windows;
- Update demo_skia, use software rendering by default, support transparent windows, GL rendering supports GL_RGB565 pixel format;
- Add demo_skia to demonstrate the software/hardware rendering using Skia in Linux;
- Update demo_android_skia, add multi-thread rendering and frame rate synchronization;
- Add demo_android_skia to demonstrate the use of Skia in Android for software/hardware rendering;
- Add demo_tracing_perfetto_content to demonstrate how the content module saves trace to a file, which can be used for chrome://tracing;
- Add demo_tracing documentation demo_tracing;
- Move demo_tracing to demo_tracing folder and rename it to demo_tracing_console, add Flush function;
- Add demo_tracing_perfetto to demonstrate the integration and use of trace and perfetto;
- Add demo_cc_gui to demonstrate using
ccto display GUI interface;
- Added TRACE.txt of demo_cc to help understand the runtime behavior of cc;
- Add demo_cc_offscreen, demonstrate the use of
ccfor off-screen rendering;
- Add demo_viz_offscreen, demonstrate using
vizfor off-screen rendering; - Modify demo_viz to demo_viz_gui, the function is unchanged;
- Add demo_viz, demonstrate using
vizmodule; - Add documentation for
viz: viz
- Add demo_views, demonstrate using
//ui/viewsto develop UI;
- demo_apk supports JNI to call instance method of C++ class;
- Add document: [browser startup process brief description] (./docs/startup.md)
- demo_apk supports JNI;
- Add document: demo_apk
- Add demo_tracing to demonstrate the use of trace;
- Add demo_apk to demonstrate how to use gn to create Android applications;
- Add demo_shell to demonstrate how to use the Content API to create a streamlined browser;
Add the following demo and related documents:
- demo_exe: the simplest demo, demonstrate gn and create your own exe;
- demo_log: demonstrate the use of log library;
- demo_tracing: demonstrate the use of Trace;
- demo_tasks: demonstrate the use of thread pool ThreadPool;
- demo_messageloop: demonstrate the use of message loop MessageLoop;
- demo_mojo_single_process: demonstrate the use of mojo library in a single process;
- demo_mojo_multiple_process: demonstrate the use of the mojo library in multiple processes;
- demo_mojo_multiple_process_binding: demonstrate the use of the binding layer of the mojo library in multiple processes;
- demo_services: demonstrate the use of mojo-based servcies and multi-process architecture;
- demo_ipc: demonstrate the use of mojo-based IPC interface;
- demo_memory: demonstrate the use of SharedMemory;