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

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

Issue 1961883002: Generate separate files for union type containers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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: third_party/WebKit/Source/bindings/scripts/utilities.py
diff --git a/third_party/WebKit/Source/bindings/scripts/utilities.py b/third_party/WebKit/Source/bindings/scripts/utilities.py
index 23708876cfcbfe13ffc376823fc778c054f598b0..1d9bf8203f81abb2fa593fb28154cc6f15444a4e 100644
--- a/third_party/WebKit/Source/bindings/scripts/utilities.py
+++ b/third_party/WebKit/Source/bindings/scripts/utilities.py
@@ -9,6 +9,7 @@ Design doc: http://www.chromium.org/developers/design-documents/idl-build
import os
import cPickle as pickle
+import platform
import re
import shlex
import string
@@ -88,7 +89,7 @@ class ComponentInfoProvider(object):
return set()
@property
- def include_path_for_union_types(self):
+ def include_path_for_union_types(self, name):
return None
@@ -118,9 +119,8 @@ class ComponentInfoProviderCore(ComponentInfoProvider):
def union_types(self):
return self._component_info['union_types']
- @property
- def include_path_for_union_types(self):
- return 'bindings/core/v8/UnionTypesCore.h'
+ def include_path_for_union_types(self, name):
+ return 'bindings/core/v8/%s.h' % name
@property
def specifier_for_export(self):
@@ -165,9 +165,12 @@ class ComponentInfoProviderModules(ComponentInfoProvider):
# generating multiple container generation.
return self._component_info_modules['union_types'] - self._component_info_core['union_types']
- @property
- def include_path_for_union_types(self):
- return 'bindings/modules/v8/UnionTypesModules.h'
+ def include_path_for_union_types(self, name):
+ core_union_type_names = [union_type.name for union_type
+ in self._component_info_core['union_types']]
+ if name in core_union_type_names:
+ return 'bindings/core/v8/%s.h' % name
+ return 'bindings/modules/v8/%s.h' % name
@property
def specifier_for_export(self):
@@ -294,6 +297,12 @@ def write_file(new_text, destination_filename, only_if_changed):
destination_dirname = os.path.dirname(destination_filename)
if not os.path.exists(destination_dirname):
os.makedirs(destination_dirname)
+ # Workaround for http://crbug.com/611437
+ # TODO(bashi): Remove this hack once we resolve too-long generated file
+ # names.
+ if platform.system() == 'Windows':
+ # http://stackoverflow.com/questions/14075465
+ destination_filename = '\\\\?\\' + destination_filename
with open(destination_filename, 'w') as destination_file:
destination_file.write(new_text)

Powered by Google App Engine
This is Rietveld 408576698