diff --git a/docs/README.md b/docs/README.md
index d8fc91518e0a2e..f28c1799372103 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -180,7 +180,7 @@ used when committed.
 *   [Using Crashpad with `content_shell`](testing/using_crashpad_with_content_shell.md) -
     Capture stack traces on layout test crashes without an attached debugger
 *   [Test Descriptions](testing/test_descriptions.md) - Unit test targets that can be
-    built, with associated desciptions.
+    built, with associated descriptions.
 *   [Fuzz Testing](../testing/libfuzzer/README.md) - Fuzz testing in Chromium.
 *   [IPC Fuzzer](testing/ipc_fuzzer.md) - Fuzz testing of Chromium IPC interfaces.
 *   [Running Chrome tests with AddressSanitizer (asan) and LeakSanitizer (lsan)](testing/linux_running_asan_tests.md) -
@@ -203,7 +203,7 @@ used when committed.
 *   [Linux Proxy Config](linux/proxy_config.md) - Network proxy sources on Linux
 *   [Debugging SSL on Linux](linux/debugging_ssl.md) - Tips on debugging SSL
     code in Linux
-*   [Linux Cert Managment](linux/cert_management.md) - Managing X.509
+*   [Linux Cert Management](linux/cert_management.md) - Managing X.509
     Certificates in Linux
 *   [Tips for Debugging on Linux](linux/debugging.md)
 *   [Linux GTK Theme Integration](linux/gtk_theme_integration.md) - Having
@@ -341,7 +341,7 @@ used when committed.
 *   [BRLTTY in Chrome OS](accessibility/brltty.md) - Chrome OS integration with
     BRLTTY to support refreshable braille displays
 *   [PATTS on Chrome OS](accessibility/patts.md) - Notes on the PATTS speech
-    sythesis engine used on Chrome OS
+    synthesis engine used on Chrome OS
 *   [VoiceOver](ios/voiceover.md) - Using Apple's VoiceOver feature with
     Chromium on iOS.
 
diff --git a/docs/accessibility/brltty.md b/docs/accessibility/brltty.md
index cd921d015207b5..67fa216795923f 100644
--- a/docs/accessibility/brltty.md
+++ b/docs/accessibility/brltty.md
@@ -222,7 +222,7 @@ libbrlapi could require additional so versions be added to our loader.
 
 2. modify the way in which brltty gets run.
 
-In particular, look at the invokation of the minijail in
+In particular, look at the invocation of the minijail in
 
 third_party/chromiumos-overlay/app-accessibility/brltty/files/brltty
 
diff --git a/docs/accessibility/espeak.md b/docs/accessibility/espeak.md
index c3305f8305ce4b..e09e0618a6312d 100644
--- a/docs/accessibility/espeak.md
+++ b/docs/accessibility/espeak.md
@@ -2,7 +2,7 @@
 
 Chrome OS comes with a port of the open-source eSpeak-NG speech synthesis
 engine. eSpeak-NG is lower quality than Google's "PATTS" speech engine,
-but it's faster, uses less resouces, and supports more languages.
+but it's faster, uses less resources, and supports more languages.
 
 [Read more about Text-to-Speech in Chrome](tts.md).
 
diff --git a/docs/accessibility/offscreen.md b/docs/accessibility/offscreen.md
index 8658c7f687ae46..d51414240f7079 100644
--- a/docs/accessibility/offscreen.md
+++ b/docs/accessibility/offscreen.md
@@ -31,7 +31,7 @@ For example, the staticText node here is offscreen:
 
 As background, [MSDN](https://msdn.microsoft.com/en-us/library/dd373609(VS.85).aspx)
 defines Offscreen as an object is not rendered, but not because it was
-programatically hidden:
+programmatically hidden:
 
 >The object is clipped or has scrolled out of view, but it is not
 programmatically hidden. If the user makes the viewport larger, more of the
@@ -51,7 +51,7 @@ overflow:hidden, overflow:scroll, or it is a rootWebArea), offscreen is set to
 true.
 
 ## Invisible
-A node is marked Invisible in Chrome if it is hidden programatically. In some
+A node is marked Invisible in Chrome if it is hidden programmatically. In some
 cases, invisible nodes are simply excluded from the accessibility tree. Chrome
 defines invisible as:
 
