New issue
Advanced search Search tips

Issue 708303 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug


Sign in to add a comment

Make lack of COM initialization hit a hard Chromium DCHECK

Project Member Reported by gab@chromium.org, Apr 4 2017

Issue description

As we saw in https://codereview.chromium.org/2779403002/ today failing to initialize COM (e.g. using CreateSingleThreadTaskRunnerWithTraits() instead of CreateCOMSTATaskRunnerWithTraits()) and running COM code results in obscure failures in random places.

Let's find a way to make it hit an obvious assertion so that (1) we don't have to once again blindly initialize COM everywhere in scare of those aforementioned issues and (2) can properly take the task_scheduler migration as an opportunity to highlight COM calls in code with traits where they occur.
 
Components: Internals>PlatformIntegration
Labels: OS-Windows
Cc: robliao@chromium.org thestig@chromium.org
 Issue 724641  has been merged into this issue.
Labels: Postmortem-Followup
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19d7d854deaeb76f9855ae10a0a8a4718c645755

commit 19d7d854deaeb76f9855ae10a0a8a4718c645755
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 06 04:02:34 2017

Introduce AssertComInitialized

This change adds AssertComInitialized, which DCHECKs when COM is not
initialized.

BUG= 708303 

Change-Id: I8e857fd8ebd4537340f4b37ed98f02457374e671
Reviewed-on: https://chromium-review.googlesource.com/522855
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477190}
[modify] https://crrev.com/19d7d854deaeb76f9855ae10a0a8a4718c645755/base/BUILD.gn
[add] https://crrev.com/19d7d854deaeb76f9855ae10a0a8a4718c645755/base/win/com_init_util.cc
[add] https://crrev.com/19d7d854deaeb76f9855ae10a0a8a4718c645755/base/win/com_init_util.h
[add] https://crrev.com/19d7d854deaeb76f9855ae10a0a8a4718c645755/base/win/com_init_util_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8af838d6c1743f6498cbcd7bc5c2ffb118ae8533

commit 8af838d6c1743f6498cbcd7bc5c2ffb118ae8533
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 06 19:22:45 2017

Revert "Introduce AssertComInitialized"

This reverts commit 19d7d854deaeb76f9855ae10a0a8a4718c645755.

Reason for revert: Breaks the CrWinClang builder
https://build.chromium.org/p/chromium.fyi/builders/CrWinClang64/builds/7870
FAILED: obj/base/base/com_init_util.obj 
E:\b\c\goma_client/gomacc.exe ../../third_party/llvm-build/Release+Asserts/bin/clang-cl.exe /nologo /showIncludes /FC @obj/base/base/com_init_util.obj.rsp /c ../../base/win/com_init_util.cc /Foobj/base/base/com_init_util.obj /Fd"obj/base/base_cc.pdb"
E:\b\c\builder\win_clang\src\base\win\com_init_util.cc(37,15):  error: unused function 'GetComInitStatusForThread' [-Werror,-Wunused-function]
ComInitStatus GetComInitStatusForThread() {
              ^
1 error generated.

Original change's description:
> Introduce AssertComInitialized
> 
> This change adds AssertComInitialized, which DCHECKs when COM is not
> initialized.
> 
> BUG= 708303 
> 
> Change-Id: I8e857fd8ebd4537340f4b37ed98f02457374e671
> Reviewed-on: https://chromium-review.googlesource.com/522855
> Commit-Queue: Robert Liao <robliao@chromium.org>
> Reviewed-by: Gabriel Charette <gab@chromium.org>
> Reviewed-by: Scott Graham <scottmg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#477190}

TBR=gab@chromium.org,robliao@chromium.org,scottmg@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
BUG= 708303 , 730100  

Change-Id: I9309067ad277e5f39de4dd138049b428af374a0f
Reviewed-on: https://chromium-review.googlesource.com/526432
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477368}
[modify] https://crrev.com/8af838d6c1743f6498cbcd7bc5c2ffb118ae8533/base/BUILD.gn
[delete] https://crrev.com/8aa0f3df4a5f4adad0bff5b47da58f14d1bb6e23/base/win/com_init_util.cc
[delete] https://crrev.com/8aa0f3df4a5f4adad0bff5b47da58f14d1bb6e23/base/win/com_init_util.h
[delete] https://crrev.com/8aa0f3df4a5f4adad0bff5b47da58f14d1bb6e23/base/win/com_init_util_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c1c84bb7b8e32e1f2524bf71be2d740d031e2346

