Report errors from ChromiumEnv::GetChildren in Posix.
[chromium-blink-merge.git] / chrome_frame / chrome_frame.gyp
blob4d6dea74f06cb3dc447dfebae049770d60a9552b
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'variables': {
7     'chromium_code': 1,
9     # Keep the archive builder happy.
10     'chrome_personalization%': 1,
11     'use_syncapi_stub%': 0,
13     'conditions': [
14       ['OS=="win"', {
15         'python': [
16           '<(DEPTH)\\third_party\\python_26\\setup_env.bat && python'
17         ],
18       }, { # OS != win
19         'python': [
20           'python'
21         ],
22       }],
23     ],
24   },
25   'includes': [
26     '../build/win_precompile.gypi',
27     '../chrome/version.gypi',
28   ],
29   'target_defaults': {
30     'dependencies': [
31       '../chrome/chrome_resources.gyp:chrome_resources',
32       '../chrome/chrome_resources.gyp:chrome_strings',
33       '../chrome/chrome_resources.gyp:packed_resources',
34       '../chrome/chrome_resources.gyp:theme_resources',
35       '../skia/skia.gyp:skia',
36     ],
37     'defines': [ 'ISOLATION_AWARE_ENABLED=1' ],
38     'include_dirs': [
39       # all our own includes are relative to src/
40       '..',
41     ],
42   },
43   'targets': [
44     {
45       'target_name': 'chrome_frame_version_resources',
46       'type': 'none',
47       'conditions': [
48         ['branding == "Chrome"', {
49           'variables': {
50              'branding_path': '../chrome/app/theme/google_chrome/BRANDING',
51           },
52         }, { # else branding!="Chrome"
53           'variables': {
54              'branding_path': '../chrome/app/theme/chromium/BRANDING',
55           },
56         }],
57       ],
58       'variables': {
59         'output_dir': 'chrome_frame',
60         'template_input_path': 'npchrome_frame_version.rc.version',
61         'extra_variable_files_arguments': [ '-f', 'BRANDING' ],
62         'extra_variable_files': [ 'BRANDING' ], # NOTE: matches that above
63       },
64       'direct_dependent_settings': {
65         'include_dirs': [
66           '<(SHARED_INTERMEDIATE_DIR)/<(output_dir)',
67         ],
68       },
69       'sources': [
70         'npchrome_frame_dll.ver',
71       ],
72       'includes': [
73         '../chrome/version_resource_rules.gypi',
74       ],
75     },
76     {
77       # Builds the crash tests in crash_reporting.
78       'target_name': 'chrome_frame_crash_tests',
79       'type': 'none',
80       'dependencies': [
81         'crash_reporting/crash_reporting.gyp:minidump_test',
82         'crash_reporting/crash_reporting.gyp:vectored_handler_tests',
83       ],
84     },
85     {
86       # Builds our IDL file to the shared intermediate directory.
87       'target_name': 'chrome_tab_idl',
88       'type': 'none',
89       'msvs_settings': {
90         'VCMIDLTool': {
91           'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)/chrome_frame',
92         },
93       },
94       'sources': [
95         'chrome_tab.idl',
96       ],
97       # Add the output dir for those who depend on us.
98       'direct_dependent_settings': {
99         'include_dirs': ['<(SHARED_INTERMEDIATE_DIR)'],
100       },
101     },
102     {
103       'target_name': 'chrome_frame_unittests',
104       'type': 'executable',
105       'dependencies': [
106         '../base/base.gyp:test_support_base',
107         '../chrome/app/policy/cloud_policy_codegen.gyp:policy',
108         '../chrome/chrome.gyp:test_support_common',
109         '../net/net.gyp:net',
110         '../testing/gmock.gyp:gmock',
111         '../testing/gtest.gyp:gtest',
112         'chrome_frame_launcher.gyp:chrome_frame_helper_lib',
113         'chrome_frame_ie',
114         'chrome_frame_strings',
115         'chrome_tab_idl',
116         'locales/locales.gyp:*',
117       ],
118       'sources': [
119         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
120         'chrome_frame_unittest_main.cc',
121         'chrome_launcher.cc',
122         'chrome_launcher.h',
123         'chrome_launcher_unittest.cc',
124         'function_stub_unittest.cc',
125         'scoped_initialization_manager_unittest.cc',
126         'test/chrome_tab_mocks.h',
127         'test/chrome_frame_test_utils.h',
128         'test/chrome_frame_test_utils.cc',
129         'test/com_message_event_unittest.cc',
130         'test/dll_redirector_test.cc',
131         'test/exception_barrier_unittest.cc',
132         'test/html_util_unittests.cc',
133         'test/http_negotiate_unittest.cc',
134         'test/infobar_unittests.cc',
135         'test/policy_settings_unittest.cc',
136         'test/ready_mode_unittest.cc',
137         'test/registry_watcher_unittest.cc',
138         'test/simulate_input.h',
139         'test/simulate_input.cc',
140         'test/urlmon_moniker_tests.h',
141         'test/urlmon_moniker_unittest.cc',
142         'test/util_unittests.cc',
143         'test/win_event_receiver.h',
144         'test/win_event_receiver.cc',
145         'unittest_precompile.h',
146         'unittest_precompile.cc',
147         'urlmon_upload_data_stream_unittest.cc',
148         'vtable_patch_manager_unittest.cc',
149       ],
150       'include_dirs': [
151         '<(DEPTH)/breakpad/src',
152       ],
153       'resource_include_dirs': [
154         '<(INTERMEDIATE_DIR)',
155       ],
156       'conditions': [
157         # We can't instrument code for coverage if it depends on 3rd party
158         # binaries that we don't have PDBs for. See here for more details:
159         # http://connect.microsoft.com/VisualStudio/feedback/details/176188/can-not-disable-warning-lnk4099
160         ['coverage==0', {
161           'conditions': [
162             ['OS=="win"', {
163               'dependencies': [
164                 '../breakpad/breakpad.gyp:breakpad_handler',
165                 # TODO(slightlyoff): Get automation targets working on OS X
166                 '../chrome/chrome.gyp:automation',
167               ],
168             }],
169           ],
170         }],
171         ['OS=="win" and buildtype=="Official"', {
172           'configurations': {
173             'Release': {
174               'msvs_settings': {
175                 'VCCLCompilerTool': {
176                   'WholeProgramOptimization': 'false',
177                 },
178               },
179             },
180           },
181         },],
182         ['OS=="win"', {
183           'link_settings': {
184             'libraries': [
185               '-lshdocvw.lib',
186               '-loleacc.lib',
187             ],
188           },
189           'msvs_settings': {
190             'VCLinkerTool': {
191               'DelayLoadDLLs': ['shdocvw.dll'],
192             },
193           },
194           'dependencies': [
195             # TODO(slightlyoff): Get automation targets working on OS X
196             '../chrome/chrome.gyp:automation',
197             '../chrome/chrome.gyp:installer_util',
198             '../google_update/google_update.gyp:google_update',
199           ],
200           'configurations': {
201             'Debug_Base': {
202               'msvs_settings': {
203                 'VCLinkerTool': {
204                   'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
205                 },
206               },
207             },
208           },
209         }],
210       ],
211     },
212     {
213       'target_name': 'chrome_frame_tests',
214       'type': 'executable',
215       'dependencies': [
216         '../base/base.gyp:test_support_base',
217         '../chrome/chrome.gyp:browser',
218         '../chrome/chrome.gyp:common',
219         '../chrome/chrome.gyp:debugger',
220         '../chrome/chrome.gyp:renderer',
221         '../chrome/chrome.gyp:test_support_common',
222         '../chrome/chrome.gyp:utility',
223         '../chrome/installer/upgrade_test.gyp:alternate_version_generator_lib',
224         '../content/content.gyp:content_gpu',
225         '../net/net.gyp:net',
226         '../net/net.gyp:net_test_support',
227         '../testing/gmock.gyp:gmock',
228         '../testing/gtest.gyp:gtest',
229         '../third_party/iaccessible2/iaccessible2.gyp:IAccessible2Proxy',
230         '../third_party/iaccessible2/iaccessible2.gyp:iaccessible2',
231         '../third_party/libxslt/libxslt.gyp:libxslt',
232         '../url/url.gyp:url_lib',
233         'chrome_frame_ie',
234         'chrome_frame_strings',
235         'chrome_frame_utils',
236         'chrome_tab_idl',
237         'locales/locales.gyp:*',
238         'npchrome_frame',
239       ],
240       'sources': [
241         '../base/test/test_suite.h',
242         'test/automation_client_mock.cc',
243         'test/automation_client_mock.h',
244         'test/chrome_frame_test_utils.cc',
245         'test/chrome_frame_test_utils.h',
246         'test/chrome_frame_ui_test_utils.cc',
247         'test/chrome_frame_ui_test_utils.h',
248         'test/chrome_frame_automation_mock.cc',
249         'test/chrome_frame_automation_mock.h',
250         'test/delete_chrome_history_test.cc',
251         'test/dll_redirector_loading_test.cc',
252         'test/header_test.cc',
253         'test/ie_configurator.cc',
254         'test/ie_configurator.h',
255         'test/ie_event_sink.cc',
256         'test/ie_event_sink.h',
257         'test/mock_ie_event_sink_actions.h',
258         'test/mock_ie_event_sink_test.cc',
259         'test/mock_ie_event_sink_test.h',
260         'test/navigation_test.cc',
261         'test/proxy_factory_mock.cc',
262         'test/proxy_factory_mock.h',
263         'test/run_all_unittests.cc',
264         'test/simple_resource_loader_test.cc',
265         'test/simulate_input.cc',
266         'test/simulate_input.h',
267         'test/test_scrubber.cc',
268         'test/test_scrubber.h',
269         'test/test_server.cc',
270         'test/test_server.h',
271         'test/test_server_test.cc',
272         'test/test_with_web_server.cc',
273         'test/test_with_web_server.h',
274         'test/ui_test.cc',
275         'test/urlmon_moniker_tests.h',
276         'test/urlmon_moniker_integration_test.cc',
277         'test/url_request_test.cc',
278         'test/win_event_receiver.cc',
279         'test/win_event_receiver.h',
280         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_launcher_exe_version.rc',
281         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
282         'test_utils.cc',
283         'test_utils.h',
284       ],
285       'include_dirs': [
286         '<(DEPTH)/third_party/wtl/include',
287         '<(DEPTH)/breakpad/src',
288       ],
289       'resource_include_dirs': [
290         '<(INTERMEDIATE_DIR)',
291       ],
292       'conditions': [
293         ['OS=="win"', {
294           'link_settings': {
295             'libraries': [
296               '-loleacc.lib',
297             ],
298           },
299           'dependencies': [
300             '../chrome/chrome.gyp:crash_service',
301             '../chrome/chrome.gyp:automation',
302             '../chrome/chrome.gyp:installer_util',
303             '../google_update/google_update.gyp:google_update',
304           ],
305           'configurations': {
306             'Debug_Base': {
307               'msvs_settings': {
308                 'VCLinkerTool': {
309                   'LinkIncremental': '<(msvs_debug_link_nonincremental)',
310                 },
311               },
312             },
313           },
314           'conditions': [
315             ['win_use_allocator_shim==1', {
316               'dependencies': [
317                 '../base/allocator/allocator.gyp:allocator',
318               ],
319             }],
320           ],
321         }],
322       ],
323     },
324     {
325       'target_name': 'chrome_frame_perftests',
326       'type': 'executable',
327       'dependencies': [
328         '../base/base.gyp:base',
329         '../base/base.gyp:base_i18n',
330         '../base/base.gyp:test_support_base',
331         '../chrome/chrome.gyp:browser',
332         '../chrome/chrome.gyp:common',
333         '../chrome/chrome.gyp:debugger',
334         '../chrome/chrome.gyp:image_pre_reader',
335         '../chrome/chrome.gyp:test_support_common',
336         '../chrome/chrome.gyp:test_support_ui',
337         '../chrome/chrome.gyp:utility',
338         '../chrome/test/perf/perf_test.gyp:*',
339         '../content/content.gyp:content_gpu',
340         '../testing/gmock.gyp:gmock',
341         '../testing/gtest.gyp:gtest',
342         '../third_party/libxml/libxml.gyp:libxml',
343         '../third_party/libxslt/libxslt.gyp:libxslt',
344         '../url/url.gyp:url_lib',
345         'chrome_frame_ie',
346         'chrome_frame_strings',
347         'chrome_frame_utils',
348         'chrome_tab_idl',
349         'locales/locales.gyp:*',
350         'npchrome_frame',
351       ],
352       'sources': [
353         '../base/test/perf_test_suite.h',
354         '../base/test/test_file_util.h',
355         '../chrome/test/base/chrome_process_util.cc',
356         '../chrome/test/base/chrome_process_util.h',
357         '../chrome/test/ui/ui_test.cc',
358         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
359         'test/chrome_frame_test_utils.cc',
360         'test/chrome_frame_test_utils.h',
361         'test/perf/chrome_frame_perftest.cc',
362         'test/perf/chrome_frame_perftest.h',
363         'test/perf/run_all.cc',
364         'test/perf/silverlight.cc',
365         'test/simulate_input.cc',
366         'test/simulate_input.h',
367         'test_utils.cc',
368         'test_utils.h',
369         'test/win_event_receiver.cc',
370         'test/win_event_receiver.h',
371       ],
372       'include_dirs': [
373         '<(DEPTH)/third_party/wtl/include',
374       ],
375       'conditions': [
376         ['OS=="win"', {
377           'configurations': {
378             'Debug_Base': {
379               'msvs_settings': {
380                 'VCLinkerTool': {
381                   'LinkIncremental': '<(msvs_debug_link_nonincremental)',
382                 },
383               },
384             },
385           },
386           'link_settings': {
387             'libraries': [
388               '-loleacc.lib',
389             ],
390           },
391           'dependencies': [
392             '../breakpad/breakpad.gyp:breakpad_handler',
393             '../chrome/chrome.gyp:automation',
394             '../chrome/chrome.gyp:crash_service',
395             '../chrome/chrome.gyp:installer_util',
396             '../google_update/google_update.gyp:google_update',
397           ],
398           'sources': [
399             '../base/test/test_file_util_win.cc',
400           ]
401         }],
402       ],
403     },
405     {
406       'target_name': 'chrome_frame_net_tests',
407       'type': 'executable',
408       'dependencies': [
409         '../base/base.gyp:test_support_base',
410         '../chrome/chrome.gyp:browser',
411         '../chrome/chrome.gyp:debugger',
412         '../chrome/chrome.gyp:renderer',
413         '../chrome/chrome.gyp:test_support_common',
414         '../chrome/chrome_resources.gyp:chrome_resources',
415         '../content/content.gyp:content_app_both',
416         '../content/content.gyp:content_gpu',
417         '../content/content_shell_and_tests.gyp:test_support_content',
418         '../net/net.gyp:net',
419         '../net/net.gyp:net_test_support',
420         '../skia/skia.gyp:skia',
421         '../sync/sync.gyp:sync',
422         '../testing/gtest.gyp:gtest',
423         '../third_party/icu/icu.gyp:icui18n',
424         '../third_party/icu/icu.gyp:icuuc',
425         '../ui/ui.gyp:ui_resources',
426         'chrome_frame_ie',
427         'chrome_tab_idl',
428         'npchrome_frame',
429       ],
430       'include_dirs': [
431         '<(DEPTH)/breakpad/src',
432       ],
433       'sources': [
434         '../net/url_request/url_request_unittest.cc',
435         'test/chrome_frame_test_utils.cc',
436         'test/chrome_frame_test_utils.h',
437         'test/ie_configurator.cc',
438         'test/ie_configurator.h',
439         'test/simulate_input.cc',
440         'test/simulate_input.h',
441         'test/test_server.cc',
442         'test/test_server.h',
443         'test/win_event_receiver.cc',
444         'test/win_event_receiver.h',
445         'test/net/fake_external_tab.cc',
446         'test/net/fake_external_tab.h',
447         'test/net/test_automation_provider.cc',
448         'test/net/test_automation_provider.h',
449         'test/net/test_automation_resource_message_filter.cc',
450         'test/net/test_automation_resource_message_filter.h',
451         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
452         'test_utils.cc',
453         'test_utils.h',
454       ],
455       'conditions': [
456         ['OS=="win"', {
457           'link_settings': {
458             'libraries': [
459               '-loleacc.lib',
460             ],
461           },
462           'msvs_settings': {
463             'VCLinkerTool': {
464               'DelayLoadDLLs': ['prntvpt.dll'],
465             },
466           },
467           'dependencies': [
468             '../breakpad/breakpad.gyp:breakpad_handler',
469             '../chrome/chrome.gyp:automation',
470             '../chrome/chrome.gyp:crash_service',
471             '../chrome/chrome.gyp:chrome_version_resources',
472             '../chrome/chrome.gyp:installer_util',
473             '../google_update/google_update.gyp:google_update',
474           ],
475           'configurations': {
476             'Debug_Base': {
477               'msvs_settings': {
478                 'VCLinkerTool': {
479                   'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
480                 },
481               },
482             },
483           },
484         }],
485       ],
486     },
488     {
489       'target_name': 'chrome_frame_reliability_tests',
490       'type': 'executable',
491       'dependencies': [
492         '../base/base.gyp:base',
493         '../base/base.gyp:test_support_base',
494         '../chrome/chrome.gyp:browser',
495         '../chrome/chrome.gyp:debugger',
496         '../chrome/chrome.gyp:renderer',
497         '../chrome/chrome.gyp:test_support_common',
498         '../content/content.gyp:content_gpu',
499         '../testing/gmock.gyp:gmock',
500         '../testing/gtest.gyp:gtest',
501         'chrome_frame_ie',
502         'chrome_frame_strings',
503         'chrome_tab_idl',
504         'locales/locales.gyp:*',
505       ],
506       'sources': [
507         'test/reliability/run_all_unittests.cc',
508         'test/reliability/page_load_test.cc',
509         'test/reliability/page_load_test.h',
510         'test/reliability/reliability_test_suite.h',
511         'test/chrome_frame_test_utils.cc',
512         'test/chrome_frame_test_utils.h',
513         'test/ie_event_sink.cc',
514         'test/ie_event_sink.h',
515         'test_utils.cc',
516         'test_utils.h',
517         'test/simulate_input.cc',
518         'test/simulate_input.h',
519         'test/win_event_receiver.cc',
520         'test/win_event_receiver.h',
521         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
522         '../base/test/test_file_util_win.cc',
523         '../chrome/test/automation/proxy_launcher.cc',
524         '../chrome/test/automation/proxy_launcher.h',
525         '../chrome/test/base/chrome_process_util.cc',
526         '../chrome/test/base/chrome_process_util.h',
527         '../chrome/test/ui/ui_test.cc',
528         '../chrome/test/ui/ui_test.h',
529         '../chrome/test/ui/ui_test_suite.cc',
530         '../chrome/test/ui/ui_test_suite.h',
531       ],
532       'resource_include_dirs': [
533         '<(INTERMEDIATE_DIR)',
534       ],
535       'conditions': [
536         ['OS=="win"', {
537           'link_settings': {
538             'libraries': [
539               '-loleacc.lib',
540             ],
541           },
542           'dependencies': [
543             # TODO(slightlyoff): Get automation targets working on OS X
544             '../chrome/chrome.gyp:automation',
545             '../chrome/chrome.gyp:installer_util',
546             '../google_update/google_update.gyp:google_update',
547           ],
548           'configurations': {
549             'Debug_Base': {
550               'msvs_settings': {
551                 'VCLinkerTool': {
552                   'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
553                 },
554               },
555             },
556           },
557         }],
558       ],
559     },
560     {
561       'target_name': 'chrome_frame_qa_tests',
562       'type': 'executable',
563       'dependencies': [
564         '../base/base.gyp:test_support_base',
565         '../chrome/chrome.gyp:test_support_common',
566         '../net/net.gyp:net',
567         '../net/net.gyp:net_test_support',
568         '../testing/gmock.gyp:gmock',
569         '../testing/gtest.gyp:gtest',
570         '../third_party/iaccessible2/iaccessible2.gyp:iaccessible2',
571         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
572         '../url/url.gyp:url_lib',
573         'chrome_frame_ie',
574         'chrome_frame_strings',
575         'chrome_tab_idl',
576         'locales/locales.gyp:*',
577         'npchrome_frame',
578       ],
579       'sources': [
580         '../base/test/test_suite.h',
581         'test/chrome_frame_test_utils.cc',
582         'test/chrome_frame_test_utils.h',
583         'test/chrome_frame_ui_test_utils.cc',
584         'test/chrome_frame_ui_test_utils.h',
585         'test/external_sites_test.cc',
586         'test/ie_configurator.cc',
587         'test/ie_configurator.h',
588         'test/ie_event_sink.cc',
589         'test/ie_event_sink.h',
590         'test/mock_ie_event_sink_actions.h',
591         'test/mock_ie_event_sink_test.cc',
592         'test/mock_ie_event_sink_test.h',
593         'test/run_all_unittests.cc',
594         'test/simulate_input.cc',
595         'test/simulate_input.h',
596         'test/test_scrubber.cc',
597         'test/test_scrubber.h',
598         'test/test_server.cc',
599         'test/test_server.h',
600         'test/test_with_web_server.cc',
601         'test/test_with_web_server.h',
602         'test/win_event_receiver.cc',
603         'test/win_event_receiver.h',
604         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
605         'chrome_tab.idl',
606         'test_utils.cc',
607         'test_utils.h',
608       ],
609       'include_dirs': [
610         '<(DEPTH)/third_party/wtl/include',
611         '<(DEPTH)/breakpad/src',
612       ],
613       'resource_include_dirs': [
614         '<(INTERMEDIATE_DIR)',
615       ],
616       'conditions': [
617         ['OS=="win"', {
618           'link_settings': {
619             'libraries': [
620               '-loleacc.lib',
621             ],
622           },
623           'dependencies': [
624             '../chrome/chrome.gyp:crash_service',
625             '../chrome/chrome.gyp:automation',
626             '../chrome/chrome.gyp:installer_util',
627             '../google_update/google_update.gyp:google_update',
628           ]
629         }],
630       ],
631     },
632     {
633       'target_name': 'chrome_frame_strings',
634       'type': 'none',
635       'variables': {
636         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome_frame',
637       },
638       'actions': [
639         {
640           'action_name': 'chrome_frame_resources',
641           'variables': {
642             'grit_grd_file': 'resources/chrome_frame_resources.grd',
643           },
644           'includes': [ '../build/grit_action.gypi' ],
645         },
646         {
647           'action_name': 'chrome_frame_dialogs',
648           'variables': {
649             'grit_grd_file': 'resources/chrome_frame_dialogs.grd',
650           },
651           'includes': [ '../build/grit_action.gypi' ],
652         },
653       ],
654       'includes': [ '../build/grit_target.gypi' ],
655     },
656     {
657       'target_name': 'chrome_frame_utils',
658        # The intent is that shared util code can be built into a separate lib.
659       'type': 'static_library',
660       'dependencies': [
661         '../base/base.gyp:base_i18n',
662         '../breakpad/breakpad.gyp:breakpad_handler',
663         '../chrome/chrome.gyp:chrome_version_header',
664       ],
665       'include_dirs': [
666         # To allow including "version.h"
667         # TODO(grt): remove this as per http://crbug.com/99368
668         '<(SHARED_INTERMEDIATE_DIR)',
669       ],
670       'sources': [
671         'crash_server_init.cc',
672         'crash_server_init.h',
673         'simple_resource_loader.cc',
674         'simple_resource_loader.h',
675       ],
676     },
677     {
678       'target_name': 'chrome_frame_ie',
679       'type': 'static_library',
680       'dependencies': [
681         '../chrome/app/policy/cloud_policy_codegen.gyp:policy',
682         '../chrome/chrome.gyp:common',
683         '../chrome/chrome.gyp:utility',
684         '../content/content.gyp:content_common',
685         '../net/net.gyp:net',
686         '../third_party/libxml/libxml.gyp:libxml',
687         '../url/url.gyp:url_lib',
688         '../webkit/common/user_agent/webkit_user_agent.gyp:user_agent',
689         'chrome_frame_common',
690         'chrome_frame_strings',
691         'chrome_frame_utils',
692         'chrome_tab_idl',
693         'locales/locales.gyp:*',
694       ],
695       'sources': [
696         'bho.cc',
697         'bho.h',
698         'bho.rgs',
699         'bind_context_info.cc',
700         'bind_context_info.h',
701         'bind_status_callback_impl.cc',
702         'bind_status_callback_impl.h',
703         'buggy_bho_handling.cc',
704         'buggy_bho_handling.h',
705         'chrome_active_document.cc',
706         'chrome_active_document.h',
707         'chrome_active_document.rgs',
708         'chrome_frame_activex.cc',
709         'chrome_frame_activex.h',
710         'chrome_frame_activex.rgs',
711         'chrome_frame_activex_base.h',
712         'chrome_protocol.cc',
713         'chrome_protocol.h',
714         'chrome_protocol.rgs',
715         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
716         'com_message_event.cc',
717         'com_message_event.h',
718         'com_type_info_holder.cc',
719         'com_type_info_holder.h',
720         'delete_chrome_history.cc',
721         'delete_chrome_history.h',
722         'dll_redirector.cc',
723         'dll_redirector.h',
724         'exception_barrier.cc',
725         'exception_barrier.h',
726         'exception_barrier_lowlevel.asm',
727         'extra_system_apis.h',
728         'find_dialog.cc',
729         'find_dialog.h',
730         'function_stub.cc',
731         'function_stub.h',
732         'html_utils.h',
733         'html_utils.cc',
734         'http_negotiate.cc',
735         'http_negotiate.h',
736         'iids.cc',
737         'infobars/infobar_content.h',
738         'infobars/internal/displaced_window_manager.cc',
739         'infobars/internal/displaced_window_manager.h',
740         'infobars/internal/host_window_manager.cc',
741         'infobars/internal/host_window_manager.h',
742         'infobars/internal/infobar_window.cc',
743         'infobars/internal/infobar_window.h',
744         'infobars/internal/subclassing_window_with_delegate.h',
745         'infobars/infobar_manager.h',
746         'infobars/infobar_manager.cc',
747         'metrics_service.cc',
748         'metrics_service.h',
749         'pin_module.cc',
750         'pin_module.h',
751         'policy_settings.cc',
752         'policy_settings.h',
753         'protocol_sink_wrap.cc',
754         'protocol_sink_wrap.h',
755         'ready_mode/internal/ready_mode_state.h',
756         'ready_mode/internal/ready_mode_web_browser_adapter.cc',
757         'ready_mode/internal/ready_mode_web_browser_adapter.h',
758         'ready_mode/internal/ready_prompt_content.cc',
759         'ready_mode/internal/ready_prompt_content.h',
760         'ready_mode/internal/ready_prompt_window.cc',
761         'ready_mode/internal/ready_prompt_window.h',
762         'ready_mode/internal/registry_ready_mode_state.cc',
763         'ready_mode/internal/registry_ready_mode_state.h',
764         'ready_mode/internal/url_launcher.h',
765         'ready_mode/ready_mode.cc',
766         'ready_mode/ready_mode.h',
767         'register_bho.rgs',
768         'registry_list_preferences_holder.cc',
769         'registry_list_preferences_holder.h',
770         'stream_impl.cc',
771         'stream_impl.h',
772         'turndown_prompt/reshow_state.cc',
773         'turndown_prompt/reshow_state.h',
774         'turndown_prompt/turndown_prompt.cc',
775         'turndown_prompt/turndown_prompt.h',
776         'turndown_prompt/turndown_prompt_content.cc',
777         'turndown_prompt/turndown_prompt_content.h',
778         'turndown_prompt/turndown_prompt_window.cc',
779         'turndown_prompt/turndown_prompt_window.h',
780         'urlmon_bind_status_callback.h',
781         'urlmon_bind_status_callback.cc',
782         'urlmon_moniker.h',
783         'urlmon_moniker.cc',
784         'urlmon_url_request.cc',
785         'urlmon_url_request.h',
786         'urlmon_url_request_private.h',
787         'urlmon_upload_data_stream.cc',
788         'urlmon_upload_data_stream.h',
789         'utils.h',
790         'utils.cc',
791         'vtable_patch_manager.cc',
792         'vtable_patch_manager.h',
793         '../third_party/active_doc/in_place_menu.h',
794         '../third_party/active_doc/ole_document_impl.h',
795       ],
796       'include_dirs': [
797         '<(DEPTH)/third_party/wtl/include',
798       ],
799       'conditions': [
800         ['OS=="win"', {
801           # NOTE(slightlyoff):
802           #   this is a fix for the include dirs length limit on the resource
803           #   compiler, tickled by the xul_include_dirs variable
804           'resource_include_dirs': [
805             '<(INTERMEDIATE_DIR)'
806           ],
807           'dependencies': [
808             '../breakpad/breakpad.gyp:breakpad_handler',
809             '../chrome/chrome.gyp:automation',
810             # Installer
811             '../chrome/chrome.gyp:installer_util',
812             '../google_update/google_update.gyp:google_update',
813             # Make the archive build happy.
814             '../sync/sync.gyp:sync',
815             # Crash Reporting
816             'crash_reporting/crash_reporting.gyp:crash_report',
817           ],
818           'link_settings': {
819             'libraries': ['-lurlmon.lib'],
820           },
821         },],
822       ],
823       'rules': [
824         {
825           'rule_name': 'Assemble',
826           'extension': 'asm',
827           'inputs': [],
828           'outputs': [
829             '<(INTERMEDIATE_DIR)/<(RULE_INPUT_ROOT).obj',
830           ],
831           'action': [
832             'ml',
833             '/safeseh',
834             '/Fo', '<(INTERMEDIATE_DIR)\<(RULE_INPUT_ROOT).obj',
835             '/c', '<(RULE_INPUT_PATH)',
836           ],
837           'process_outputs_as_sources': 1,
838           'message':
839               'Assembling <(RULE_INPUT_PATH) to ' \
840               '<(INTERMEDIATE_DIR)\<(RULE_INPUT_ROOT).obj.',
841         },
842       ],
843       'msvs_settings': {
844         'VCLinkerTool': {
845           'AdditionalOptions': [
846             '/safeseh',
847           ],
848         },
849       },
850     },
851     {
852       'target_name': 'chrome_frame_common',
853       'type': 'static_library',
854       'sources': [
855         'chrome_frame_automation.h',
856         'chrome_frame_automation.cc',
857         'chrome_frame_delegate.h',
858         'chrome_frame_delegate.cc',
859         'chrome_frame_plugin.cc',
860         'chrome_frame_plugin.h',
861         'chrome_launcher_utils.cc',
862         'chrome_launcher_utils.h',
863         'custom_sync_call_context.cc',
864         'custom_sync_call_context.h',
865         'navigation_constraints.h',
866         'navigation_constraints.cc',
867         'plugin_url_request.h',
868         'plugin_url_request.cc',
869         'sync_msg_reply_dispatcher.h',
870         'sync_msg_reply_dispatcher.cc',
871         'task_marshaller.h',
872         'task_marshaller.cc',
873       ],
874       'dependencies': [
875         '../base/base.gyp:base',
876         '../net/net.gyp:net',
877       ],
878       'export_dependent_settings': [
879         '../base/base.gyp:base',
880       ],
881     },
882     {
883       'target_name': 'npchrome_frame',
884       'type': 'shared_library',
885       'dependencies': [
886         '../base/base.gyp:base',
887         '../chrome/chrome.gyp:chrome',
888         '../chrome/chrome.gyp:chrome_dll',
889         '../chrome/chrome.gyp:chrome_version_resources',
890         '../chrome/chrome.gyp:common',
891         '../url/url.gyp:url_lib',
892         'chrome_frame_ie',
893         'chrome_frame_launcher.gyp:chrome_frame_helper',
894         'chrome_frame_launcher.gyp:chrome_frame_helper_dll',
895         'chrome_frame_launcher.gyp:chrome_launcher',
896         'chrome_frame_strings',
897         'chrome_frame_utils',
898         'chrome_frame_version_resources',
899         'chrome_tab_idl',
900         'locales/locales.gyp:*',
901       ],
902       'defines': [
903         '_WINDLL',
904       ],
905       'sources': [
906         'chrome_frame_elevation.rgs',
907         'chrome_frame_reporting.cc',
908         'chrome_frame_reporting.h',
909         'chrome_tab.cc',
910         'chrome_tab.def',
911         'scoped_initialization_manager.h',
912         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_tab.h',
913         '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/npchrome_frame_dll_version.rc',
914         # FIXME(slightlyoff): For chrome_tab.tlb. Giant hack until we can
915         #   figure out something more gyp-ish.
916         'resources/tlb_resource.rc',
917         'chrome_tab.rgs',
918         'resource.h',
919       ],
920       'conditions': [
921         ['OS=="win"', {
922           # NOTE(slightlyoff):
923           #   this is a fix for the include dirs length limit on the resource
924           #   compiler, tickled by the xul_include_dirs variable
925           'resource_include_dirs': [
926             '<(INTERMEDIATE_DIR)'
927           ],
928           'sources': [
929             '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_resources.rc',
930           ],
931           'dependencies': [
932             '../breakpad/breakpad.gyp:breakpad_handler',
933             '../chrome/chrome.gyp:automation',
934             # Installer
935             '../chrome/chrome.gyp:installer_util',
936             '../google_update/google_update.gyp:google_update',
937             # Make the archive build happy.
938             '../sync/sync.gyp:sync',
939             # Crash Reporting
940             'crash_reporting/crash_reporting.gyp:crash_report',
941           ],
942           'link_settings': {
943             'libraries': [
944               '-lshdocvw.lib',
945             ],
946           },
947           'msvs_settings': {
948             'VCLinkerTool': {
949               'DelayLoadDLLs': [],
950               'BaseAddress': '0x33000000',
951               # Set /SUBSYSTEM:WINDOWS (for consistency).
952               'SubSystem': '2',
953             },
954             'VCManifestTool': {
955               'AdditionalManifestFiles': [
956                 '$(ProjectDir)\\resources\\npchrome_frame.dll.manifest',
957               ],
958             },
959           },
960         }],
961       ],
962     },
963   ],
964   'conditions': [
965     # To enable the coverage targets, do
966     #    GYP_DEFINES='coverage=1' gclient sync
967     ['coverage!=0',
968       { 'targets': [
969         {
970           # Coverage BUILD AND RUN.
971           # Not named coverage_build_and_run for historical reasons.
972           'target_name': 'gcf_coverage',
973           'dependencies': [ 'gcf_coverage_build', 'gcf_coverage_run' ],
974           # do NOT place this in the 'all' list; most won't want it.
975           'suppress_wildcard': 1,
976           'type': 'none',
977           'actions': [
978             {
979               'message': 'Coverage is now complete.',
980               # MSVS must have an input file and an output file.
981               'inputs': [ '<(PRODUCT_DIR)/gcf_coverage.info' ],
982               'outputs': [ '<(PRODUCT_DIR)/gcf_coverage-build-and-run.stamp' ],
983               'action_name': 'gcf_coverage',
984               # Wish gyp had some basic builtin commands (e.g. 'touch').
985               'action': [ 'python', '-c',
986                           'import os; ' \
987                           'open(' \
988                           '\'<(PRODUCT_DIR)\' + os.path.sep + ' \
989                           '\'gcf_coverage-build-and-run.stamp\'' \
990                           ', \'w\').close()' ],
991               # Use outputs of this action as inputs for the main target build.
992               # Seems as a misnomer but makes this happy on Linux (scons).
993               'process_outputs_as_sources': 1,
994             },
995           ],
996         },
997         # Coverage BUILD.  Compile only; does not run the bundles.
998         # Intended as the build phase for our coverage bots.
999         #
1000         # Builds unit test bundles needed for coverage.
1001         # Outputs this list of bundles into gcf_coverage_bundles.py.
1002         #
1003         # If you want to both build and run coverage from your IDE,
1004         # use the 'gcf_coverage' target.
1005         {
1006           'target_name': 'gcf_coverage_build',
1007           'suppress_wildcard': 1,
1008           'type': 'none',
1009           'dependencies': [
1010             # Some tests are disabled because they depend on browser.lib which
1011             # has some trouble to link with instrumentation. Until this is
1012             # fixed on the Chrome side we won't get complete coverage from
1013             # our tests but we at least get the process rolling...
1014             # TODO(mad): FIX THIS!
1015             #'chrome_frame_net_tests',
1016             #'chrome_frame_reliability_tests',
1018             # Other tests depend on Chrome bins being available when they run.
1019             # Those should be re-enabled as soon as we setup the build slave to
1020             # also build (or download an archive of) Chrome, even it it isn't
1021             # instrumented itself.
1022             # TODO(mad): FIX THIS!
1023             #'chrome_frame_perftests',
1024             #'chrome_frame_tests',
1026             'chrome_frame_unittests',
1027           ],  # 'dependencies'
1028           'actions': [
1029             {
1030               # TODO(jrg):
1031               # Technically I want inputs to be the list of
1032               # executables created in <@(_dependencies) but use of
1033               # that variable lists the dep by dep name, not their
1034               # output executable name.
1035               # Is there a better way to force this action to run, always?
1036               #
1037               # If a test bundle is added to this gcf_coverage_build target it
1038               # necessarily means this file (chrome_frame.gyp) is changed,
1039               # so the action is run (gcf_coverage_bundles.py is generated).
1040               # Exceptions to that rule are theoretically possible
1041               # (e.g. re-gyp with a GYP_DEFINES set).
1042               # Else it's the same list of bundles as last time.  They are
1043               # built (since on the deps list) but the action may not run.
1044               # For now, things work, but it's less than ideal.
1045               'inputs': [ 'chrome_frame.gyp' ],
1046               'outputs': [ '<(PRODUCT_DIR)/gcf_coverage_bundles.py' ],
1047               'action_name': 'gcf_coverage_build',
1048               'action': [ 'python', '-c',
1049                           'import os; '
1050                           'f = open(' \
1051                           '\'<(PRODUCT_DIR)\' + os.path.sep + ' \
1052                           '\'gcf_coverage_bundles.py\'' \
1053                           ', \'w\'); ' \
1054                           'deplist = \'' \
1055                           '<@(_dependencies)' \
1056                           '\'.split(\' \'); ' \
1057                           'f.write(str(deplist)); ' \
1058                           'f.close()'],
1059               # Use outputs of this action as inputs for the main target build.
1060               # Seems as a misnomer but makes this happy on Linux (scons).
1061               'process_outputs_as_sources': 1,
1062             },
1063           ],
1064         },
1065         # Coverage RUN.  Does not actually compile the bundles (though it
1066         # depends on the gcf_coverage_build step which will do it).
1067         # This target mirrors the run_coverage_bundles buildbot phase.
1068         # If you update this command update the mirror in
1069         # $BUILDBOT/scripts/master/factory/chromium_commands.py.
1070         # If you want both build and run, use the 'gcf_coverage' target which
1071         # adds a bit more magic to identify if we need to run or not.
1072         {
1073           'target_name': 'gcf_coverage_run',
1074           'dependencies': [ 'gcf_coverage_build' ],
1075           'suppress_wildcard': 1,
1076           'type': 'none',
1077           'actions': [
1078             {
1079               # MSVS must have an input file and an output file.
1080               'inputs': [ '<(PRODUCT_DIR)/gcf_coverage_bundles.py' ],
1081               'outputs': [ '<(PRODUCT_DIR)/gcf_coverage.info' ],
1082               'action_name': 'gcf_coverage_run',
1083               'action': [ 'python',
1084                           '../tools/code_coverage/coverage_posix.py',
1085                           '--directory',
1086                           '<(PRODUCT_DIR)',
1087                           '--src_root',
1088                           '.',
1089                           '--bundles',
1090                           '<(PRODUCT_DIR)/gcf_coverage_bundles.py',
1091                         ],
1092               # Use outputs of this action as inputs for the main target build.
1093               # Seems as a misnomer but makes this happy on Linux (scons).
1094               'process_outputs_as_sources': 1,
1095             },
1096           ],
1097         },
1098       ],
1099     }, ],  # 'coverage!=0'
1100   ],  # 'conditions'