diff --git a/docs/accessibility/overview.md b/docs/accessibility/overview.md
index 0bbbdb8eedcaf5..72c95f9aa850eb 100644
--- a/docs/accessibility/overview.md
+++ b/docs/accessibility/overview.md
@@ -354,7 +354,7 @@ queries in the accessibility tree.
 To compactly store the bounding box of every character on the page, we
 split the text into *inline text boxes*, sometimes called *text runs*.
 For example, in a typical paragraph, each line of text would be its own
-inline text box. In general, an inline text box or text run contians a
+inline text box. In general, an inline text box or text run contains a
 sequence of text characters that are all oriented in the same direction,
 in a line, with the same font, size, and style.
 
diff --git a/docs/accessibility/switch_access.md b/docs/accessibility/switch_access.md
index 3d27858fd305db..f9ca2a188b8158 100644
--- a/docs/accessibility/switch_access.md
+++ b/docs/accessibility/switch_access.md
@@ -328,7 +328,7 @@ or node type directly.
 #### background.js
 
 This file is the first one run. Its primary job is to create an instance of
-SwitchAccess, although it als overifies that there is not more than one instance
+SwitchAccess, although it also overifies that there is not more than one instance
 of Switch Access running simultaneously (this would normally happen on the sign
 in page).
 
diff --git a/docs/design/gpu_synchronization.md b/docs/design/gpu_synchronization.md
index fff5d9b98aab9d..76bada51b21429 100644
--- a/docs/design/gpu_synchronization.md
+++ b/docs/design/gpu_synchronization.md
@@ -39,7 +39,7 @@ native GL fence, usable for cross-process synchronization.
 
 ## Use case overview
 
-The core scenario is synchronizing read and write access to a shared resorce,
+The core scenario is synchronizing read and write access to a shared resource,
 for example drawing an image into an offscreen texture and compositing the
 result into a final image. The drawing operations need to be completed before
 reading to ensure correct output. A typical effect of wrong synchronization is