commit c1c84bb7b8e32e1f2524bf71be2d740d031e2346
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 06 21:22:56 2017

Introduce AssertComInitialized

This change adds AssertComInitialized, which DCHECKs when COM is not
initialized.

BUG= 708303 
TBR=gab@chromium.org,scottmg@chromium.org
Previously reviewed at https://chromium-review.googlesource.com/c/522855/

Change-Id: I0bdfbc42efd0eb7a400a229e8f2feab7966df53b
Reviewed-on: https://chromium-review.googlesource.com/526277
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477406}
[modify] https://crrev.com/c1c84bb7b8e32e1f2524bf71be2d740d031e2346/base/BUILD.gn
[add] https://crrev.com/c1c84bb7b8e32e1f2524bf71be2d740d031e2346/base/win/com_init_util.cc
[add] https://crrev.com/c1c84bb7b8e32e1f2524bf71be2d740d031e2346/base/win/com_init_util.h
[add] https://crrev.com/c1c84bb7b8e32e1f2524bf71be2d740d031e2346/base/win/com_init_util_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d5012a5598eb1c122793653fad6a005491fea14

commit 8d5012a5598eb1c122793653fad6a005491fea14
Author: Robert Liao <robliao@chromium.org>
Date: Thu Jun 08 19:58:39 2017

Introduce AssertComApartmentType

This allows callers to assert that the current thread is of a specific
COM Apartment type.

BUG= 708303 

Change-Id: Ia1258c0b00a5249e41834300153c4392a9e2c5ea
Reviewed-on: https://chromium-review.googlesource.com/528333
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478063}
[modify] https://crrev.com/8d5012a5598eb1c122793653fad6a005491fea14/base/win/com_init_util.cc
[modify] https://crrev.com/8d5012a5598eb1c122793653fad6a005491fea14/base/win/com_init_util.h
[modify] https://crrev.com/8d5012a5598eb1c122793653fad6a005491fea14/base/win/com_init_util_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d5721c7e4a34a0ea63b6b9f78fcc9fdd0d2c967e

commit d5721c7e4a34a0ea63b6b9f78fcc9fdd0d2c967e
Author: Robert Liao <robliao@chromium.org>
Date: Mon Jun 12 21:38:05 2017

Add inline directives to com_init_util.h

This is required otherwise the second include in any component will
trigger multiply defined symbol errors.

BUG= 708303 

Change-Id: I857cb001f3310a4c35e24768e0fbbd25d6ec22a3
Reviewed-on: https://chromium-review.googlesource.com/531802
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478773}
[modify] https://crrev.com/d5721c7e4a34a0ea63b6b9f78fcc9fdd0d2c967e/base/win/com_init_util.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d50b3d731733e58bad9ecc7569c2f9bfccd540f

commit 2d50b3d731733e58bad9ecc7569c2f9bfccd540f
Author: Robert Liao <robliao@chromium.org>
Date: Mon Jun 12 22:17:54 2017

Refactor ModifyCode out of iat_patch_function

This allows other callers to use it without including iat_patch_function.h.
Principally, this will be used for the upcoming CoCreateInstance DCHECK.

BUG= 708303 
TBR=gab@chromium.org
Refactor. No impact to running code.

