Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Unified Diff: Source/bindings/scripts/utilities.py

Issue 618373003: [bindings] partial interfaces should not violate componentization (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/scripts/utilities.py
diff --git a/Source/bindings/scripts/utilities.py b/Source/bindings/scripts/utilities.py
index 4d80ca7d1b3dc7df5f5e0b01676a68ec943456b6..eeb6d220328478e31752058cd6c77fbda7bfb5a3 100644
--- a/Source/bindings/scripts/utilities.py
+++ b/Source/bindings/scripts/utilities.py
@@ -31,10 +31,27 @@ def idl_filename_to_component(idl_filename):
path = os.path.dirname(os.path.realpath(idl_filename))
while path:
dirname, basename = os.path.split(path)
+ if not basename:
+ break
if basename.lower() in KNOWN_COMPONENTS:
return basename.lower()
path = dirname
- raise 'Unknown component type for %s' % idl_filename
+ raise Exception('Unknown component type for %s' % idl_filename)
+
+
+# See whether "component" can depend on "referred_component" or not:
haraken 2014/10/16 04:24:08 referred => dependency ?
tasak 2014/10/17 07:38:17 Done.
+# Suppose that we have interface X and Y:
+# - if X is a partial interface and Y is the original interface,
+# use is_valid_component_dependency(X, Y).
+# - if X implements Y, use is_valid_component_dependency(X, Y)
+# Suppose that X is a cpp file and Y is a header file:
+# - if X includes Y, use is_valid_component_dependency(X, Y)
+def is_valid_component_dependency(component, referred_component):
+ assert component in KNOWN_COMPONENTS
+ assert referred_component in KNOWN_COMPONENTS
+ if component == 'core' and referred_component == 'modules':
+ return False
+ return True
################################################################################

Powered by Google App Engine
This is Rietveld 408576698