New issue
Advanced search Search tips

Issue 675631 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug


Sign in to add a comment

Make base/ and core APIs sequence-friendly

Project Member Reported by fdoray@chromium.org, Dec 19 2016

Issue description

Many base/ APIs require a ThreadTaskRunnerHandle and/or use ThreadChecker to verify that they are used from a single thread. That means that these APIs can't be used from tasks posted to a SequencedTaskRunner (a SequencedTaskRunner runs its tasks one at a time, in posting order, on any thread). This is sad because SequencedTaskRunner allows its tasks to be scheduled more freely than a SingleThreadTaskRunner.

We should:
- s/ThreadTaskRunnerHandle/SequencedTaskRunnerHandle/ in base/ code that merely needs to post a task that runs in the current sequence.
- s/ThreadChecker/SequenceChecker/ in base/ classes that merely need their methods to be called in sequence.
 

Comment 1 by gab@chromium.org, Dec 19 2016

Blockedon: 665062
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 21 2016

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

commit 6661c527f2cc07652b208e05afd07b79baf58301
Author: fdoray <fdoray@chromium.org>
Date: Wed Dec 21 13:02:08 2016

Make CancelableTaskTracker sequence-safe.

This CL allows CancelableTaskTracker to be used from sequenced
tasks. Previously, it had to be used from a single thread.

BUG= 675631 