Change-Id: Ibd25de76a2e9bf858619c6fccc18a46704237067
Reviewed-on: https://chromium-review.googlesource.com/531668
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478789}
[modify] https://crrev.com/2d50b3d731733e58bad9ecc7569c2f9bfccd540f/base/BUILD.gn
[modify] https://crrev.com/2d50b3d731733e58bad9ecc7569c2f9bfccd540f/base/win/iat_patch_function.cc
[modify] https://crrev.com/2d50b3d731733e58bad9ecc7569c2f9bfccd540f/base/win/iat_patch_function.h
[add] https://crrev.com/2d50b3d731733e58bad9ecc7569c2f9bfccd540f/base/win/patch_util.cc
[add] https://crrev.com/2d50b3d731733e58bad9ecc7569c2f9bfccd540f/base/win/patch_util.h

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/95e914bb2a8bbaa376ef76f5de89f0221b748e1d

commit 95e914bb2a8bbaa376ef76f5de89f0221b748e1d
Author: Robert Liao <robliao@chromium.org>
Date: Wed Jun 14 05:38:34 2017

Introduce ComInitCheckHook

ComInitCheckHook hooks CoCreateInstance and DCHECKs if COM is not
initialized on the calling thread. This only supports 32-bit x86
targets since those functions contain a convenient hotpatching
affordance not available on other platforms.

The hook is only active for DCHECK_IS_ON() and non-official builds.

BUG= 708303 

Change-Id: I109c11b0bf4d9f8ac0571f1ad21de91d6963ab6d
Reviewed-on: https://chromium-review.googlesource.com/532334
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479297}
[modify] https://crrev.com/95e914bb2a8bbaa376ef76f5de89f0221b748e1d/base/BUILD.gn
[add] https://crrev.com/95e914bb2a8bbaa376ef76f5de89f0221b748e1d/base/win/com_init_check_hook.cc
[add] https://crrev.com/95e914bb2a8bbaa376ef76f5de89f0221b748e1d/base/win/com_init_check_hook.h
[add] https://crrev.com/95e914bb2a8bbaa376ef76f5de89f0221b748e1d/base/win/com_init_check_hook_unittest.cc

Blockedon: 733463
Blockedon: 733465
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/13dbf72dd20997a3c24229df71a50578e4a572f9

commit 13dbf72dd20997a3c24229df71a50578e4a572f9
Author: Robert Liao <robliao@chromium.org>
Date: Thu Jun 15 19:31:09 2017

Add an Explanation Comment to DCheckedCoCreateInstance

This change adds a hopefully helpful comment for anyone who hits the
DCheckedCoCreateInstance assert.

BUG= 708303 
TBR=scottmg@chromium.org
Comment-only change.

Change-Id: I20ad58053a7d5c50609a6d79e26ea054624f0b74
Reviewed-on: https://chromium-review.googlesource.com/537177
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Robert Liao <robliao@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479783}
[modify] https://crrev.com/13dbf72dd20997a3c24229df71a50578e4a572f9/base/win/com_init_check_hook.cc

Blockedon: 734135
Blockedon: 734140
Blockedon: 734706
Blockedon: 735725
Project Member

Comment 18 by bugdroid1@chromium.org, Jun 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f154f2de5f66f42aa18ded96b3e32717b5ac97c

commit 6f154f2de5f66f42aa18ded96b3e32717b5ac97c
Author: Robert Liao <robliao@chromium.org>
Date: Fri Jun 23 23:25:40 2017

Add Support for COM Worker Threads to AssertComInitialized

COM Worker Threads do not always call CoInitialize, but they do set
some threading metadata.

BUG= 708303 

Change-Id: Ie15ccd1508abc16ca63593585c02b35929581d68
Reviewed-on: https://chromium-review.googlesource.com/546999
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482067}
[modify] https://crrev.com/6f154f2de5f66f42aa18ded96b3e32717b5ac97c/base/win/com_init_util.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jun 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57ad0495c848ac8a35efd6f1e011e9a204dadbc2

commit 57ad0495c848ac8a35efd6f1e011e9a204dadbc2
Author: Robert Liao <robliao@chromium.org>
Date: Mon Jun 26 20:43:44 2017

Add ComInitCheckHook for Eligible Builds to the Task Scheduler

This will allow for COM initialization checking as code is refactored
to use the task scheduler.

