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