New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 753171 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 2017
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

WebKit: missing GN dep for RuntimeEnabledFeatures.h

Project Member Reported by mbjorge@chromium.org, Aug 8 2017

Issue description

A missing GN dep makes the build race-y.

../../third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc:11:10: fatal error: 'platform/RuntimeEnabledFeatures.h' file not found
#include "platform/RuntimeEnabledFeatures.h"

../../third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc:17:10: fatal error: 'platform/RuntimeEnabledFeatures.h' file not found
#include "platform/RuntimeEnabledFeatures.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../../third_party/WebKit/Source/platform/scheduler/renderer/renderer_web_scheduler_impl.cc:10:10: fatal error: 'platform/RuntimeEnabledFeatures.h' file not found
#include "platform/RuntimeEnabledFeatures.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Similar in nature to the bug at crbug/750883. Sadly seems that GN check is not able to detect this missing dep issue correctly
 
Owner: mbjorge@chromium.org
Cc: brettw@chromium.org
https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#What-gets-checked


> gn check
> [...]
> What gets checked
> [...]
>    - Include paths are assumed to be relative to either the source root or the
>      "root_gen_dir" and must include all the path components. (It might be
>      nice in the future to incorporate GN's knowledge of the include path to
>      handle other include styles.)

The generated header actually ends up at blink/platform/RuntimeEnabledFeatures.h

If I update the #include to use the full path instead, then gn check is able to detect the missing dependency:

ERROR at //third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc:11:11: Include not allowed.
#include "blink/platform/RuntimeEnabledFeatures.h"
          ^--------------------------------------
It is not in any dependency of
  //third_party/WebKit/Source/platform/scheduler:scheduler
The include file is in the target(s):
  //third_party/WebKit/Source/platform:platform
  //third_party/WebKit/Source/platform:runtime_enabled_features
at least one of which should somehow be reachable.

Cc: -brettw@chromium.org
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 8 2017

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

commit 05e6a0b4f200f584ee0a7d1e8e4302933fa04c1f
Author: Mike Bjorge <mbjorge@chromium.org>
Date: Tue Aug 08 11:07:57 2017

Add dep for scheduler/render to RuntimeEnabledFeatures.h

Several scheduler/renderer/* files reference RuntimeEnabledFeatures.h.
This file is generated from a template though, so there needs to be a
GN dep on to the make_platform_generated target to make sure the file
will always exists in time.

Bug:  753171 
Change-Id: Id383a467b473ccd80508af76d1a02d9a29fbfa60
Reviewed-on: https://chromium-review.googlesource.com/604401
Reviewed-by: Alex Clarke <alexclarke@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492591}
[modify] https://crrev.com/05e6a0b4f200f584ee0a7d1e8e4302933fa04c1f/third_party/WebKit/Source/platform/scheduler/BUILD.gn

Status: Fixed (was: Untriaged)

Sign in to add a comment