diff --git a/docs/disassemble_code.md b/docs/disassemble_code.md
index 13d68b15e4ff4d..90c6e43e56a1a1 100644
--- a/docs/disassemble_code.md
+++ b/docs/disassemble_code.md
@@ -63,7 +63,7 @@ ninja -C out/RelNgSym
 ```
 
 You probably will want to add some more command line options to this,
-depending on your usual build paralellism.
+depending on your usual build parallelism.
 
 ## Getting the right objdump
 
diff --git a/docs/documentation_best_practices.md b/docs/documentation_best_practices.md
index 623e18b5bcde61..b8c9e954a8e86d 100644
--- a/docs/documentation_best_practices.md
+++ b/docs/documentation_best_practices.md
@@ -93,7 +93,7 @@ to detailed prose:
     * Who maintains this directory and where I can learn more?
 
 4.  **Design docs, PRDs**: A good design doc or PRD discusses the proposed
-    implementation at length for the purpose of collecting feeback on that
+    implementation at length for the purpose of collecting feedback on that
     design. However, once the code is implemented, design docs should serve as
     archives of these decisions, not as half-correct docs (they are often
     misused). See
diff --git a/docs/gpu/gpu_testing.md b/docs/gpu/gpu_testing.md
index ecdb0e0b4f123f..f426e680ace6ca 100644
--- a/docs/gpu/gpu_testing.md
+++ b/docs/gpu/gpu_testing.md
@@ -551,7 +551,7 @@ itself will contain links. In either case, these links will direct to Gold
 pages showing the image produced by the image and the approved image that most
 closely matches it.
 
-Note that for the tests which programatically check colors in certain regions of
+Note that for the tests which programmatically check colors in certain regions of
 the image (tests with `expected_colors` fields in [pixel_test_pages]), there
 likely won't be a closest approved image since those tests only upload data to
 Gold in the event of a failure.
diff --git a/docs/infra/cq.md b/docs/infra/cq.md
index b32698ddcd27a3..ee00b8b8176ade 100644
--- a/docs/infra/cq.md
+++ b/docs/infra/cq.md
@@ -146,7 +146,7 @@ There are several requirements for a builder to be added to the Commit Queue.
 * It should be possible for any committer to replicate any testing run; i.e.
   tests and their data must be in the public repository.
 * Median cycle time needs to be under 40 minutes for trybots. 90th percentile
-  should be around an hour (preferrably shorter).
+  should be around an hour (preferably shorter).
 * Configurations need to catch enough failures to be worth adding to the CQ.
   Running builds on every CL requires a significant amount of compute resources.
   If a configuration only fails once every couple of weeks on the waterfalls,
diff --git a/docs/initialize_blink_features.md b/docs/initialize_blink_features.md
index bb6ab5f977ad29..3e44a6450d959e 100644
--- a/docs/initialize_blink_features.md
+++ b/docs/initialize_blink_features.md
@@ -55,7 +55,7 @@ default status):
 \[1]: `base::FeatureList::IsEnabled(features::kNewFeatureX)` is still
 false. These combinations are suitable for features there are fully implemented
 at blink side. Otherwise normally the blink feature should not have a status so
-that the Chromium feature can fully controll the feature.
+that the Chromium feature can fully control the feature.
 
 \[2]: This combination is counter-intuitive and should be avoided.
 
diff --git a/docs/installation_at_vmware.md b/docs/installation_at_vmware.md
index 6feae63f697cbd..7d338885d37890 100644
--- a/docs/installation_at_vmware.md
+++ b/docs/installation_at_vmware.md
@@ -10,7 +10,7 @@
 1.  Create a New Virtual Machine
 1.  Do not selecting any OP-sys (other-other-etc)
 1.  Delete your newly created hardisc (lets say you named it as Chrome)
-1.  Move downloaded harddisc to the same folder as othere VMware files for this
+1.  Move downloaded harddisc to the same folder as other VMware files for this
     Virtual Machine
 1.  Rename your downloaded hardisc to newly created Virtual Machine original
     name (in my example it was Chrome)
diff --git a/docs/ios/build_instructions.md b/docs/ios/build_instructions.md
index b735d7040f5b15..a90c4ba290b309 100644
--- a/docs/ios/build_instructions.md
+++ b/docs/ios/build_instructions.md
@@ -237,7 +237,7 @@ installed that could sign the `ios_web_shell.app` bundle with the identity
 request such a mobile provisioning profile from Apple.
 
 You can inspect the file passed via the `-e` flag to the `codesign.py` script
-to check which capabilites are required for the mobile provisioning profile
+to check which capabilities are required for the mobile provisioning profile
 (e.g. `src/build/config/ios/entitlements.plist` for the above build error,
 remember that the paths are relative to the build directory, not to the source
 directory).
diff --git a/docs/memory/tools.md b/docs/memory/tools.md
index 602f99cf910c5a..7968d40971f5c8 100644
--- a/docs/memory/tools.md
+++ b/docs/memory/tools.md
@@ -40,7 +40,7 @@ To look a the delta between two dumps, control-click two different dark-purple M
 circles.
 
 ### Blindspots
-  * Statistics are self-reported. If the MemoryDumpProvider implemenation does
+  * Statistics are self-reported. If the MemoryDumpProvider implementation does
     not fully cover the resource usage of the subsystem, those resources will
     not be accounted.
 
@@ -157,7 +157,7 @@ looking similar due to the nature of DOM node allocation.
 | ------- | ----- |
 | Out of process heap profiling start mode. | This option is somewhat misnamed. It tells OOPHP which processes to profile at startup. Other processes can selected manually later via chrome://memory-internals even if this is set to "disabled". |
 | Keep track of even the small allocations in memlog heap dumps. | By default, small allocations are not emitted in the heap dump to reduce dump size. Enabling this track _all_ allocations. |
-| The type of stack to record for memlog heap dumps | If possible, use Native stack frames as that provides the best information. When those are not availble either due to performance for build (eg, no frame-pointers on arm32 official) configurations, using trace events for a "pseudo stack" can give good information too. |
+| The type of stack to record for memlog heap dumps | If possible, use Native stack frames as that provides the best information. When those are not available either due to performance for build (eg, no frame-pointers on arm32 official) configurations, using trace events for a "pseudo stack" can give good information too. |
 | Heap profiling | Deprecated. Enables the in-process heap profiler. Functionality should be fully subsumed by preceeding options. |
 
 #### Saving a heap dump
@@ -168,7 +168,7 @@ looking similar due to the nature of DOM node allocation.
   2. Symbolize trace using  [`symbolize_trace.py`](../../third_party/catapult/tracing/bin/symbolize_trace). If the Chrome binary was built locally, pass the flag "--is-local-build".
   3. Analyze resuing heap dump using [`diff_heap_profiler.py`](#diff-heap-profiler), or [Heap Profile view in Chrome Tracing](#tracing-heap-profile)
 
-On deskop, using chrome://memory-internals to take a heap dump is more reliable
+On desktop, using chrome://memory-internals to take a heap dump is more reliable
 as it directly saves the heapdump to a file instead of passing the serialized data
 through the chrome://tracing renderer process which can easily OOM. For Android,
 this native file saving was harder to implement and would still leave the
@@ -259,10 +259,10 @@ can notice kernel resources that are allocated (eg, GPU memory, or drive memory
 such as the Windows Paged and Non-paged pools) as side effects of user mode
 calls nor do they account for memory that does not go through new/malloc
 (manulaly callling `mmap()`, or `VirtualAlloc()`). Querying a full view of
-these allocaitons usually requires admin privileges, the semantics change
+these allocations usually requires admin privileges, the semantics change
 per platform, and the performance can vary from being "constant-ish" to
 being dependent on virtual space size (eg, probing allocation via
-VirtualQueryEx or parsing /proc/self/maps) or number of proccesses in the
+VirtualQueryEx or parsing /proc/self/maps) or number of processes in the
 system (NTQuerySystemInformation).
 
 As an example of error in measurement, PartitionAlloc did not account for
diff --git a/docs/native_relocations.md b/docs/native_relocations.md
index 22ad0c827c64e9..2b7ff299fa7211 100644
--- a/docs/native_relocations.md
+++ b/docs/native_relocations.md
@@ -30,7 +30,7 @@
 [cros]: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1210982
 
 ### Windows Relocations (PE Format)
- * For PE files, relocaitons are stored in per-code-page
+ * For PE files, relocations are stored in per-code-page
    [`.reloc` sections][win_relocs].
  * Each relocation is stored using 2 bytes. Each `.reloc` section has a small
    overhead as well.
diff --git a/docs/proxy_auto_config.md b/docs/proxy_auto_config.md
index c45a910764eef6..d47372a0e39662 100644
--- a/docs/proxy_auto_config.md
+++ b/docs/proxy_auto_config.md
@@ -1,7 +1,7 @@
 # Proxy Auto Config Using WPAD
 
 Most systems support manually configuring a proxy for web access, but this is
-cumbersome and kind of techical, so Chrome also supports
+cumbersome and kind of technical, so Chrome also supports
 [WPAD](http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol) for proxy
 configuration (enabled if "automatically detect proxy settings" is enabled on
 Windows).
diff --git a/docs/speed/benchmark/harnesses/system_health.md b/docs/speed/benchmark/harnesses/system_health.md
index cf5f49e03ca6c4..baafae376ef69f 100644
--- a/docs/speed/benchmark/harnesses/system_health.md
+++ b/docs/speed/benchmark/harnesses/system_health.md
@@ -151,7 +151,7 @@ to see if your intended user stories are already covered by existing ones.
 If there is a good reason for your stories to be added, please make one CL for
 each of the new stories so they can be landed (and reverted if needed)
 individually. On each CL, make sure that the perf trybots all pass before
-comitting.
+committing.
 
 Once your patch makes it through the CQ, you’re done… unless your story starts
 failing on some random platform, in which case the perf bot sheriff will very
diff --git a/docs/speed/benchmark/harnesses/webrtc_perf.md b/docs/speed/benchmark/harnesses/webrtc_perf.md
index 59498c9442608c..bded3b378f4a24 100644
--- a/docs/speed/benchmark/harnesses/webrtc_perf.md
+++ b/docs/speed/benchmark/harnesses/webrtc_perf.md
@@ -20,7 +20,7 @@ which controls the user interactions and duration of the test.
 The [`webrtc.py`](../../../../tools/perf/benchmarks/webrtc.py)
 benchmark specifies which metrics should be collected for the
 test pages, and extra options that we pass to the test to fake the real camera
-and skip assing permission to get access to the video and audio from the user.
+and skip assign permission to get access to the video and audio from the user.
 
 
 ## Running the Tests
diff --git a/docs/speed/binary_size/metrics.md b/docs/speed/binary_size/metrics.md
index c4108770fc7cc2..e454c6e8c224a2 100644
--- a/docs/speed/binary_size/metrics.md
+++ b/docs/speed/binary_size/metrics.md
@@ -14,7 +14,7 @@ This document lists metrics used to track binary size.
 
 ### Alerting
 
- * Alerts are sheriffed as part of the main perf sherif rotation.
+ * Alerts are sheriffed as part of the main perf sheriff rotation.
  * Alerts generally fire for ~100kb jumps.
 
 ## Metrics for Android
diff --git a/docs/speed/microbenchmark_regressions.md b/docs/speed/microbenchmark_regressions.md
index 31f49f5e8de1db..5dc4a59d79fc79 100644
--- a/docs/speed/microbenchmark_regressions.md
+++ b/docs/speed/microbenchmark_regressions.md
@@ -35,7 +35,7 @@ https://crbug.com/889742 is has more details and many duped bugs.
 
 ### No-op refactors that prevent AFDO
 
-It's also possible to make no-op changes to code, cauing the previous AFDO data
+It's also possible to make no-op changes to code, causing the previous AFDO data
 to be inapplicable (e.g. function name change). This can result in apparent
 regressions which recover spontaneously once new AFDO data is generated based on
 the new code. E.g. https://crbug.com/855544 was a specific case of this. One way
diff --git a/docs/speed/speed_domains.md b/docs/speed/speed_domains.md
index 1aaf7b1981837e..ebf480f1a5227e 100644
--- a/docs/speed/speed_domains.md
+++ b/docs/speed/speed_domains.md
@@ -49,7 +49,7 @@ interact with a website.
 ## Responsiveness
 
 Responsiveness domain focuses on making sure all websites have smooth transitions
-by serving 60fps, and that the click to action time is not noticible.
+by serving 60fps, and that the click to action time is not noticeable.
 
  * Performance-Responsiveness [Bug
    Queue](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Performance%3DResponsiveness)
diff --git a/docs/sublime_ide.md b/docs/sublime_ide.md
index 3a0d24e55d8362..e8ec1d968d47cc 100644
--- a/docs/sublime_ide.md
+++ b/docs/sublime_ide.md
@@ -255,7 +255,7 @@ With [Chromium X-Refs](https://github.com/karlinjf/ChromiumXRefs/) you can
 perform [https://cs.chromium.org](https://cs.chromium.org) cross-reference
 searches in your editor. This gives you the call graph, overrides, references,
 declaration, and definition of most of the code. The results are as fresh as
-the search engine's index so uncomitted changes won't be reflected.
+the search engine's index so uncommitted changes won't be reflected.
 
 More information on Chromium X-Ref's functionality (including keyboard and
 mouse shortcuts) can be found on the [Chromium X-Refs
diff --git a/docs/sync/uss/client_tag_based_model_type_processor.md b/docs/sync/uss/client_tag_based_model_type_processor.md
index a66a1075f2e8d2..5c0b6d5c6062f8 100644
--- a/docs/sync/uss/client_tag_based_model_type_processor.md
+++ b/docs/sync/uss/client_tag_based_model_type_processor.md
@@ -32,7 +32,7 @@ immediately created to replace it.
 ## Processor State Machines
 
 The processor sits between the model bridge and the sync engine. It has
-knowledge of what state each is in based on the calls it has receieved and
+knowledge of what state each is in based on the calls it has received and
 performed. The states are not stored explicitly, but are implicit based on
 state stored in the processor. Here are the states of each, with notes on their
 transitions and how to determine them.
diff --git a/docs/updater/protocol_3_1.md b/docs/updater/protocol_3_1.md
index 01d5a8222c267a..28f2057401e4bc 100644
--- a/docs/updater/protocol_3_1.md
+++ b/docs/updater/protocol_3_1.md
@@ -150,7 +150,7 @@ Additions to the protocol that specify backward-compatible default values (often
 with a semantic meaning of "unknown") do not need to increase the protocol
 version. Removals of values with specified defaults from the protocol do not
 need to increase the protocol version, since the default value can be assumed by
-compatible enpoints. All other changes to the protocol may require a new version
+compatible endpoints. All other changes to the protocol may require a new version
 number.
 
 ### Timing & Backoff
diff --git a/docs/vscode.md b/docs/vscode.md
index 891d5b021323ed..ec20e6215a72dd 100644
--- a/docs/vscode.md
+++ b/docs/vscode.md
@@ -145,7 +145,7 @@ marketplace](https://marketplace.visualstudio.com/search?target=VSCode&category=
 *   `Ctrl+K, Ctrl+S` opens the key bindings editor.
 *   ``Ctrl+` `` toggles the built-in terminal.
 *   `Ctrl+Shift+M` toggles the problems view (linter warnings, compile errors
-    and warnings). You'll swicth a lot between terminal and problem view during
+    and warnings). You'll switch a lot between terminal and problem view during
     compilation.
 *   `Alt+O` switches between the source/header file.
 *   `Ctrl+G` jumps to a line.