As a side effect, this will also validate other COM call sites too.

BUG= 708303 

Change-Id: I0b38ea7d3e9a543c023aaada46a238f2421e97fd
Reviewed-on: https://chromium-review.googlesource.com/546157
Reviewed-by: Francois Doray <fdoray@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482385}
[modify] https://crrev.com/57ad0495c848ac8a35efd6f1e011e9a204dadbc2/base/task_scheduler/task_scheduler_impl.h

Project Member

Comment 20 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/70805e7feb3f9dee9637d0cdd28dd56fce15307b

commit 70805e7feb3f9dee9637d0cdd28dd56fce15307b
Author: Guido Urdaneta <guidou@chromium.org>
Date: Tue Jun 27 12:27:43 2017

Revert "Add ComInitCheckHook for Eligible Builds to the Task Scheduler"

This reverts commit 57ad0495c848ac8a35efd6f1e011e9a204dadbc2.

Reason for revert:
This change breaks all WebRTC Chrome Windows bots.

See
https://build.chromium.org/p/chromium.webrtc/builders/Win7%20Tester
https://build.chromium.org/p/chromium.webrtc/builders/Win10%20Tester
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester

We have to revert in order to stabilize the Chromium WebRTC bots.
Filed  http://crbug.com/737090  to track and coordinate.

Lots of tests fail with errors like this:
AudioInputDeviceManagerTest.OpenDeviceTwice (run #1):
[ RUN      ] AudioInputDeviceManagerTest.OpenDeviceTwice
[4692:4248:0626/145510.364:1882620:FATAL:com_init_check_hook.cc(144)] Check failed: false. Unrecognized hotpatch function format.
Backtrace:
	base::debug::StackTrace::StackTrace [0x02F73B87+55]
	base::debug::StackTrace::StackTrace [0x02F8894A+10]
	base::win::ComInitCheckHook::~ComInitCheckHook [0x02FA9249+777]
	base::win::ComInitCheckHook::ComInitCheckHook [0x02FA8F1A+42]
	base::TaskScheduler::Create [0x02F2E813+67]
	base::test::ScopedAsyncTaskScheduler::ScopedAsyncTaskScheduler [0x028FA9E4+145]
	??$MakeUnique@VScopedAsyncTaskScheduler@test@base@@$$V@base@@YA?AV?$unique_ptr@VScopedAsyncTaskScheduler@test@base@@U?$default_delete@VScopedAsyncTaskScheduler@test@base@@@std@@@std@@XZ [0x028BF435+22]
	content::TestBrowserThreadBundle::CreateThreads [0x028BF8D7+144]
	content::TestBrowserThreadBundle::Init [0x028BFCF2+455]
	content::TestBrowserThreadBundle::TestBrowserThreadBundle [0x028BF4F6+53]
	content::TestBrowserThreadBundle::TestBrowserThreadBundle [0x028BF507+10]
	testing::TestInfo::Run [0x028BDC78+101]
	testing::TestCase::Run [0x028BDBBC+133]
	testing::internal::UnitTestImpl::RunAllTests [0x028BDF41+433]
	testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool> [0x028B64B1+32]
	testing::UnitTest::Run [0x028BDD65+133]
	base::TestSuite::Run [0x028FB3C6+95]
	base::LaunchUnitTests [0x028F9655+784]
	base::LaunchUnitTests [0x028F939A+85]
	main [0x01AF6368+103]
	__scrt_common_main_seh [0x03FAB7EB+249] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
	BaseThreadInitThunk [0x76C4338A+18]
	RtlInitializeExceptionChain [0x77C49902+99]
	RtlInitializeExceptionChain [0x77C498D5+54]



Original change's description:
> Add ComInitCheckHook for Eligible Builds to the Task Scheduler
> 
> This will allow for COM initialization checking as code is refactored
> to use the task scheduler.
> 
> As a side effect, this will also validate other COM call sites too.
> 
> BUG= 708303 
> 
> Change-Id: I0b38ea7d3e9a543c023aaada46a238f2421e97fd
> Reviewed-on: https://chromium-review.googlesource.com/546157
> Reviewed-by: Francois Doray <fdoray@chromium.org>
> Commit-Queue: Robert Liao <robliao@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482385}