Review-Url: https://codereview.chromium.org/2586273002
Cr-Commit-Position: refs/heads/master@{#440078}

[modify] https://crrev.com/6661c527f2cc07652b208e05afd07b79baf58301/base/task/cancelable_task_tracker.cc
[modify] https://crrev.com/6661c527f2cc07652b208e05afd07b79baf58301/base/task/cancelable_task_tracker.h

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 21 2016

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

commit 6fce596dd212d98fba4603f1806653809fb85c30
Author: fdoray <fdoray@chromium.org>
Date: Wed Dec 21 16:12:27 2016

Make TypedUrlSyncableService sequence-affine.

This class is thread-unsafe not thread-affine. It requires
external synchronization between tasks; which a sequence brings
implicitly. It does not need to be used from a single thread.

Note: Classes that do not depend on a constant thread id (implies that
they do not use thread-local storage) are usually not thread-affine.

BUG= 675800 ,  675631 

Review-Url: https://codereview.chromium.org/2591643004
Cr-Commit-Position: refs/heads/master@{#440115}

[modify] https://crrev.com/6fce596dd212d98fba4603f1806653809fb85c30/components/history/core/browser/typed_url_syncable_service.cc
[modify] https://crrev.com/6fce596dd212d98fba4603f1806653809fb85c30/components/history/core/browser/typed_url_syncable_service.h

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 21 2016

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

commit d862577f490a63c436e1c7ac702eb2dbc3e3b990
Author: fdoray <fdoray@chromium.org>
Date: Wed Dec 21 17:58:20 2016

Allow PowerMonitorDeviceSource to be used from sequenced tasks.

Currently, it can't be used from sequenced tasks because
ThreadTaskRunnerHandle::IsSet() returns false when called from
a sequenced task.

BUG= 675631 

Review-Url: https://codereview.chromium.org/2594833002
Cr-Commit-Position: refs/heads/master@{#440148}

[modify] https://crrev.com/d862577f490a63c436e1c7ac702eb2dbc3e3b990/base/power_monitor/power_monitor_device_source.cc
[modify] https://crrev.com/d862577f490a63c436e1c7ac702eb2dbc3e3b990/base/power_monitor/power_monitor_device_source.h

Comment 5 by gab@chromium.org, Dec 21 2016

Labels: -Pri-3 Pri-2

Comment 6 by gab@chromium.org, Dec 21 2016

Blockedon: 676387
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 21 2016

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

commit ab2ab7ec3a72fcb6c023f0ccbf7971af1031805a
Author: fdoray <fdoray@chromium.org>
Date: Wed Dec 21 20:10:49 2016

Make sync's change processors sequence-affine.

These classes are thread-unsafe not thread-affine. They require
external synchronization between tasks; which a sequence brings them
implicitly. They do not need to be used from a single thread.

Note: Classes that do not depend on a constant thread id (implies that
they do not use thread-local storage) are usually not thread-affine.

BUG= 675800 ,  675631 

Review-Url: https://codereview.chromium.org/2593803002
Cr-Commit-Position: refs/heads/master@{#440195}

[modify] https://crrev.com/ab2ab7ec3a72fcb6c023f0ccbf7971af1031805a/components/sync/driver/generic_change_processor.cc
[modify] https://crrev.com/ab2ab7ec3a72fcb6c023f0ccbf7971af1031805a/components/sync/driver/generic_change_processor.h
[modify] https://crrev.com/ab2ab7ec3a72fcb6c023f0ccbf7971af1031805a/components/sync/driver/shared_change_processor.cc
[modify] https://crrev.com/ab2ab7ec3a72fcb6c023f0ccbf7971af1031805a/components/sync/driver/shared_change_processor.h

Project Member

Comment 9 by bugdroid1@chromium.org, Dec 22 2016

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

commit 0b0b5aab6e2474e0e758ca3777b07321e59a7463
Author: fdoray <fdoray@chromium.org>
Date: Thu Dec 22 14:09:12 2016

Document that HistoryBackend is sequence-affine, not thread-affine.

HistoryBackend methods must not be called concurrently and external
synchronization is required between calls on different thread.
However, the methods do not have to be called from a single thread.
This CL documents this and adds DCHECKs to verify that
HistoryBackend methods are called in sequence.

BUG= 675800 ,  675631 

Review-Url: https://codereview.chromium.org/2591123004
Cr-Commit-Position: refs/heads/master@{#440408}

[modify] https://crrev.com/0b0b5aab6e2474e0e758ca3777b07321e59a7463/components/browser_sync/profile_sync_service_typed_url_unittest.cc
[modify] https://crrev.com/0b0b5aab6e2474e0e758ca3777b07321e59a7463/components/history/core/browser/history_backend.cc
[modify] https://crrev.com/0b0b5aab6e2474e0e758ca3777b07321e59a7463/components/history/core/browser/history_backend.h

Project Member

Comment 10 by bugdroid1@chromium.org, Dec 22 2016

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

commit cc870ed0d9a16f478dd5e2f584ed19b749f2729f
Author: penghuang <penghuang@chromium.org>
Date: Thu Dec 22 16:55:05 2016

Revert of Document that HistoryBackend is sequence-affine, not thread-affine. (patchset #2 id:20001 of https://codereview.chromium.org/2591123004/ )

Reason for revert:
https://uberchromegw.corp.google.com/i/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/20846/steps/browser_tests/logs/ProfileBrowserTest.OffTheRecordURLRequestContextIsolation

The CL causes the browser_tests failure on Linux ChromiumOS Tests(dbg)

Original issue's description:
> Document that HistoryBackend is sequence-affine, not thread-affine.
>
> HistoryBackend methods must not be called concurrently and external
> synchronization is required between calls on different thread.
> However, the methods do not have to be called from a single thread.
> This CL documents this and adds DCHECKs to verify that
> HistoryBackend methods are called in sequence.
>
> BUG= 675800 ,  675631 
>
> Committed: https://crrev.com/0b0b5aab6e2474e0e758ca3777b07321e59a7463
> Cr-Commit-Position: refs/heads/master@{#440408}

TBR=sdefresne@chromium.org,fdoray@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 675800 ,  675631 

Review-Url: https://codereview.chromium.org/2599803002
Cr-Commit-Position: refs/heads/master@{#440441}

[modify] https://crrev.com/cc870ed0d9a16f478dd5e2f584ed19b749f2729f/components/browser_sync/profile_sync_service_typed_url_unittest.cc
[modify] https://crrev.com/cc870ed0d9a16f478dd5e2f584ed19b749f2729f/components/history/core/browser/history_backend.cc
[modify] https://crrev.com/cc870ed0d9a16f478dd5e2f584ed19b749f2729f/components/history/core/browser/history_backend.h

Project Member

Comment 11 by bugdroid1@chromium.org, Dec 22 2016

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

commit 0838b883b2a89bbfa6b1f845e0dfd5765781bc07
Author: fdoray <fdoray@chromium.org>
Date: Thu Dec 22 22:14:20 2016

Allow ObjectWatcher to be used from sequenced tasks.

Previously, ObjectWatcher could only be used from single-threaded
tasks. Watchers were notified on the thread from which they were
registered.

With this CL, ObjectWatcher can also be used from sequenced tasks.
Watchers will be notified on the sequence from which they were
registered.

Note that since SequencedTaskRunnerHandle behaves the same way
as ThreadTaskRunnerHandle when used from a single-threaded task
or outside of any task, this CL does not change the behavior of
existing ObjectWatcher::StartWatching*() call sites (those are
necessarily in single-threaded tasks or outside of any task;
otherwise the DCHECK(ThreadTaskRunnerHandle::IsSet()) in
ObjectWatcher::StartWatchingInternal would fail).

BUG= 675631 

Review-Url: https://codereview.chromium.org/2598753002
Cr-Commit-Position: refs/heads/master@{#440519}

[modify] https://crrev.com/0838b883b2a89bbfa6b1f845e0dfd5765781bc07/base/win/object_watcher.cc
[modify] https://crrev.com/0838b883b2a89bbfa6b1f845e0dfd5765781bc07/base/win/object_watcher.h

Project Member

Comment 12 by bugdroid1@chromium.org, Dec 23 2016

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

commit 33d98b6545da7591c58a9f95c401c9bedf826c43
Author: fdoray <fdoray@chromium.org>
Date: Fri Dec 23 14:02:52 2016

Transform RefCountedDeleteOnMessageLoop to RefCountedDeleteOnSequence.

RefCountedDeleteOnSequence behaves the same way as
RefCountedDeleteOnMessageLoop when used with a SingleThreadTaskRunner.
However, it also supports SequencedTaskRunner.

TBR=boliu@chromium.org,mathp@chromium.org,rogerta@chromium.org,pkasting@chromium.org,clamy@chromium.org,rockot@chromium.org
BUG= 675631 

Review-Url: https://codereview.chromium.org/2591963004
Cr-Commit-Position: refs/heads/master@{#440627}

[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/android_webview/browser/net/aw_cookie_store_wrapper.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/base/BUILD.gn
[delete] https://crrev.com/f795e34e13cb68e6665f9a8ab14260c4118fc246/base/memory/ref_counted_delete_on_message_loop.h
[add] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/base/memory/ref_counted_delete_on_sequence.h
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/autofill/core/browser/webdata/autofill_webdata_backend_impl.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/autofill/core/browser/webdata/autofill_webdata_backend_impl.h
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/signin/core/browser/webdata/token_web_data.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/webdata/common/web_data_service_base.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/webdata/common/web_data_service_base.h
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/webdata/common/web_database_backend.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/webdata/common/web_database_backend.h
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/webdata/common/web_database_service.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/components/webdata/common/web_database_service.h
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/content/browser/devtools/devtools_io_context.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/content/browser/devtools/devtools_io_context.h
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/content/browser/devtools/protocol/io_handler.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/extensions/browser/sandboxed_unpacker.cc
[modify] https://crrev.com/33d98b6545da7591c58a9f95c401c9bedf826c43/extensions/browser/sandboxed_unpacker.h

Project Member

Comment 13 by bugdroid1@chromium.org, Dec 23 2016

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

commit a19b77026d3ba89c5c400d1843e1a40718ff25a4
Author: fdoray <fdoray@chromium.org>
Date: Fri Dec 23 14:19:31 2016

Include-what-you-use for ThreadTaskRunnerHandle.

This CL adds #include "base/threading/thread_task_runner_handle.h" to
any .h/.cc/.cpp/.mm file that contains the string
"ThreadTaskRunnerHandle::" on a line that doesn't start with "//" and
whose corresponding .h file doesn't already contain the include.

.h files are processed first so that the #include is not added to a
.cc/.cpp/.mm file if it is also added to the corresponding .h file.

tools/sort-headers.py was applied to affected files.

TBR=brettw@chromium.org
BUG= 675631 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2596283002
Cr-Commit-Position: refs/heads/master@{#440628}

[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/ash/mus/window_manager_application.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/blimp/client/test/compositor/blimp_compositor_with_fake_host.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/blimp/engine/feature/engine_render_widget_feature.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/cc/test/fake_layer_tree_host.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/cc/test/test_layer_tree_host_base.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/cc/trees/tree_synchronizer_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/chromeos/arc/arc_session_manager.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/chromeos/resource_reporter/resource_reporter.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/extensions/api/gcd_private/gcd_private_apitest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/media/cast_remoting_sender.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/previews/previews_infobar_delegate_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/previews/previews_infobar_tab_helper_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/push_messaging/push_messaging_service_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/signin/mutable_profile_oauth2_token_service_delegate_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/ui/ash/launcher/arc_app_deferred_launcher_controller.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa.mm
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/ui/prefs/prefs_tab_helper.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/ui/test/test_browser_dialog.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/autofill/content/renderer/password_autofill_agent.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/autofill/content/renderer/password_generation_agent.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/autofill/core/browser/payments/full_card_request_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/browser_sync/abstract_profile_sync_service_test.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/browser_sync/profile_sync_service_bookmark_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/browser_sync/profile_sync_test_util.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/cronet/stale_host_resolver_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/invalidation/impl/ticl_profile_settings_provider_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/ntp_tiles/popular_sites_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/password_manager/core/browser/mock_password_store.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/password_manager/core/browser/password_store_default_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/components/ssl_errors/error_classification_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/background_sync/background_sync_browsertest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/cache_storage/cache_storage_manager.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/compositor/vulkan_browser_compositor_output_surface.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/indexed_db/cursor_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/indexed_db/database_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/loader/async_revalidation_driver_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/loader/resource_scheduler.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/plugin_service_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/renderer_host/media/audio_input_renderer_host_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/service_worker/service_worker_read_from_cache_job.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/browser/service_worker/service_worker_registration.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/child/indexed_db/indexed_db_callbacks_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/child/indexed_db/indexed_db_database_callbacks_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/child/web_url_loader_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/media/android/webmediaplayer_android.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/media/midi_message_filter.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/media/rtc_certificate_generator.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/media/video_track_adapter.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/media/webrtc/webrtc_video_capturer_adapter.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/pepper/pepper_video_encoder_host.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/presentation/presentation_dispatcher.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/renderer/render_widget.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/content/test/layouttest_support.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/device/generic_sensor/platform_sensor_and_provider_unittest_linux.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/device/generic_sensor/platform_sensor_reader_win.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/device/generic_sensor/sensor_provider_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/device/serial/serial_service_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/device/wake_lock/wake_lock_service_context_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/extensions/renderer/script_injection_manager.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/google_apis/gcm/engine/connection_factory_impl_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/headless/public/util/testing/generic_url_request_mocks.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/ios/chrome/browser/passwords/ios_chrome_password_store_factory.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/ios/chrome/browser/web_resource/web_resource_util.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/ios/net/http_cache_helper.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/ipc/ipc_test_base.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/blink/webaudiosourceprovider_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/cast/test/receiver.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/filters/chunk_demuxer.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/filters/ffmpeg_video_decoder.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/filters/vpx_video_decoder.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/gpu/v4l2_slice_video_decode_accelerator.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/gpu/vaapi_video_encode_accelerator.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/gpu/video_encode_accelerator_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/mojo/clients/mojo_renderer_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/remoting/remote_renderer_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/media/remoting/remote_renderer_impl_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/mojo/public/cpp/bindings/tests/bindings_perftest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/http/http_network_transaction_ssl_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/http/http_stream_factory_impl_job_controller.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/quic/chromium/bidirectional_stream_quic_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/quic/chromium/quic_end_to_end_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/quic/chromium/quic_http_stream.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/spdy/bidirectional_stream_spdy_impl.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/spdy/spdy_http_stream_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/test/embedded_test_server/embedded_test_server_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/url_request/url_request_context.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/url_request/url_request_data_job_fuzzer.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/net/url_request/url_request_file_dir_job_unittest.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/remoting/signaling/delegating_signal_strategy.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/services/ui/surfaces/display_compositor.cc
[modify] https://crrev.com/a19b77026d3ba89c5c400d1843e1a40718ff25a4/ui/views/mus/desktop_window_tree_host_mus.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Dec 23 2016

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

commit ba12142132d0e0920acfd23a867a0746846ffc16
Author: fdoray <fdoray@chromium.org>
Date: Fri Dec 23 19:51:48 2016

Include-what-you-use for WrapUnique/MakeUnique.

This CL adds #include "base/memory/ptr_util.h" to any .h/.cc/.cpp/.mm
file that contains the string "base::MakeUnique" or "base::WrapUnique"
on a line that doesn't start with "//" and whose corresponding .h file
doesn't already contain the include.

.h files are processed first so that the #include is not added to a
.cc/.cpp/.mm file if it is also added to the corresponding .h file.

tools/sort-headers.py was applied to affected files.

TBR=brettw@chromium.org
BUG= 675631 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2598963005
Cr-Commit-Position: refs/heads/master@{#440654}

[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/android_webview/browser/aw_permission_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/android_webview/browser/browser_view_renderer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/android_webview/browser/test/rendering_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/android_webview/native/aw_contents_client_bridge.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/android_webview/renderer/aw_content_renderer_client.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/ash_touch_exploration_manager_chromeos.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/devtools/ash_devtools_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/shelf/app_list_button.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/shelf/shelf_button.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/system/tray/tray_background_view.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/system/tray/tray_details_view.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/system/tray/tray_popup_utils.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/system/user/user_view.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/test/ash_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/wm/lock_window_state.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/wm/overview/scoped_transform_overview_window.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/display/display_util.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/first_run/desktop_cleaner.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/mus/test/wm_test_base.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/system/chromeos/power/tablet_power_button_controller_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/wm/lock_state_controller_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/wm/resize_shadow_controller.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/ash/wm/system_modal_container_layout_manager_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/app/android/blimp_environment.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/app/linux/blimp_main.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/core/compositor/blimp_compositor_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/core/compositor/blob_channel_feature.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/core/contents/blimp_contents_impl_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/support/compositor/blimp_embedder_compositor.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/support/compositor/compositor_dependencies_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/client/test/compositor/blimp_compositor_with_fake_host.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/engine/browser/font_data_fetcher_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/engine/browser/font_data_fetcher_impl_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/engine/mojo/font_fetcher_mojo_impl_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/engine/renderer/blob_channel_sender_proxy.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/engine/renderer/blob_channel_sender_proxy_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/helium/lazy_syncable_adapter_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/helium/lww_register_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/blimp/helium/object_sync_state.h
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/blimp/compositor_state_deserializer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/blimp/layer_tree_host_remote_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/input/browser_controls_offset_manager_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/layers/layer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/layers/scrollbar_layer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/layers/surface_layer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/raster/one_copy_raster_buffer_provider.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/surfaces/direct_compositor_frame_sink_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/surfaces/display_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/surfaces/sequence_surface_reference_factory.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/surfaces/surface_factory.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/fake_tile_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/layer_tree_pixel_resource_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/layer_tree_pixel_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/pixel_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/remote_compositor_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/test_compositor_frame_sink.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/test/test_layer_tree_host_base.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/tiles/picture_layer_tiling_set_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/tiles/tile_manager_perftest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/trees/layer_tree_host_unittest_scroll.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/trees/layer_tree_impl_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/cc/trees/proxy_main.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/android/blimp/blimp_client_context_factory.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/browser_process_platform_part_chromeos.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/browsing_data/browsing_data_remover.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/budget_service/budget_database.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/budget_service/budget_database_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/budget_service/budget_service_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/accessibility/accessibility_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/arc/arc_session_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/arc/arc_support_host.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/arc/notification/arc_boot_error_notification.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/attestation/platform_verification_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/hats/hats_notification_controller.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/login/login_manager_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/login/saml/saml_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/login/session/chrome_session_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/login/ui/shared_web_view.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/login/ui/web_view_handle.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_policy_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/net/network_pref_state_observer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/net/network_throttling_observer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/printing/cups_print_job_notification_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/data_use_measurement/chrome_data_use_ascriber_service_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/api/input_ime/input_ime_api.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/chrome_content_verifier_delegate.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/extension_disabled_ui.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/extension_icon_manager_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/extension_migrator_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/extensions/tab_helper.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/field_trial_recorder.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/history/android/sqlite_cursor_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/importer/external_process_importer_client.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/loader/chrome_resource_dispatcher_host_delegate_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/media/output_protection_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/net_benchmarking.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/page_load_metrics/observers/previews_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/password_manager/native_backend_libsecret_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/plugins/chrome_plugin_service_filter.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/prefs/preferences_connection_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/prefs/preferences_manager.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/prefs/preferences_manager_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/prerender/prerender_contents.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/prerender/prerender_test_utils.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/previews/previews_infobar_delegate_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/previews/previews_infobar_tab_helper_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/search_engines/template_url_service_android.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ssl/bad_clock_blocking_page.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ssl/ssl_error_handler_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/supervised_user/supervised_user_resource_throttle_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/ash/cast_config_client_media_router.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/ash/launcher/settings_window_observer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/ash/palette_delegate_chromeos.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/blocked_content/popup_blocker_tab_helper.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/cocoa/passwords/base_passwords_controller_test.mm
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/extensions/extension_message_bubble_bridge_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/libgtkui/select_file_dialog_impl_kde.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/tab_contents/core_tab_helper.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/apps/app_info_dialog/app_info_dialog_ash_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/apps/app_info_dialog/app_info_dialog_views_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/frame/browser_frame_mus.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/ime_driver/ime_driver_mus.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/passwords/password_dialog_view_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/payments/view_stack.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/payments/view_stack_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/tabs/tab_drag_controller.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/webui/browsing_history_handler.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/webui/media_router/media_router_ui.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/webui/media_router/media_router_web_ui_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/ui/webui/profile_helper.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/browser/webshare/share_service_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/renderer/chrome_content_renderer_client.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/renderer/chrome_render_thread_observer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/test/base/browser_with_test_window_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/utility/chrome_content_utility_client.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/utility/profile_import_handler.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chrome/utility/shell_handler_impl_win.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chromecast/browser/cast_media_blocker_browsertest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chromecast/browser/test/cast_browser_test.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chromeos/components/tether/local_device_data_provider_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/chromeos/printing/ppd_cache_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/arc/bluetooth/arc_bluetooth_bridge_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/arc/bluetooth/bluetooth_struct_traits.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/arc/bluetooth/bluetooth_type_converters.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/arc/bluetooth/bluetooth_type_converters_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/arc/test/fake_bluetooth_instance.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/autofill/core/browser/webdata/autofill_data_type_controller_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/certificate_reporting/error_report_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/constrained_window/constrained_window_views_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/contextual_search/browser/contextual_search_js_api_service_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/contextual_search/renderer/overlay_js_render_frame_observer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/data_use_measurement/core/data_use_measurement_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/data_use_measurement/core/data_use_network_delegate_unittest.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/dom_distiller/content/browser/distillability_driver.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/dom_distiller/content/browser/distiller_javascript_service_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/dom_distiller/content/renderer/distiller_js_render_frame_observer.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/drive/job_scheduler.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/exo/compositor_frame_sink.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/exo/compositor_frame_sink_holder.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/filesystem/directory_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/filesystem/file_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/filesystem/file_system_app.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/filesystem/file_system_impl.cc
[modify] https://crrev.com/ba12142132d0e0920acfd23a867a0746846ffc16/components/nacl/browser/nacl_process_host.cc
[modify] ht
Cc: danakj@chromium.org

Comment 17 by gab@chromium.org, Jan 5 2017

Blockedon: 678155
Summary: Make base/ and core APIs sequence-safe (was: Make base/ APIs sequence-safe)
Project Member

Comment 18 by bugdroid1@chromium.org, Jan 9 2017

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

commit 0ac2f0f892f6c9998134902dbc0fc3d78d8517a9
Author: fdoray <fdoray@chromium.org>
Date: Mon Jan 09 23:38:42 2017

Remove ref-counting from FilePathWatcher.

Keep the PlatformDelegate in a std::unique_ptr instead of a scoped_refptr
in FilePathWatcher. Use weak ptrs when posting callbacks bound to a
PlatformDelegate.

With this change, it is guaranteed that a PlatformDelegate does not
outlive its parent FilePathWatcher. This will allow multiple code
simplifications in FilePathWatcher.

BUG= 675631 

Review-Url: https://codereview.chromium.org/2596273003
Cr-Commit-Position: refs/heads/master@{#442404}

[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher.h
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_fsevents.cc
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_fsevents.h
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_kqueue.cc
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_kqueue.h
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_linux.cc
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_mac.cc
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_stub.cc
[modify] https://crrev.com/0ac2f0f892f6c9998134902dbc0fc3d78d8517a9/base/files/file_path_watcher_win.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jan 10 2017

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

commit c407aeeec23b49178d20068a39a762e2a6599537
Author: fdoray <fdoray@chromium.org>
Date: Tue Jan 10 14:06:26 2017

Use TaskScheduler in EnsureProcessTerminated().

Before this CL, EnsureProcessTerminated() posted a task to the
current thread using ThreadTaskRunnerHandle to terminate a process
after a timeout. Unfortunately, ThreadTaskRunnerHandle doesn't work
when used from sequenced or parallel tasks.

Since there is no reason to terminate the process on the thread
from which EnsureProcessTerminated() is called, this CL replaces
ThreadTaskRunnerHandle with PostDelayedTaskWithTraits. This allows
EnsureProcessTerminated to be called from any context.

This CL also removes usage of base::win::ObjectWatcher from
EnsureProcessTerminated(). Before, the process handle was closed
as soon as the process exited. Now, the process is terminated
(if need be) and the handle is closed only when the timeout
expires.

BUG= 675631 

Review-Url: https://codereview.chromium.org/2598483004
Cr-Commit-Position: refs/heads/master@{#442576}

[modify] https://crrev.com/c407aeeec23b49178d20068a39a762e2a6599537/base/process/kill_win.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jan 12 2017

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

commit dc3ecbb07646f4fc719f49b853ea1ef2c3a10865
Author: fdoray <fdoray@chromium.org>
Date: Thu Jan 12 14:35:23 2017

Allow URLFetcher to be used from sequenced tasks.

Before this CL, URLFetcher could only be instantiated from a
single-threaded task. The response was dispatched on the origin thread.

With this CL, URLFetcher can also be instantiated from a sequenced
task. The response is dispatched on the origin sequence.

Since SequencedTaskRunnerHandle behaves the same way as
ThreadTaskRunnerHandle when used from a single-threaded task, this
CL does not affect the behavior of existing URLFetcher call sites
(they are necessarily in single-threaded tasks because
base::ThreadTaskRunnerHandle::Get() crashes when called from
a non-single-threaded task).

BUG= 675631 

Review-Url: https://codereview.chromium.org/2599873002
Cr-Commit-Position: refs/heads/master@{#443224}

[modify] https://crrev.com/dc3ecbb07646f4fc719f49b853ea1ef2c3a10865/net/url_request/url_fetcher.h
[modify] https://crrev.com/dc3ecbb07646f4fc719f49b853ea1ef2c3a10865/net/url_request/url_fetcher_core.cc
[modify] https://crrev.com/dc3ecbb07646f4fc719f49b853ea1ef2c3a10865/net/url_request/url_fetcher_core.h
[modify] https://crrev.com/dc3ecbb07646f4fc719f49b853ea1ef2c3a10865/net/url_request/url_fetcher_impl_unittest.cc

Sheriff here. Looks like bugdroid hasn't commented yet, but I'm about to revert https://codereview.chromium.org/2592143003, which is tagged with this bug ID.

It is causing two ProfileBrowserTests to fail on Linux ChromiumOS Tests (dbg)(1).

See: https://luci-milo.appspot.com/buildbot/chromium.chromiumos/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/22040

Log output:

[20714:20714:0131/151545.823240:FATAL:observer_list_threadsafe.h(124)] Check failed: it->second->RunsTasksOnCurrentThread().
#0 0x7f581be5e8bb base::debug::StackTrace::StackTrace()
#1 0x7f581be5cf3c base::debug::StackTrace::StackTrace()
#2 0x7f581bec35cc logging::LogMessage::~LogMessage()
#3 0x7f581bed5ae8 base::ObserverListThreadSafe<>::RemoveObserver()
#4 0x7f581bed073c base::(anonymous namespace)::MemoryPressureObserver::RemoveObserver()
#5 0x7f581bed06ef base::MemoryPressureListener::~MemoryPressureListener()
#6 0x000001fbfcab std::default_delete<>::operator()()
#7 0x000001fbfc2c std::unique_ptr<>::reset()
#8 0x000001fbf719 std::unique_ptr<>::~unique_ptr()
#9 0x00000551153b history::HistoryBackend::~HistoryBackend()
#10 0x000005511789 history::HistoryBackend::~HistoryBackend()
#11 0x00000093186b base::RefCountedThreadSafe<>::DeleteInternal()
#12 0x000000931835 base::DefaultRefCountedThreadSafeTraits<>::Destruct()
#13 0x0000054b0f5c base::RefCountedThreadSafe<>::Release()
#14 0x0000054b0f19 scoped_refptr<>::Release()
#15 0x0000054a7bea scoped_refptr<>::~scoped_refptr()
#16 0x0000054b15e5 std::_Head_base<>::~_Head_base()
#17 0x0000054b15c9 _ZNSt11_Tuple_implILm0EJ13scoped_refptrIN7history14HistoryBackendEEPNS1_7ContextEEED2Ev
#18 0x0000054b15a5 _ZNSt5tupleIJ13scoped_refptrIN7history14HistoryBackendEEPNS1_7ContextEEED2Ev
#19 0x0000054c5e49 _ZN4base8internal9BindStateIMN7history14HistoryBackendEFvPNSt7__debug6vectorINS2_11DownloadRowESaIS6_EEEEJ13scoped_refptrIS3_ES9_EED2Ev
#20 0x0000054c5dc7 _ZN4base8internal9BindStateIMN7history14HistoryBackendEFvPNSt7__debug6vectorINS2_11DownloadRowESaIS6_EEEEJ13scoped_refptrIS3_ES9_EE7DestroyEPKNS0_13BindStateBaseE
#21 0x7f581be2ef96 base::internal::BindStateBase::Release()
#22 0x7f581be2f6e5 scoped_refptr<>::Release()
#23 0x7f581be2f552 scoped_refptr<>::operator=()
#24 0x7f581be2f099 base::internal::CallbackBase<>::Reset()
#25 0x7f581c000ea5 base::(anonymous namespace)::PostTaskAndReplyRelay::RunReplyAndSelfDestruct()
#26 0x7f581c0012c5 _ZN4base8internal13FunctorTraitsIMNS_12_GLOBAL__N_121PostTaskAndReplyRelayEFvvEvE6InvokeIPS3_JEEEvS5_OT_DpOT0_
#27 0x7f581c0011c1 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMNS_12_GLOBAL__N_121PostTaskAndReplyRelayEFvvEJPS5_EEEvOT_DpOT0_
#28 0x7f581c001167 _ZN4base8internal7InvokerINS0_9BindStateIMNS_12_GLOBAL__N_121PostTaskAndReplyRelayEFvvEJNS0_17UnretainedWrapperIS4_EEEEEFvvEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE
#29 0x7f581c0010ac _ZN4base8internal7InvokerINS0_9BindStateIMNS_12_GLOBAL__N_121PostTaskAndReplyRelayEFvvEJNS0_17UnretainedWrapperIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#30 0x7f581be63e21 _ZNO4base8internal8RunMixinINS_8CallbackIFvvELNS0_8CopyModeE0ELNS0_10RepeatModeE0EEEE3RunEv
#31 0x7f581be63829 base::debug::TaskAnnotator::RunTask()
#32 0x7f581bee6653 base::MessageLoop::RunTask()
#33 0x7f581bee68b4 base::MessageLoop::DeferOrRunPendingTask()
#34 0x7f581bee6b9e base::MessageLoop::DoWork()
#35 0x7f581befbb9c base::MessagePumpGlib::HandleDispatch()
#36 0x7f581befc241 base::(anonymous namespace)::WorkSourceDispatch()
#37 0x7f5802bf8d13 g_main_context_dispatch
#38 0x7f5802bf9060 <unknown>
#39 0x7f5802bf9124 g_main_context_iteration
#40 0x7f581befbc9f base::MessagePumpGlib::Run()
#41 0x7f581bee6242 base::MessageLoop::RunHandler()
#42 0x7f581bf7ea34 base::RunLoop::Run()
#43 0x000004afdc96 content::RunThisRunLoop()
#44 0x000004afde4a content::RunAllPendingInMessageLoop()
#45 0x0000011bc719 (anonymous namespace)::SpinThreads()
#46 0x0000011bd006 ProfileBrowserTest::FlushIoTaskRunnerAndSpinThreads()
#47 0x0000011b9b69 ProfileBrowserTest_OffTheRecordURLRequestContextIsolation_Test::RunTestOnMainThread()
Project Member

Comment 22 by bugdroid1@chromium.org, Mar 20 2017

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

commit 770b36c2734d41edbb8d5b260bcfc9c29fe16afd
Author: rogerm <rogerm@chromium.org>
Date: Mon Mar 20 22:21:53 2017

Make ScopedURLFetcherFactory sequenced-safe.

This CL allows ScopedURLFetcherFactory to be used in a test
environment exposing a sequenced task runner instead of
requiring a single thread task runner, a relaxation of the
requirements (single thread is a stricter instance of a
sequened task runner).

The URL fetcher code has already been relaxed in a previous
CL to only require a sequenced runner, but the corresponding
update to ScopedURLFetcherFactory was overlooked.

BUG= 675631 

Review-Url: https://codereview.chromium.org/2757233003
Cr-Commit-Position: refs/heads/master@{#458201}

[modify] https://crrev.com/770b36c2734d41edbb8d5b260bcfc9c29fe16afd/net/url_request/test_url_fetcher_factory.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 10 2017

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

commit 6aad314383abc65e773b58a5aa697a84bf42e176
Author: fdoray <fdoray@chromium.org>
Date: Mon Apr 10 18:58:21 2017

Allow ObserverListThreadSafe to be used from sequenced tasks.

This CL is identical to https://codereview.chromium.org/2592143003,
except that RemoveObserver() works when called from any sequence
(existing code rely on that).

Previously, observers could only be added to an ObserverListThreadSafe
from single-threaded tasks. Observers were notified on the registration
thread.

With this CL, observers can also be added to an ObserverListThreadSafe
from sequenced tasks. They are notified on the registration sequence.

ObserverListThreadSafe behaves almost the same way as before when used
from single-threaded tasks. The following things changed:
- The order in which observers registered from the same thread
  are notified is no longer deterministic.
- One notification task is posted for each observer rather than one
  notification task per thread.
- If an observer is added to a NOTIFY_ALL ObserverListThreadSafe from
  a stack of notification dispatches, only the notification on top of
  the stack is sent to the newly added observer.

BUG= 675631 

Review-Url: https://codereview.chromium.org/2805933002
Cr-Commit-Position: refs/heads/master@{#463345}

[modify] https://crrev.com/6aad314383abc65e773b58a5aa697a84bf42e176/base/observer_list_threadsafe.h
[modify] https://crrev.com/6aad314383abc65e773b58a5aa697a84bf42e176/base/observer_list_unittest.cc

Project Member

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

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

commit 4e844bb5f686dbd3a062c6aaf83c8a1df171a08a
Author: gab <gab@chromium.org>
Date: Thu Jun 01 16:23:36 2017

Make base::Timer sequence-friendly.

This CL was also going to fix a race condition in the existing implementation when SetTaskRunner() was used but the test-only failures caused by tests having long-lived
with the status quo are proving hard than expected to fix. The race is no worse than
before by making this code sequence-friendly (and generally healthier). Will fix
race in a follow-up CL.

Of note in this CL:
 - Patch set 1 is https://codereview.chromium.org/1433373003
   so looking at diff from 1 might be less work (especially for tests).
 - (not true anymore, postponed to race fix CL:)
   The Timer's delayed task now always lives on the sequence it was started from
   (and even SetTaskRunner() was used, a task is posted to it when the delay
    expires instead of having the Timer's delayed task live on it -- this solves
    the aforementioned race condition).
   - This required adapting tests for MediaCodecLoop and UploadProgressTracker.

BUG= 587199 ,  552633 ,  678592 , 684640,  675631 

Review-Url: https://codereview.chromium.org/2491613004
Cr-Commit-Position: refs/heads/master@{#476317}

[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/base/timer/timer.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/base/timer/timer.h
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/base/timer/timer_unittest.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/build/sanitizers/tsan_suppressions.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/content/browser/loader/upload_progress_tracker.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/content/browser/loader/upload_progress_tracker.h
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/content/browser/loader/upload_progress_tracker_unittest.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/content/browser/service_worker/service_worker_browsertest.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/content/browser/service_worker/service_worker_job_unittest.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/media/base/android/media_codec_loop.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/media/base/android/media_codec_loop.h
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/media/base/android/media_codec_loop_unittest.cc
[modify] https://crrev.com/4e844bb5f686dbd3a062c6aaf83c8a1df171a08a/media/filters/android/media_codec_audio_decoder.cc

Comment 25 by gab@chromium.org, Jun 6 2017

Summary: Make base/ and core APIs sequence-friendly (was: Make base/ and core APIs sequence-safe)
Project Member

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

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

commit d9374411781498797ca4bc987475b5e483018d49
Author: gab <gab@chromium.org>
Date: Wed Jun 07 16:03:52 2017

Make ThreadTestHelper sequence-friendly.

Required @  https://crbug.com/552552#c17 

PS: SequenceTestHelper sounded too generic of a name... decided to keep
the name as-is, this isn't used all that much anyways...

BUG= 675631 ,  552552 

Review-Url: https://codereview.chromium.org/2924813002
Cr-Commit-Position: refs/heads/master@{#477665}

[modify] https://crrev.com/d9374411781498797ca4bc987475b5e483018d49/base/test/thread_test_helper.cc
[modify] https://crrev.com/d9374411781498797ca4bc987475b5e483018d49/base/test/thread_test_helper.h

Comment 27 by gab@chromium.org, Jun 8 2017

Blockedon: 729210
Blockedon: 735368

Comment 29 by gab@chromium.org, Jun 22 2017

Blockedon: 735962
Blockedon: 740773
Project Member

Comment 31 by bugdroid1@chromium.org, Aug 30 2017

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

commit e4a2323376aaac1259084ff92cddcbabb32da442
Author: Ben Wells <benwells@chromium.org>
Date: Wed Aug 30 03:23:05 2017

Remove use of GetBlockingPool from media galleries.

This also removes some usage of the FILE thread as well, but not all.

Bug:  675631 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_dbg_ng
Change-Id: I97dc1b3bbe52f865ccbaf639bd33fc5dd65b474b
Reviewed-on: https://chromium-review.googlesource.com/566744
Commit-Queue: Ben Wells <benwells@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Francois Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498359}
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/build/check_gn_headers_whitelist.txt
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/BUILD.gn
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
[delete] https://crrev.com/39754e74f0335375d4af97c5cdb11b8cd92308f0/chrome/browser/media_galleries/fileapi/file_path_watcher_util.cc
[delete] https://crrev.com/39754e74f0335375d4af97c5cdb11b8cd92308f0/chrome/browser/media_galleries/fileapi/file_path_watcher_util.h
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/iapps_data_provider.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/iapps_data_provider.h
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/itunes_data_provider.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/itunes_file_util_unittest.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/media_file_system_backend.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/media_file_system_backend.h
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/media_file_validator_browsertest.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/native_media_file_util_unittest.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/picasa_data_provider.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/picasa_data_provider.h
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/picasa_data_provider_browsertest.cc
[modify] https://crrev.com/e4a2323376aaac1259084ff92cddcbabb32da442/chrome/browser/media_galleries/fileapi/picasa_file_util_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment