• Gabriel Charette's avatar
    Reland "IWYU for bind/callback_helpers.h and ptr_util.h" · 9f60dd11
    Gabriel Charette authored
    This reverts commit 7a13e264.
    
    Reason for revert: same as original % tools/clang
    
    Original change's description:
    > Revert "IWYU for bind/callback_helpers.h and ptr_util.h"
    > 
    > This reverts commit b8ffaf4c.
    > 
    > Reason for revert:
    > This broke the build of the blink_gc_plugin, which does not use base/
    > (see bug). Please don't commit to tools/clang/ without review.
    > 
    > Original change's description:
    > > IWYU for bind/callback_helpers.h and ptr_util.h
    > > 
    > > These missing includes are preventing removal of unused headers from
    > > task_runner_util.h and consequently migration from task_runner_util.h to
    > > task_runner.h's new PostTaskAndReplyWithResult member method.
    > > 
    > > The following script was run on every file in the codebase, prioritizing
    > > .h over matching .cc to best enforce the rule of not include a header
    > > included by your .h :
    > > 
    > > def Fix(file_path):
    > >   content = refactor_lib.ReadFile(file_path)
    > > 
    > >   # Assume fwd-decls are correct in first pass.
    > >   fwd_decls_match = re.compile(r'\n *[^/\n][^/\n][^/\n]*class (NullCallback|DoNothing|ScopedClosureRunner);', re.DOTALL).findall(content)
    > >   if fwd_decls_match:
    > >     print 'fwd_decls_match in %s' % (file_path)
    > >     return False
    > > 
    > >   bind_helpers_match = re.compile(
    > >       # Doesn't begin with a comment.
    > >       r'\n *[^/\n][^/\n]'
    > >       # Anything else after a non-comment start (and don't allow this to capture a comment start either)
    > >       r'[^/\n]*'
    > >       # Anything before but an open angle-bracket to avoid cases like unique_ptr<Foo> where you don't need the full definition of Foo.
    > >       r'[^<]'
    > >       # Only match with base:: prefix; more precise, can manually fix missing includes in //base proper in a follow-up pass if needed.
    > >       r'base::(NullCallback|DoNothing|DeletePointer)\b[^*]', re.DOTALL).findall(content)
    > > 
    > >   callback_helpers_match = re.compile(r'\n *[^/\n][^/\n][^/\n]*[^<]base::(IsBaseCallback|EnableIfIsBaseCallback|AdaptCallbackForRepeating|ScopedClosureRunner)\b[^*]', re.DOTALL).findall(content)
    > > 
    > >   ptr_util_match = re.compile(r'\n *[^/\n][^/\n][^/\n]*[^<]base::WrapUnique\b[^*]', re.DOTALL).findall(content)
    > > 
    > >   if not bind_helpers_match and not callback_helpers_match and not ptr_util_match:
    > >     return False
    > > 
    > >   updated_content = content
    > >   if bind_helpers_match:
    > >     updated_content = refactor_lib.AddInclude(file_path, updated_content, "base/bind_helpers.h")
    > >   if callback_helpers_match:
    > >     updated_content = refactor_lib.AddInclude(file_path, updated_content, "base/callback_helpers.h")
    > >   if ptr_util_match:
    > >     updated_content = refactor_lib.AddInclude(file_path, updated_content, "base/memory/ptr_util.h")
    > > 
    > >   if updated_content == content:
    > >     return False
    > > 
    > >   # Write updated file
    > >   refactor_lib.WriteFile(file_path, updated_content)
    > > 
    > >   return True
    > > 
    > > TBR=danakj@chromium.org
    > > (mechanical change for //base API)
    > > 
    > > Bug: 1026641
    > > Change-Id: Ic88585c62dd2f74d34c59c708faeddb231aee47f
    > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2087971
    > > Reviewed-by: Gabriel Charette <gab@chromium.org>
    > > Reviewed-by: danakj <danakj@chromium.org>
    > > Commit-Queue: Gabriel Charette <gab@chromium.org>
    > > Cr-Commit-Position: refs/heads/master@{#747685}
    > 
    > TBR=danakj@chromium.org,gab@chromium.org
    > 
    > Change-Id: I59d6cd69bd898e9f6d10922c67d8c24ba582bf7f
    > No-Presubmit: true
    > No-Tree-Checks: true
    > No-Try: true
    > Bug: 1026641, 1059359
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2091356
    > Reviewed-by: Hans Wennborg <hans@chromium.org>
    > Commit-Queue: Hans Wennborg <hans@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#747804}
    
    TBR=danakj@chromium.org,gab@chromium.org,hans@chromium.org
    
    Change-Id: I721391eba68ea55830dca4f1ac34ff633f714f72
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Bug: 1026641, 1059359
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2090509
    Commit-Queue: Gabriel Charette <gab@chromium.org>
    Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#747844}
    9f60dd11
ash_content_test.cc 8.18 KB