| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 'use strict'; | 4 'use strict'; |
| 5 const fs = require('fs'); | 5 const fs = require('fs'); |
| 6 const path = require('path'); | 6 const path = require('path'); |
| 7 | 7 |
| 8 const utils = require('../utils'); | 8 const utils = require('../utils'); |
| 9 | 9 |
| 10 const FRONTEND_PATH = path.resolve(__dirname, '..', '..', 'front_end'); | 10 const FRONTEND_PATH = path.resolve(__dirname, '..', '..', 'front_end'); |
| 11 const BUILD_GN_PATH = path.resolve(__dirname, '..', '..', 'BUILD.gn'); | 11 const BUILD_GN_PATH = path.resolve(__dirname, '..', '..', 'BUILD.gn'); |
| 12 const SPECIAL_CASE_NAMESPACES_PATH = path.resolve(__dirname, '..', 'special_case
_namespaces.json'); | 12 const SPECIAL_CASE_NAMESPACES_PATH = path.resolve(__dirname, '..', 'special_case
_namespaces.json'); |
| 13 | 13 |
| 14 const APPLICATION_DESCRIPTORS = [ | 14 const APPLICATION_DESCRIPTORS = [ |
| 15 'inspector.json', | 15 'inspector.json', |
| 16 'toolbox.json', | 16 'toolbox.json', |
| 17 'unit_test_runner.json', | 17 'unit_test_runner.json', |
| 18 'formatter_worker.json', | 18 'formatter_worker.json', |
| 19 'heap_snapshot_worker.json', | 19 'heap_snapshot_worker.json', |
| 20 'utility_shared_worker.json', | 20 'utility_shared_worker.json', |
| 21 ]; | 21 ]; |
| 22 | 22 |
| 23 // Replace based on specified transformation | 23 // Replace based on specified transformation |
| 24 const MODULES_TO_REMOVE = []; | 24 const MODULES_TO_REMOVE = []; |
| 25 | 25 |
| 26 const JS_FILES_MAPPING = [ | 26 const JS_FILES_MAPPING = [ |
| 27 {file: 'components/EventListenersView.js', new: 'event_listeners'}, | 27 {file: 'components/CustomPreviewComponent.js', new: 'object_ui'}, |
| 28 {file: 'components/EventListenersUtils.js', new: 'event_listeners'}, | 28 {file: 'components/ObjectPopoverHelper.js', new: 'object_ui'}, |
| 29 // {file: 'module/file.js', existing: 'module'} | 29 {file: 'components/ObjectPropertiesSection.js', new: 'object_ui'}, |
| 30 {file: 'components/JavaScriptAutocomplete.js', new: 'object_ui'}, |
| 31 {file: 'components/RemoteObjectPreviewFormatter.js', new: 'object_ui'}, |
| 30 ]; | 32 ]; |
| 31 | 33 |
| 32 const MODULE_MAPPING = { | 34 const MODULE_MAPPING = { |
| 33 event_listeners: { | 35 object_ui: { |
| 34 dependencies: ['ui', 'common', 'components', 'sdk'], | 36 dependencies: ['ui', 'sdk', 'components'], |
| 35 dependents: ['elements', 'sources'], | 37 dependents: ['console', 'sources', 'extensions', 'event_listeners', 'resourc
es', 'profiler', 'network'], |
| 36 applications: ['inspector.json'], | 38 applications: ['inspector.json'], |
| 37 autostart: false, | 39 autostart: true, // set to autostart because of extensions |
| 38 }, | 40 }, |
| 39 }; | 41 }; |
| 40 | 42 |
| 41 const NEW_DEPENDENCIES_BY_EXISTING_MODULES = { | 43 const NEW_DEPENDENCIES_BY_EXISTING_MODULES = { |
| 42 // resources: ['components'], | 44 // resources: ['components'], |
| 43 }; | 45 }; |
| 44 | 46 |
| 45 const REMOVE_DEPENDENCIES_BY_EXISTING_MODULES = {}; | 47 const REMOVE_DEPENDENCIES_BY_EXISTING_MODULES = {}; |
| 46 | 48 |
| 47 const DEPENDENCIES_BY_MODULE = Object.keys(MODULE_MAPPING).reduce((acc, module)
=> { | 49 const DEPENDENCIES_BY_MODULE = Object.keys(MODULE_MAPPING).reduce((acc, module)
=> { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 67 } | 69 } |
| 68 const newModuleSet = JS_FILES_MAPPING.reduce((acc, file) => file.new ? acc.add
(file.new) : acc, new Set()); | 70 const newModuleSet = JS_FILES_MAPPING.reduce((acc, file) => file.new ? acc.add
(file.new) : acc, new Set()); |
| 69 const targetToOriginalFilesMap = JS_FILES_MAPPING.reduce((acc, f) => { | 71 const targetToOriginalFilesMap = JS_FILES_MAPPING.reduce((acc, f) => { |
| 70 let components = f.file.split('/'); | 72 let components = f.file.split('/'); |
| 71 components[0] = f.new || f.existing; | 73 components[0] = f.new || f.existing; |
| 72 acc.set(components.join('/'), f.file); | 74 acc.set(components.join('/'), f.file); |
| 73 return acc; | 75 return acc; |
| 74 }, new Map()); | 76 }, new Map()); |
| 75 | 77 |
| 76 const cssFilesMapping = findCSSFiles(); | 78 const cssFilesMapping = findCSSFiles(); |
| 77 // todo: one-off | |
| 78 cssFilesMapping.get('components/EventListenersView.js').delete('objectValue.cs
s'); | |
| 79 console.log('cssFilesMapping', cssFilesMapping); | 79 console.log('cssFilesMapping', cssFilesMapping); |
| 80 const identifiersByFile = calculateIdentifiers(); | 80 const identifiersByFile = calculateIdentifiers(); |
| 81 const identifierMap = mapIdentifiers(identifiersByFile, cssFilesMapping); | 81 const identifierMap = mapIdentifiers(identifiersByFile, cssFilesMapping); |
| 82 console.log('identifierMap', identifierMap); | 82 console.log('identifierMap', identifierMap); |
| 83 const extensionMap = removeFromExistingModuleDescriptors(modules, identifierMa
p, cssFilesMapping); | 83 const extensionMap = removeFromExistingModuleDescriptors(modules, identifierMa
p, cssFilesMapping); |
| 84 | 84 |
| 85 // Find out which files are moving extensions | 85 // Find out which files are moving extensions |
| 86 for (let e of extensionMap.keys()) { | 86 for (let e of extensionMap.keys()) { |
| 87 for (let [f, identifiers] of identifiersByFile) { | 87 for (let [f, identifiers] of identifiersByFile) { |
| 88 if (identifiers.includes(e)) | 88 if (identifiers.includes(e)) |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 if (line === startLine) | 282 if (line === startLine) |
| 283 seenStartLine = true; | 283 seenStartLine = true; |
| 284 | 284 |
| 285 if (line === endLine && seenStartLine) | 285 if (line === endLine && seenStartLine) |
| 286 break; | 286 break; |
| 287 | 287 |
| 288 if (!seenStartLine) | 288 if (!seenStartLine) |
| 289 continue; | 289 continue; |
| 290 | 290 |
| 291 const nextContent = top(contentStack) ? top(contentStack).toLowerCase() :
''; | 291 const nextContent = top(contentStack) ? top(contentStack).toLowerCase() :
''; |
| 292 if ((line === startLine || nextContent > line.toLowerCase()) && | 292 if ((line === startLine || nextContent >= line.toLowerCase()) && |
| 293 (nextLine === endLine || nextContent < nextLine.toLowerCase())) | 293 (nextLine === endLine || nextContent <= nextLine.toLowerCase())) |
| 294 lines.splice(i + 1, 0, contentStack.pop()); | 294 lines.splice(i + 1, 0, contentStack.pop()); |
| 295 } | 295 } |
| 296 if (contentStack.length) | 296 if (contentStack.length) |
| 297 lines.splice(i, 0, ...contentStack); | 297 lines.splice(i, 0, ...contentStack); |
| 298 return lines.join('\n'); | 298 return lines.join('\n'); |
| 299 } | 299 } |
| 300 } | 300 } |
| 301 | 301 |
| 302 function mapIdentifiers(identifiersByFile, cssFilesMapping) { | 302 function mapIdentifiers(identifiersByFile, cssFilesMapping) { |
| 303 const filesToTargetModule = new Map(); | 303 const filesToTargetModule = new Map(); |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 return string.split('') | 682 return string.split('') |
| 683 .map(function(char) { | 683 .map(function(char) { |
| 684 var charCode = char.charCodeAt(0); | 684 var charCode = char.charCodeAt(0); |
| 685 return charCode > 127 ? unicodeCharEscape(charCode) : char; | 685 return charCode > 127 ? unicodeCharEscape(charCode) : char; |
| 686 }) | 686 }) |
| 687 .join(''); | 687 .join(''); |
| 688 } | 688 } |
| 689 | 689 |
| 690 if (require.main === module) | 690 if (require.main === module) |
| 691 extractModule(); | 691 extractModule(); |
| OLD | NEW |