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) |