Commit 2c50ce04 authored by Yuki Shiino's avatar Yuki Shiino Committed by Commit Bot

bind-gen: Fix the exposure logic (Window.chooseFileSystemEntries)

Fixes the exposure expr so that the following case works as
expected (two features are required for the exposure of |f|).

  [RuntimeEnabled=F1] interface X {
    [RuntimeEnabled=F2] void f();
  };

Bug: 839389
Change-Id: I46b7a8205690ca3a1de9fb456d223aca2c6bb665
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2361944Reviewed-by: default avatarKent Tamura <tkent@chromium.org>
Reviewed-by: default avatarHitoshi Yoshida <peria@chromium.org>
Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799526}
parent aeee6cac
...@@ -185,7 +185,8 @@ def expr_from_exposure(exposure, ...@@ -185,7 +185,8 @@ def expr_from_exposure(exposure,
# (or # (or
# (and feature_selector.IsAll() # 1st phase; all enabled # (and feature_selector.IsAll() # 1st phase; all enabled
# cond_exposed_term # cond_exposed_term
# feature_enabled_term) # (or feature_enabled_term
# context_enabled_term))
# (or exposed_selector_term # 2nd phase; any selected # (or exposed_selector_term # 2nd phase; any selected
# feature_selector_term))) # feature_selector_term)))
# where # where
...@@ -193,11 +194,13 @@ def expr_from_exposure(exposure, ...@@ -193,11 +194,13 @@ def expr_from_exposure(exposure,
# uncond_exposed_term represents [Exposed=(G1, G2)] # uncond_exposed_term represents [Exposed=(G1, G2)]
# cond_exposed_term represents [Exposed(G1 F1, G2 F2)] # cond_exposed_term represents [Exposed(G1 F1, G2 F2)]
# feature_enabled_term represents [RuntimeEnabled=(F1, F2)] # feature_enabled_term represents [RuntimeEnabled=(F1, F2)]
# context_enabled_term represents [ContextEnabled=F1]
# exposed_selector_term represents [Exposed(G1 F1, G2 F2)] # exposed_selector_term represents [Exposed(G1 F1, G2 F2)]
# feature_selector_term represents [RuntimeEnabled=(F1, F2)] # feature_selector_term represents [RuntimeEnabled=(F1, F2)]
uncond_exposed_terms = [] uncond_exposed_terms = []
cond_exposed_terms = [] cond_exposed_terms = []
feature_enabled_terms = [] feature_enabled_terms = []
context_enabled_terms = []
exposed_selector_terms = [] exposed_selector_terms = []
feature_selector_names = [] # Will turn into feature_selector.IsAnyOf(...) feature_selector_names = [] # Will turn into feature_selector.IsAnyOf(...)
...@@ -276,7 +279,7 @@ def expr_from_exposure(exposure, ...@@ -276,7 +279,7 @@ def expr_from_exposure(exposure,
lambda feature: _Expr( lambda feature: _Expr(
"${{context_feature_settings}}->is{}Enabled()".format( "${{context_feature_settings}}->is{}Enabled()".format(
feature)), exposure.context_enabled_features) feature)), exposure.context_enabled_features)
feature_enabled_terms.append( context_enabled_terms.append(
expr_and([_Expr("${context_feature_settings}"), expr_and([_Expr("${context_feature_settings}"),
expr_or(terms)])) expr_or(terms)]))
...@@ -297,8 +300,13 @@ def expr_from_exposure(exposure, ...@@ -297,8 +300,13 @@ def expr_from_exposure(exposure,
all_enabled_terms = [_Expr("${feature_selector}.IsAll()")] all_enabled_terms = [_Expr("${feature_selector}.IsAll()")]
if cond_exposed_terms: if cond_exposed_terms:
all_enabled_terms.append(expr_or(cond_exposed_terms)) all_enabled_terms.append(expr_or(cond_exposed_terms))
if feature_enabled_terms or context_enabled_terms:
terms = []
if feature_enabled_terms: if feature_enabled_terms:
all_enabled_terms.append(expr_or(feature_enabled_terms)) terms.append(expr_and(feature_enabled_terms))
if context_enabled_terms:
terms.append(expr_or(context_enabled_terms))
all_enabled_terms.append(expr_or(terms))
selector_terms = [] selector_terms = []
if exposed_selector_terms: if exposed_selector_terms:
......
...@@ -76,7 +76,7 @@ class Exposure(object): ...@@ -76,7 +76,7 @@ class Exposure(object):
def runtime_enabled_features(self): def runtime_enabled_features(self):
""" """
Returns a list of runtime enabled features. This construct is exposed Returns a list of runtime enabled features. This construct is exposed
only when one of these features is enabled. only when all these features are enabled.
""" """
return self._runtime_enabled_features return self._runtime_enabled_features
......
...@@ -11941,7 +11941,6 @@ interface webkitURL ...@@ -11941,7 +11941,6 @@ interface webkitURL
method cancelAnimationFrame method cancelAnimationFrame
method cancelIdleCallback method cancelIdleCallback
method captureEvents method captureEvents
method chooseFileSystemEntries
method clearInterval method clearInterval
method clearTimeout method clearTimeout
method close method close
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment