* refactor: more return-braced-init-list, this time for v8 and gin objects
* refactor: more return-braced-init-list, this time for v8, gin, std, and base objects
* chore: bump chromium in DEPS to 125.0.6421.0
* chore: bump chromium in DEPS to 125.0.6422.0
* Add ENABLE_BASE_TRACING flags for compatibility with enable_base_tracing = false on Windows
5434658
* chore: update patches
* fixup: Add ENABLE_BASE_TRACING flags for compatibility with enable_base_tracing = false on Windows
* chore: bump chromium in DEPS to 126.0.6423.0
* chore: update patches
* 5426599: Next generation control of unsafe-buffers-usage plugin
5426599
* chore: bump chromium in DEPS to 126.0.6425.0
* chore: update patches
* Roll clang+rust llvmorg-19-init-7229-g315c88c5-2 : llvmorg-19-init-8091-gab037c4f-1 / ceab6128fa48a616bfd3e3adf4bc80133b8ee223-1 : ab71ee7a9214c2793108a41efb065aa77aeb7326-1
5444328
Also see https://issues.chromium.org/issues/332931387
* 5445074: [Views AX] Move AXEventNotificationDetails to ui/accessibility/
5445074
Also
5455993: [Views AX] Rename AXEventNotificationDetails to AXUpdatesAndEvents | 5455993
* Pass IsolationInfo to ContentBrowserClient::WillCreateURLLoaderFactory()
5405301
* chore: bump chromium in DEPS to 126.0.6427.0
* chore: update patches
* chore: remove no longer needed patch
perfetto is now turned on so this patch is no longer needed.
* chore: bump chromium in DEPS to 126.0.6429.0
* chore: bump chromium in DEPS to 126.0.6431.0
* chore: bump chromium in DEPS to 126.0.6433.0
* 5466654: Do not create a console if logging to a handle
5466654
* chore: fixup patch indices
* Address Linux NonClientFrameView Changes
- 5180720
- 5367794
* chore: bump chromium in DEPS to 126.0.6435.0
* chore: bump chromium in DEPS to 126.0.6437.0
* chore: update patches
* chore: bump chromium in DEPS to 126.0.6439.0
* chore: bump chromium in DEPS to 126.0.6441.0
* 5477689: components/crash/content/tools: Format with yapf | 5477689
* 5485006: Remove enable_print_content_analysis GN flag | 5485006
* chore: update chromium patches
* chore: bump chromium in DEPS to 126.0.6443.0
* 5465608: Convert DCHECKs near RenderWidgetHost, DelegatedFrameHost to CHECK | 5465608
* 5492605: Migrate TODOs referencing old crbug IDs to the new issue tracker IDs | 5492605
* chore: update patches
* chore: bump chromium in DEPS to 126.0.6445.0
* chore: update patches
* 5468588: Fullscreen: Encapsulate ExclusiveAccessBubble params in a struct | 5468588
* fixup! 5485006: Remove enable_print_content_analysis GN flag | 5485006
* 5461340: `size_t` in `mojo::DataPipe[Consumer|Producer]Handle`: /components. | 5461340
* 5480213: Add an EvictIds struct to FrameEvictorClient | 5480213
* 4341506: [api] Deprecate Isolate::IdleNotificationDeadline | 4341506
* 5300826: [v8-tasks] Add source location to v8::TaskRunner, step 4/4. | 5300826
* partially revert is_newly_created to allow for browser initiated about:blank loads
* add dep on app_launch_prefetch
Ref: 5420149
* install sysroots from electron not from chrome
We should add a new var upstream for `download_sysroots` so that we can skip downloading chromes at all.
Ref: 5462469
* refactor: make UpdateFrameHints an override
Ref: 5473548
* fix ppapi
* refactor: update namespace for pwm switches
Ref: 5444617
* 5459367: WebSQL: Restrict WebSQL service creation to Android only | 5459367
* 5455853: Revert "[Clipboard] Don't add meta charset tag for async write() method on Mac." | 5455853
* fixup! refactor: update namespace for pwm switches
edd9e26
Ref: 5444617
* 5147611: [heap] Add checks for ensuring position info slow path is not used in heap snapshot | 5147611
* fixup! 5412666: [heap] Also avoid heap allocation for allocation tracked functions | 5412666
* chore: add websql removal to breaking-changes.md
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
* chore: bump chromium in DEPS to 120.0.6049.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6050.0
* chore: update patches
* 4910494: Reland "[autopip] Show autopip UI for video pip"
4910494
* 4812338: Move partition_alloc into a "partition_alloc" dir.
4812338
* [Extensions Cleanup] Remove mojom ViewType::kExtensionDialog
4909897
* 4894923: Force enable raw_ptrs pointer arithmetic check.
4894923
* gin: Prevent wrappables from being constructed from author code.
4905829
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6052.0
* chore: bump chromium in DEPS to 120.0.6054.0
* chore: bump chromium in DEPS to 120.0.6056.0
* chore: fix patches
* 4918545: Reland "[autopip] Add permissions embargo"
4918545
* 4881761: UI bindings for visual logging with structured metrics.
4881761
* chore: bump chromium in DEPS to 120.0.6058.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6060.0
* chore: bump chromium in DEPS to 120.0.6061.0
* chore: bump chromium in DEPS to 120.0.6062.0
* chore: gen libc++ filenames
* chore: update patches
* 4911894: Move //c/b/ui/views/eye_dropper to //components
4911894
* chore: bump chromium in DEPS to 120.0.6064.0
* chore: bump chromium in DEPS to 120.0.6066.0
* chore: bump chromium in DEPS to 120.0.6068.0
* chore: bump chromium in DEPS to 120.0.6070.0
* chore: remove temp_prevent_unused_function_error.patch
Xref: 4931270
* chore: add TransferDragSecurityInfo()
Xref: 4928028
* mark TransferDragSecurityInfo() as NOTREACHED
A follow-up to previous commit. I think this is commit is correct (i.e.
that this function shouldn't get called) but am not positive, so I'm
including it in a standalone commit in case we need to revert.
* chore: update signature of OnPrivateNetworkAccessPermissionRequired()
Xref: 4919478
Our impl is a no-op, so updating the signature is the only change.
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6072.0
* chore: update patches
* chore: sync ParseMatchPattern() param order with upstream change
Xref: 4944243
* chore: update fix_crash_loading_non-standard_schemes_in_iframes.patch
Xref: 4939602
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6073.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6074.0
* chore: update disable_color_correct_rendering.patch
Xref: 4908053
no manual changes; patch applied with fuzz 1
* chore: update fix_handle_no_top_level_aura_window_in_webcontentsimpl.patch
Xref: 4936315
minor manual sync to upstream code shear
* chore: rebuild patches
* chore: update ClearHttpAuthCache arguments
Xref: 4937937
adding ClearDataFilterPtr arg. Upstream added this arg, which is already
present in other NetworkContext methods. Our code uses `nullptr` there.
* chore: bump chromium in DEPS to 120.0.6076.0
* chore: update mas_disable_remote_accessibility.patch
Xref: 4865412
minor manual sync to upstream code shear
* chore: update disable_color_correct_rendering.patch
Xref: 4942936
minor manual sync to upstream code shear
* fix: move x11_util.h include to top of source file
This is a short-term fix to unblock the roll. I will follow up a better fix in a standalone PR.
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6077.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6078.0
* chore: update patches
* refactor: add BrowserProcessImpl::os_crypt_async()
Xref: 4455776
This is one to keep an eye on. This commit copies the upstream impl,
which appears to be an interim step with more upstream code changes
still forthcoming.
Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=1373092
* fixup! refactor: add BrowserProcessImpl::os_crypt_async()
chore: make 'gn check' happy
* chore: remove ensure_messageports_get_gced_when_not_referenced.patch
Xref: ensure_messageports_get_gced_when_not_referenced.patch
no longer needed because upstreamed
* chore: remove webrtc/pipewire_capturer_make_restore_tokens_re-usable_more_than_one_time.patch
Xref: https://webrtc-review.googlesource.com/c/src/+/322621
no longer needed because upstreamed
* chore: add //components/compose:buildflags dep
Xref: 4912601
needed by browser/ui/browser_dialogs.h
* chore: update filenames.libcxx.gni
node ./script/gen-libc++-filenames.js
* test: fix UI.InspectorView -> UI.InspectorView.instance()
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* chore: bump chromium in DEPS to 111.0.5522.0
* chore: bump chromium in DEPS to 111.0.5524.0
* chore: bump chromium in DEPS to 111.0.5526.0
* chore: bump chromium in DEPS to 111.0.5528.0
* chore: update patches/chromium/mas_avoid_usage_of_private_macos_apis.patch
Xref: 4132807
Fix simple code shear
* chore: update patches/chromium/unsandboxed_ppapi_processes_skip_zygote.patch
Xref: 4130675
Fix simple code shear
* chore: update patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch
Xref: 4144281
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/chromium/disable_unload_metrics.patch
Xref: 4126173
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/chromium/feat_add_data_parameter_to_processsingleton.patch
Xref: 4144281
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/chromium/preconnect_manager.patch
4144281
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/v8/force_cppheapcreateparams_to_be_noncopyable.patch
3533019
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches
* chore: update patches/chromium/add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
Xref: 4128765
Upstream added a new call to HeaderContext(), whose signature we have patched
* chore: bump chromium in DEPS to 111.0.5530.0
* chore: update patches
* Move ChildProcessHost* from content/common to content/browser
Xref: Move ChildProcessHost* from content/common to content/browser
* Remove RenderViewHostChanged
Xref: 4134103
[upstream removal of RenderViewHostChanged]
Xref: 4092763
Xref: 4093234
Xref: 4133892
Xref: 4134103
[examples of upstream code adjusting to the change]
Upstream handles this change in roughly two approaches:
1. Move the code over to RenderFrameHostChanged(old_host, new_host)
but test for new_host->IsInPrimaryMainFrame() before acting
2. Migrate to the PrimaryPageChanged(page) API and use
page.GetMainDocument() to get the RenderFrameHost.
I've chosen 1. because electron_api_web_contents needed that pointer
to old_host to call RemoveInputEventListener(), but I may be missing
some context & would appreciate review on this commit.
* Make electron/shell/browser/relauncher_win.cc use <winternl.h>
Xref: 4129135
Many internal Windows types are now available in winternl.h
so upstrem no longer defines the types themselves.
* Move ChildProcessHost* from content/common to content/browser
Xref: 4134795
* fixup! Make electron/shell/browser/relauncher_win.cc use <winternl.h>
winternl.h does not define the field we need, so clone the struct Chromium was using into unnamed namespace
* fixup! Move ChildProcessHost* from content/common to content/browser
chore: update #includes too
* chore: bump chromium in DEPS to 111.0.5532.0
* chore: sync patches/chromium/pepper_plugin_support.patch
Xref: 4133323
manually reync patch; no code changes
* chore: sync patches/chromium/mas_no_private_api.patch
Xref: 4143865
the content/common/pseudonymization_salt.cc patch is no longer needed
* chore: sync patches/chromium/mas_disable_remote_accessibility.patch
patch-fuzz update; no manual changes
* chore: sync patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch
Xref: 4111725
manually reync patch; no code changes
* chore: sync patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch
Xref: 4133323
manually reync patch; no code changes
* chore: sync patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
Xref: 4127230
patch-fuzz update; no manual changes
* chore: rebuild patches
* fixup! Remove RenderViewHostChanged
Use PrimaryPageChanged()
* chore: remove unused method TabsUpdateFunction::OnExecuteCodeFinished()
Xref: 4133991
This private, already-unused function showed up as a FTBFS because it
took a base::ListValue parameter and ListValue was removed upstream.
* task posting v3: remove includes of runner handles and IWYU task runners
Xref: 4133323
* chore: lint
* chore: more lint
* fixup! task posting v3: remove includes of runner handles and IWYU task runners
macOS, too
* fixup! task posting v3: remove includes of runner handles and IWYU task runners
* chore: bump chromium in DEPS to 111.0.5534.0
* chore: sync patches/chromium/allow_new_privileges_in_unsandboxed_child_processes.patch
Xref: 4141862
patch-fuzz update; no manual changes
* chore: sync patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch
Xref: 4153110
Sync to minor upstream changes. Add const correctness.
* chore: sync electron/patches/chromium/feat_configure_launch_options_for_service_process.patch
4141862
patch-fuzz update; no manual changes
* chore: patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
sync 4147787
patch-fuzz update; no manual changes
* chore: update patches
* chore: bump chromium in DEPS to 111.0.5536.0
* chore: sync patches/chromium/allow_new_privileges_in_unsandboxed_child_processes.patch
Xref: 4141863
Sync with upstream code changes. Minor code golf for readability.
Note: upstream is laying groundwork for being able to work off of env vars
instead of switches. Doesn't affect us yet but worth being aware of.
> + // Environment variables could be supported in the future, but are not
> + // currently supported when launching with the zygote.
* chore: update patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch
Xref: 4126836
patch-fuzz update; no manual changes
* chore: sync electron/patches/chromium/feat_configure_launch_options_for_service_process.patch
Xref: 4141863
manual sync
* chore: sync electron/patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
4147788
fuzz-patch
* chore: rebuild patches
* chore: bump chromium in DEPS to 111.0.5538.0
* chore: bump chromium in DEPS to 111.0.5540.0
* chore: update patches
* Remove sdk_forward_declarations
4166680
* task posting v3: Remove task runner handles from codebase entirely
Refs 4150928
* Cleanup child_process_launcher_helper*
Refs 4141863
* fix: utilityprocess spec on macOS
* fix: build on windows
Refs 4141863
* chore: fix lint
* chore: bump chromium 111.0.5544.3
* chore: gen filenames.libcxx.gni
* Add check for Executable+Writable handles in renderer processes.
Refs 3774416
* fixup! Add check for Executable+Writable handles in renderer processes.
* 4143761: [110] Disable SwiftShader for WebGL on M1 Macs.
4143761
(cherry picked from commit 2f74db3c2139424c416f92d9169aeaa8a2f9c1ec)
* chore: bump chromium to 111.0.5555.0
* 56085: Remove hmac.h include from ssl.h.
https://boringssl-review.googlesource.com/c/boringssl/+/56085
* 4167020: Remove forwarding headers
4167020
* chore: bump chromium to 111.0.5559.0
* 4181044: Restrict WebCursor usage to RenderWidgetHostViewAura
4181044
* 4189437: views: rename ink_drop_host_view to ink_drop_host
4189437
* chore: bump chromium to 111.0.5560.0
* 4167016: win7dep: remove non aeroglass code
4167016
* fixup after rebase: Remove forwarding header
s 4167020
* 4125755: Reland "Reject getDisplayMedia calls without user activation"
4125755
* test: add workaround
* chore: update patches
* fix: alter coreModuleRegExp to prevent arm crash
* Revert "fix: alter coreModuleRegExp to prevent arm crash"
This reverts commit 7e50630c98137831a711c5abdbc8809e60cf1d73.
* 4218354: Disable the use of preserve_most on arm64 Windows
4218354
* chore: review changes
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fix: session.getBlobData never resolves with blob sizes > 65536 (#34398)
* Add unit test case for session.getBlobData
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: bump chromium in DEPS to 104.0.5096.0
* 3651284: Use the entry settings object for window.open navigation
3651284
* 3644598: Make RenderFrameHost used for notification permission decision
3644598
* 3642842: Window Placement: Prototype Fullscreen Capability Delegation - Part 2
3642842
* 3652785: [sandbox] Enable sandboxed pointers on sanitizer builds
3652785
* 3611967: webhid: Migrate HidDelegate to use BrowserContext and Origin
3611967
* 3665762: Remove RenderFrameHost::IsRenderFrameCreated from //content/.
3665762
* 3659375: Fold x509_util_ios and most of x509_util_mac into x509_util_apple
3659375
* 3656234: [CodeHealth] Remove uses of base::ListValue::Append() (Final, take 2)
3656234
* chore: update patch indices
* chore: fix lint
* 3644598: Make RenderFrameHost used for notification permission decision
3644598
* webhid: Migrate HidDelegate to use BrowserContext and Origin
This is a temporary fix for 3611967 to get the build compiling, but we need to either patch around 3611967 or move our device permissioning to BrowserContext
* chore: fix lint
* build: run electron/script/gen-libc++-filenames.js
fixes gn check
* chore: bump chromium in DEPS to 104.0.5098.0
* chore: disable flaking tests
* 3682394: Change pipes surrounding code references in comments to backticks
3682394
* 3652749: Delete GLRenderer and related classes
3652749
* chore: fixup patch indices
* 3671199: Remove ContentMainDelegate::PostFieldTrialInitialization
3671199
* 3607963: hid: Do not exclude HID device with no collections
3607963
* refactor: use ElectronBrowserContext instead of WebContents to persist devices
due to changes like 3611967,
we can no longer use WebContents to store device permissions so this commit
moves device permission storage to live in memory in ElectronBrowserContext
instead.
* 3557253: Deprecate some signature checks
3557253
* chore: bump chromium in DEPS to 104.0.5100.0
* 3680781: Add policy for Renderer App Container.
3680781
* chore: update patch indices
* 3675465: Update NetLog network service API to use mojom::DictionaryValue.
3675465
* chore: bump chromium in DEPS to 104.0.5102.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5103.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5104.0
* chore: update patches
* fix: add patch for DCHECK in fullscreen test
* build: fix nan build
* build: make the nan spec runner work on macOS
* chore: bump chromium in DEPS to 104.0.5106.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5108.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5110.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5112.0
* chore: bump chromium in DEPS to 105.0.5113.0
* chore: bump chromium in DEPS to 105.0.5115.0
* chore: bump chromium in DEPS to 105.0.5117.0
* chore: update patches
* chore: update libcpp patch
* 3693745: Delete base::LowerCaseEqualsASCII()
Ref: 3693745
* 3669226: Remove printing PostTask usage of IO thread
Ref: 3669226
* 3687395: Remove DictionaryValue::HasKey().
Ref: 3687395
* 3691014: Prevent unsafe narrowing: ui/accessibility, part 2
Ref: 3691014
* 3560567: [MSC] Porting GenerateStreams clients to handle stream vectors.
Ref: 3560567
* 3684873: [Bluetooth][Win/Linux] Add bluetooth pair confirmation prompt
3684873
* chore: bump chromium in DEPS to 105.0.5119.0
* chore: missing includes in desktop_notification_controller
* chore: update patches
* 3685951: Reland "Make sure screen object is created once in tests."
3685951
* fixup: Reland "Make sure screen object is created once in tests."
* 3646014: [API] Deprecate LegacyOOMErrorCallback
Ref: 3646014
* chore: bump chromium in DEPS to 105.0.5121.0
* chore: update patches
* 3699085: [cleanup] update PrintBackend::EnumeratePrinters to use reference
Ref: 3699085
* chore: bump chromium in DEPS to 105.0.5123.0
* chore: update patches
* chore: bump chromium in DEPS to 105.0.5125.0
* chore: update patches
* 3630082: [sandbox] Also enable the sandbox outside of Chromium builds
Ref: 3630082
* chore: bump chromium in DEPS to 105.0.5127.0
* chore: update patches
* chore: bump chromium in DEPS to 105.0.5129.0
* chore: update patches
* 3703741: Remove WebContents::GetMainFrame.
3703741
* chore: update patches
* fixup! 3703741: Remove WebContents::GetMainFrame.
* fix lint
* more lint
* chore: document breaking change
* 3687671: [v8] Freeze flags after initialization
3687671
* fixup! 3560567: [MSC] Porting GenerateStreams clients to handle stream vectors.
* use the v8 allocator for node serdes
* chore: update patches
* remove faulty non-v8-sandbox-compatible code
* make NodeArrayBufferAllocator use the v8 allocator under the hood
* fixup! 3560567: [MSC] Porting GenerateStreams clients to handle stream vectors.
* fix build on windows
* 3691954: [Reland][Extensions Bindings] Validate arguments sent to API events
3691954
* chore: remove deprecated AccessorSignatures
https://github.com/nodejs/nan/pull/941
* Update patches/chromium/notification_provenance.patch
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* remove chore_expose_v8_initialization_isolate_callbacks.patch
* add link to nodejs/nan#941
* 52026: Do not allow md4 or md5 based signatures in X.509 certificates.
https://boringssl-review.googlesource.com/c/boringssl/+/52026
* chore: update patches
* disable nan buffer-test
* disable sandboxed pointers for now
* force sandboxed pointers off
* improve node allocation patch
* restore accidentally dropped node crypto test patch
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <sattard@salesforce.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: VerteDinde <keeleymhammond@gmail.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Jeremy Rose <japthorp@slack-corp.com>