TBR=gab@chromium.org,fdoray@chromium.org,robliao@chromium.org

Change-Id: I5d5942f3c72e3ffd34b17d14ceecb9d861fea8e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  708303 
Reviewed-on: https://chromium-review.googlesource.com/549304
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482601}
[modify] https://crrev.com/70805e7feb3f9dee9637d0cdd28dd56fce15307b/base/task_scheduler/task_scheduler_impl.h

Project Member

Comment 21 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dac9edb98e194ac5e5e285cd33c8c15516838972

commit dac9edb98e194ac5e5e285cd33c8c15516838972
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 27 20:05:03 2017

Switch from COM_INIT_CHECK_HOOK_ENABLED() to defined(COM_INIT_CHECK_HOOK_ENABLED)

Because of the platform specific nature of this #define, it's easier
for multiplatform code to use defined(COM_INIT_CHECK_HOOK_ENABLED)
instead of conditionally using COM_INIT_CHECK_HOOK_ENABLED() if
defined(OS_WIN).

BUG= 708303 

Change-Id: Ie346671456a307ff5e3c4a358363ec7031bbb806
Reviewed-on: https://chromium-review.googlesource.com/550595
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482720}
[modify] https://crrev.com/dac9edb98e194ac5e5e285cd33c8c15516838972/base/win/com_init_check_hook.cc
[modify] https://crrev.com/dac9edb98e194ac5e5e285cd33c8c15516838972/base/win/com_init_check_hook.h
[modify] https://crrev.com/dac9edb98e194ac5e5e285cd33c8c15516838972/base/win/com_init_check_hook_unittest.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1ecd398a13103cb20f29dbb37af7f93e626da96e

commit 1ecd398a13103cb20f29dbb37af7f93e626da96e
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 27 20:05:40 2017

Add Diagnostic Information For Unexpected Hotpatch Formats

Some bots have unexpected formats. Listing out those bytes will aid
diagnosing the issue.

BUG= 708303 , 737090 

Change-Id: Ie5f7bd20dc16329c44fbbc5e22b6a266111cb9cc
Reviewed-on: https://chromium-review.googlesource.com/550259
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482721}
[modify] https://crrev.com/1ecd398a13103cb20f29dbb37af7f93e626da96e/base/win/com_init_check_hook.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e69730658af60546fa758dbeabc44b9893f1b6e6

commit e69730658af60546fa758dbeabc44b9893f1b6e6
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 27 21:38:42 2017

Reland "Add ComInitCheckHook for Eligible Builds to the Task Scheduler"

This is a reland of 57ad0495c848ac8a35efd6f1e011e9a204dadbc2
Original change's description:
> Add ComInitCheckHook for Eligible Builds to the Task Scheduler
> 
> This will allow for COM initialization checking as code is refactored
> to use the task scheduler.
> 
> As a side effect, this will also validate other COM call sites too.
> 
> BUG= 708303 
> 
> Change-Id: I0b38ea7d3e9a543c023aaada46a238f2421e97fd
> Reviewed-on: https://chromium-review.googlesource.com/546157
> Reviewed-by: Francois Doray <fdoray@chromium.org>
> Commit-Queue: Robert Liao <robliao@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482385}

Bug:  708303 
TBR: gab@chromium.org, fdoray@chromium.org
Change-Id: I900fb71ca7fdbf719336efb8de42d1065af823d9
Reviewed-on: https://chromium-review.googlesource.com/550586
Reviewed-by: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482752}
[modify] https://crrev.com/e69730658af60546fa758dbeabc44b9893f1b6e6/base/task_scheduler/task_scheduler_impl.h

Project Member

Comment 24 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b962595bafd843504c3489fe8dbbf5e4c518528b

commit b962595bafd843504c3489fe8dbbf5e4c518528b
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 27 21:57:57 2017

