Chromium Chronicle,Chromium Chronicle,Chromium Chronicle
The Chromium Chronicle #33: Views AnimationBuilder
Using layer based animations in Views can improve performance and reduce jankiness, but they're rather difficult to set up. The AnimationBuilder classes can vastly reduce complexity and improve readability for layer animations. Suppose you needed to
The Chromium Chronicle #32: Mind the patch gap
Learn how Chromium developers can reduce the chance of n-day exploitation.
The Chromium Chronicle #28: Getting started with Chrome on iOS
Learn how to work with the code behind Chrome's iOS app.
The Chromium Chronicle #25: Thread Safety Annotations
Learn how Clang's static analysis framework takes over the toil of thread-safety proofs.
The Chromium Chronicle #24: StrongAlias, IdType, and TokenType
The same type may sometimes represent values from incompatible domains, which can cause bugs. Fortunately, Chromium's //base makes it easy to introduce explicit, distinct types.
The Chromium Chronicle #23: Verified builds in Chrome Infra
Implementing a policy enforcement check for Chrome and the infrastructure has enabled us to verify that certain minimum standards for security are met.
The Chromium Chronicle #22: Know Thy (Depot) Tools
Depot Tools is a collection of tools built on top of Git to simplify the workflow of developers contributing to the Chromium codebase and related projects.
The Chromium Chronicle #21: ChromeOS End-to-end UI Automation
Tast is a new UI library has been created that uses the Chrome a11y (accessibility) tree to control the ChromeOS UI. The library enables developers to easily create End-to-end tests against any visible UI surface.
The Chromium Chronicle #20: Benchmarking Test Harnesses
Adding benchmarks is an easy way to prevent performance regressions and help improve performance.
The Chromium Chronicle #19: Faster Development with CLion
CLion IDE makes it possible to navigate across symbols, search the codebase, and more.
The Chromium Chronicle #18: Chromium Code Coverage
Test coverage measures how much source code is executed when a particular test suite runs.
The Chromium Chronicle #17: Browser Test Mixins
When writing a browser test, you often want to programmatically perform setup actions that the user could do manually. To help you do this, mixins are a suite of tools for performing non-trivial browser test setup in a reusable way.
The Chromium Chronicle #16: Updating Google Apps on Desktop
Ever wondered how Chrome keeps itself up-to-date on your desktop? Or how updates are served to Chromebooks, Chromecast, or Android?
The Chromium Chronicle #15: Restricting Target Visibility
In Chromium, it's common to find code written for one component that would be useful elsewhere, but might have hidden restrictions. For safety, limit external access to dangerous functionality by restricting target visibility.
The Chromium Chronicle #14: Adding Tests to the Waterfall
Want to detect regressions for your new feature in Chrome? Add your tests to the waterfall, Chrome's continuous build and test infrastructure!
The Chromium Chronicle #13: Time-Travel Debugging with RR
Do you find yourself running the same test over and over in the debugger, trying to figure out how the code got in a bad state? We have a tool for you! RR will record an execution trace, making it easy to step backwards, run backwards, see where variables changed their value or when a function was last called on an object.
The Chromium Chronicle #10: Catching UI Regressions with Pixel Tests
Chrome's testing strategy relies heavily on automated functional correctness tests and manual testing, but neither of these reliably catch minor UI regressions. Use pixel tests to automate testing your desktop browser UI.
The Chromium Chronicle #9: ClusterFuzz
You may find you are asked to fix high-priority security bugs discovered by ClusterFuzz. What is it? Should you take those bugs seriously? How can you help?
The Chromium Chronicle #8: GWP-ASan: Detect bugs in the wild
GWP-ASan is a heap-only memory error detector designed to be used in the wild. It detects use-after-frees, buffer overflows/underflows, and double frees. Unlike ASan, it does not detect errors on the stack or in globals.
The Chromium Chronicle #7: Preprocessing Source
Compiling a single Chromium source file by hand can help developers experiment with compiler optimization options, understand subtle macro details, or minimize a compiler bug. This month, we take a look at how to preprocess source.
The Chromium Chronicle #6: Monorail's Grid View
Chrome's issue tracker, Monorail, offers a grid view that allows you to visualize your issues in a Kanban style board. This episode explains how to use the grid mode.
The Chromium Chronicle #5: Coding Outside the Sandbox
All code has bugs. The Chrome Browser process has no sandbox, meaning those bugs could give malcious code full access to the whole device. This episode explains the dos and don'ts of coding without a sandbox.
The Chromium Chronicle #4: Test your Web Platform Features with WPT
Web Platform tests (WPT) are the preferred way to test web-exposed features, as they are shared with other browsers via GitHub. This month, we take a look at WPT best practices.
The Chromium Chronicle #3: Code Coverage in Gerrit
Tests are critical because they find bugs and regressions, enforce better designs and make code easier to maintain. This month, we take a look at how to conduct thorough tests with Gerrit.
The Chromium Chronicle #2: Fighting Test Flakiness
Flaky tests are a common problem in Chrome. They impact the productivity of other developers, and get disabled over time. This month, we take a look at how to fight test flakiness.
The Chromium Chronicle #1: Task Scheduling Best Practices
The Chrome team is proud to introduce the Chromium Chronicle, a monthly series geared specifically to Chromium developers - the developers who build the browser. This month, we take a look at task scheduling best practices.
The Chromium Chronicle #33: Views AnimationBuilder
Using layer based animations in Views can improve performance and reduce jankiness, but they're rather difficult to set up. The AnimationBuilder classes can vastly reduce complexity and improve readability for layer animations. Suppose you needed to
The Chromium Chronicle #32: Mind the patch gap
Learn how Chromium developers can reduce the chance of n-day exploitation.
The Chromium Chronicle #28: Getting started with Chrome on iOS
Learn how to work with the code behind Chrome's iOS app.
The Chromium Chronicle #25: Thread Safety Annotations
Learn how Clang's static analysis framework takes over the toil of thread-safety proofs.
The Chromium Chronicle #24: StrongAlias, IdType, and TokenType
The same type may sometimes represent values from incompatible domains, which can cause bugs. Fortunately, Chromium's //base makes it easy to introduce explicit, distinct types.
The Chromium Chronicle #23: Verified builds in Chrome Infra
Implementing a policy enforcement check for Chrome and the infrastructure has enabled us to verify that certain minimum standards for security are met.
The Chromium Chronicle #22: Know Thy (Depot) Tools
Depot Tools is a collection of tools built on top of Git to simplify the workflow of developers contributing to the Chromium codebase and related projects.
The Chromium Chronicle #21: ChromeOS End-to-end UI Automation
Tast is a new UI library has been created that uses the Chrome a11y (accessibility) tree to control the ChromeOS UI. The library enables developers to easily create End-to-end tests against any visible UI surface.
The Chromium Chronicle #20: Benchmarking Test Harnesses
Adding benchmarks is an easy way to prevent performance regressions and help improve performance.
The Chromium Chronicle #19: Faster Development with CLion
CLion IDE makes it possible to navigate across symbols, search the codebase, and more.
The Chromium Chronicle #18: Chromium Code Coverage
Test coverage measures how much source code is executed when a particular test suite runs.
The Chromium Chronicle #17: Browser Test Mixins
When writing a browser test, you often want to programmatically perform setup actions that the user could do manually. To help you do this, mixins are a suite of tools for performing non-trivial browser test setup in a reusable way.
The Chromium Chronicle #16: Updating Google Apps on Desktop
Ever wondered how Chrome keeps itself up-to-date on your desktop? Or how updates are served to Chromebooks, Chromecast, or Android?
The Chromium Chronicle #15: Restricting Target Visibility
In Chromium, it's common to find code written for one component that would be useful elsewhere, but might have hidden restrictions. For safety, limit external access to dangerous functionality by restricting target visibility.
The Chromium Chronicle #14: Adding Tests to the Waterfall
Want to detect regressions for your new feature in Chrome? Add your tests to the waterfall, Chrome's continuous build and test infrastructure!
The Chromium Chronicle #13: Time-Travel Debugging with RR
Do you find yourself running the same test over and over in the debugger, trying to figure out how the code got in a bad state? We have a tool for you! RR will record an execution trace, making it easy to step backwards, run backwards, see where variables changed their value or when a function was last called on an object.
The Chromium Chronicle #10: Catching UI Regressions with Pixel Tests
Chrome's testing strategy relies heavily on automated functional correctness tests and manual testing, but neither of these reliably catch minor UI regressions. Use pixel tests to automate testing your desktop browser UI.
The Chromium Chronicle #9: ClusterFuzz
You may find you are asked to fix high-priority security bugs discovered by ClusterFuzz. What is it? Should you take those bugs seriously? How can you help?
The Chromium Chronicle #8: GWP-ASan: Detect bugs in the wild
GWP-ASan is a heap-only memory error detector designed to be used in the wild. It detects use-after-frees, buffer overflows/underflows, and double frees. Unlike ASan, it does not detect errors on the stack or in globals.
The Chromium Chronicle #7: Preprocessing Source
Compiling a single Chromium source file by hand can help developers experiment with compiler optimization options, understand subtle macro details, or minimize a compiler bug. This month, we take a look at how to preprocess source.
The Chromium Chronicle #6: Monorail's Grid View
Chrome's issue tracker, Monorail, offers a grid view that allows you to visualize your issues in a Kanban style board. This episode explains how to use the grid mode.
The Chromium Chronicle #5: Coding Outside the Sandbox
All code has bugs. The Chrome Browser process has no sandbox, meaning those bugs could give malcious code full access to the whole device. This episode explains the dos and don'ts of coding without a sandbox.
The Chromium Chronicle #4: Test your Web Platform Features with WPT
Web Platform tests (WPT) are the preferred way to test web-exposed features, as they are shared with other browsers via GitHub. This month, we take a look at WPT best practices.
The Chromium Chronicle #3: Code Coverage in Gerrit
Tests are critical because they find bugs and regressions, enforce better designs and make code easier to maintain. This month, we take a look at how to conduct thorough tests with Gerrit.
The Chromium Chronicle #2: Fighting Test Flakiness
Flaky tests are a common problem in Chrome. They impact the productivity of other developers, and get disabled over time. This month, we take a look at how to fight test flakiness.
The Chromium Chronicle #1: Task Scheduling Best Practices
The Chrome team is proud to introduce the Chromium Chronicle, a monthly series geared specifically to Chromium developers - the developers who build the browser. This month, we take a look at task scheduling best practices.