Revert "Reland "Add ComInitCheckHook for Eligible Builds to the Task Scheduler""

This reverts commit e69730658af60546fa758dbeabc44b9893f1b6e6.

Reason for revert: The relanded needed one change.

Original change's description:
> Reland "Add ComInitCheckHook for Eligible Builds to the Task Scheduler"
> 
> This is a reland of 57ad0495c848ac8a35efd6f1e011e9a204dadbc2
> Original change's description:
> > Add ComInitCheckHook for Eligible Builds to the Task Scheduler
> > 
> > This will allow for COM initialization checking as code is refactored
> > to use the task scheduler.
> > 
> > As a side effect, this will also validate other COM call sites too.
> > 
> > BUG= 708303 
> > 
> > Change-Id: I0b38ea7d3e9a543c023aaada46a238f2421e97fd
> > Reviewed-on: https://chromium-review.googlesource.com/546157
> > Reviewed-by: Francois Doray <fdoray@chromium.org>
> > Commit-Queue: Robert Liao <robliao@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#482385}
> 
> Bug:  708303 
> TBR: gab@chromium.org, fdoray@chromium.org
> Change-Id: I900fb71ca7fdbf719336efb8de42d1065af823d9
> Reviewed-on: https://chromium-review.googlesource.com/550586
> Reviewed-by: Robert Liao <robliao@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482752}

TBR=gab@chromium.org,fdoray@chromium.org,robliao@chromium.org

Change-Id: I2abe2526c9a32a26de18566425fb2a509b30f10e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  708303 
Reviewed-on: https://chromium-review.googlesource.com/550857
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482762}
[modify] https://crrev.com/b962595bafd843504c3489fe8dbbf5e4c518528b/base/task_scheduler/task_scheduler_impl.h

Project Member

Comment 25 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df11c070beef44a89a1baaa6044070be41cc33f7

commit df11c070beef44a89a1baaa6044070be41cc33f7
Author: Robert Liao <robliao@chromium.org>
Date: Tue Jun 27 23:32:04 2017

Reland "Add ComInitCheckHook for Eligible Builds to the Task Scheduler"

This is a reland of 57ad0495c848ac8a35efd6f1e011e9a204dadbc2

We fully expect this to break webrtc's bots to gather more data via
https://chromium-review.googlesource.com/c/550259/.

This will be reverted when that happens.

Original change's description:
> Add ComInitCheckHook for Eligible Builds to the Task Scheduler
> 
> This will allow for COM initialization checking as code is refactored
> to use the task scheduler.
> 
> As a side effect, this will also validate other COM call sites too.
> 
> BUG= 708303 
> 
> Change-Id: I0b38ea7d3e9a543c023aaada46a238f2421e97fd
> Reviewed-on: https://chromium-review.googlesource.com/546157
> Reviewed-by: Francois Doray <fdoray@chromium.org>
> Commit-Queue: Robert Liao <robliao@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482385}

Previously reviewed.

Bug:  708303 
TBR: gab@chromium.org, fdoray@chromium.org
Change-Id: I0026fb77b3a50511ab8678b5dffea8ae779b796b
Reviewed-on: https://chromium-review.googlesource.com/550859
Reviewed-by: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482791}
[modify] https://crrev.com/df11c070beef44a89a1baaa6044070be41cc33f7/base/task_scheduler/task_scheduler_impl.h

Project Member

Comment 26 by bugdroid1@chromium.org, Jun 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/272945dc74a12d429ae5940e594bd94093d625d5

commit 272945dc74a12d429ae5940e594bd94093d625d5
Author: Robert Liao <robliao@chromium.org>
Date: Wed Jun 28 01:11:04 2017

Revert "Reland "Add ComInitCheckHook for Eligible Builds to the Task Scheduler""

This reverts commit df11c070beef44a89a1baaa6044070be41cc33f7.

Reason for revert: The webrtc test failed as expected and generated useful data.

Original change's description:
> Reland "Add ComInitCheckHook for Eligible Builds to the Task Scheduler"
> 
> This is a reland of 57ad0495c848ac8a35efd6f1e011e9a204dadbc2
> 
> We fully expect this to break webrtc's bots to gather more data via
> https://chromium-review.googlesource.com/c/550259/.
> 
> This will be reverted when that happens.
> 
> Original change's description:
> > Add ComInitCheckHook for Eligible Builds to the Task Scheduler
> > 
> > This will allow for COM initialization checking as code is refactored
> > to use the task scheduler.
> > 
> > As a side effect, this will also validate other COM call sites too.
> > 
> > BUG= 708303 
> > 
> > Change-Id: I0b38ea7d3e9a543c023aaada46a238f2421e97fd
> > Reviewed-on: https://chromium-review.googlesource.com/546157
> > Reviewed-by: Francois Doray <fdoray@chromium.org>
> > Commit-Queue: Robert Liao <robliao@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#482385}
> 
> Previously reviewed.
> 
> Bug:  708303 
> TBR: gab@chromium.org, fdoray@chromium.org
> Change-Id: I0026fb77b3a50511ab8678b5dffea8ae779b796b
> Reviewed-on: https://chromium-review.googlesource.com/550859
> Reviewed-by: Robert Liao <robliao@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482791}

TBR=gab@chromium.org,fdoray@chromium.org,robliao@chromium.org

Change-Id: Idba0213f862f0abddd90bfac4f257341f0dd7a38
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  708303 
Reviewed-on: https://chromium-review.googlesource.com/551185
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482835}
[modify] https://crrev.com/272945dc74a12d429ae5940e594bd94093d625d5/base/task_scheduler/task_scheduler_impl.h

Project Member

Comment 27 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dd04109f8003d8892fc7d72b2acd7d238132f45e

commit dd04109f8003d8892fc7d72b2acd7d238132f45e
Author: Robert Liao <robliao@chromium.org>
Date: Thu Jun 29 00:15:38 2017

Add ComInitCheckHook for Eligible Builds to the Task Scheduler

Previously reviewed at 
https://chromium-review.googlesource.com/c/546157/

Previously reviewed.

Bug:  708303 
TBR: gab@chromium.org, fdoray@chromium.org
Change-Id: I71a52a33c12c9e008c69712198215e87fc909f34
Reviewed-on: https://chromium-review.googlesource.com/553423
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483212}
[modify] https://crrev.com/dd04109f8003d8892fc7d72b2acd7d238132f45e/base/task_scheduler/task_scheduler_impl.h

Comment 28 Deleted

This still fails if we attach content_shell on VisualStudio with --single-process flag
yoichio: Please create a new bug with the stack. Generally this means content_shell is creating a COM object and failing to initialize COM.
Project Member

Comment 31 by bugdroid1@chromium.org, Jul 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fde8c7a6a38555dd2c9b2f21dcee04d7097e66e4

commit fde8c7a6a38555dd2c9b2f21dcee04d7097e66e4
Author: Robert Liao <robliao@chromium.org>
Date: Thu Jul 06 18:21:52 2017

Add an Assert Message to DCheckedCoCreateInstance

This provides a bit more explicit guidance in the DCHECK message to
look at the comment in DCheckedCoCreateInstance.

BUG= 708303 
TBR=gab@chromium.org
Provides a more helpful DCHECK now.

Change-Id: Idf5359977b395a897e4dc3646fd5ed05c4710f66
Reviewed-on: https://chromium-review.googlesource.com/560779
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484676}
[modify] https://crrev.com/fde8c7a6a38555dd2c9b2f21dcee04d7097e66e4/base/win/com_init_check_hook.cc
[modify] https://crrev.com/fde8c7a6a38555dd2c9b2f21dcee04d7097e66e4/base/win/com_init_util.cc
[modify] https://crrev.com/fde8c7a6a38555dd2c9b2f21dcee04d7097e66e4/base/win/com_init_util.h

Status: Fixed (was: Assigned)
We are now DCHECKing on folks that call CoCreateInstance. We can assess other COM APIs as necessary.

Sign in to add a comment