From a68dcfc089b02e370438fd8b96299dfca7ede296 Mon Sep 17 00:00:00 2001 From: Roger Wang Date: Tue, 21 Feb 2017 14:45:27 +0800 Subject: [PATCH 1/2] nwjs master --- .gitignore | 2 + .gn | 1 + BUILD.gn | 1 + DEPS | 22 +- apps/app_lifetime_monitor.cc | 2 + apps/app_load_service.cc | 4 + apps/launcher.cc | 7 +- base/BUILD.gn | 2 + base/base_switches.cc | 1 + base/base_switches.h | 1 + base/command_line.cc | 79 +- base/command_line.h | 15 + base/files/file_util_posix.cc | 2 +- base/message_loop/message_loop.cc | 3 + base/message_loop/message_loop.h | 45 +- base/message_loop/message_pump_mac.h | 8 +- base/message_loop/message_pump_mac.mm | 4 + base/message_loop/message_pump_uv.cc | 182 +++ base/message_loop/message_pump_uv.h | 50 + base/message_loop/message_pumpuv_mac.h | 94 ++ base/message_loop/message_pumpuv_mac.mm | 370 +++++ base/native_library_posix.cc | 2 +- base/process/launch_posix.cc | 2 + base/threading/thread_restrictions.h | 9 + build/compiler_version.py | 2 +- build/config/BUILD.gn | 3 + build/config/BUILDCONFIG.gn | 2 + build/config/allocator.gni | 2 +- build/config/chrome_build.gni | 2 +- build/config/compiler/BUILD.gn | 3 +- build/config/features.gni | 7 +- build/config/nacl/rules.gni | 6 +- build/gyp_chromium.py | 1 - build/toolchain/toolchain.gni | 6 +- build/util/version.gypi | 20 + build/win/reorder-imports.py | 12 +- chrome/BUILD.gn | 160 +- chrome/app/app-Info.plist | 2 +- chrome/app/chrome_crash_reporter_client.cc | 7 +- .../app/chrome_crash_reporter_client_win.cc | 4 +- chrome/app/chrome_dll.ver | 4 +- chrome/app/chrome_exe.ver | 4 +- chrome/app/chrome_exe_main_mac.c | 2 +- chrome/app/chrome_exe_main_win.cc | 8 + chrome/app/chrome_main.cc | 2 +- chrome/app/chrome_main_delegate.cc | 62 +- chrome/app/chrome_version.rc.version | 5 - chrome/app/chromium_strings.grd | 20 +- chrome/app/framework.order | 261 ++++ chrome/app/main_dll_loader_win.cc | 15 +- chrome/app/nibs/MainMenu.xib | 1349 ++++++++++------- chrome/app/nw.dll.manifest | 8 + chrome/app/nw.exe.manifest | 20 + chrome/app/theme/chromium/BRANDING | 16 +- chrome/app/theme/chromium/mac/app.icns | Bin 111762 -> 378456 bytes chrome/app/theme/chromium/mac/document.icns | Bin 97120 -> 378456 bytes .../app/theme/chromium/product_logo_128.png | Bin 8366 -> 22073 bytes chrome/app/theme/chromium/product_logo_22.png | Bin 1055 -> 1539 bytes .../theme/chromium/product_logo_22_mono.png | Bin 537 -> 1539 bytes chrome/app/theme/chromium/product_logo_24.png | Bin 1022 -> 1728 bytes .../app/theme/chromium/product_logo_256.png | Bin 21369 -> 71833 bytes chrome/app/theme/chromium/product_logo_32.xpm | 563 +++++++ chrome/app/theme/chromium/product_logo_64.png | Bin 3634 -> 7342 bytes chrome/app/theme/chromium/win/chromium.ico | Bin 46741 -> 270398 bytes chrome/app/version_assembly/BUILD.gn | 3 +- .../version_assembly_manifest.template | 4 +- chrome/browser/BUILD.gn | 28 +- chrome/browser/app_controller_mac.mm | 26 +- .../apps/app_shim/app_shim_handler_mac.cc | 7 +- .../extension_app_shim_handler_mac.cc | 7 +- .../app_shim/extension_app_shim_handler_mac.h | 2 +- .../browser/apps/app_window_registry_util.cc | 15 +- .../browser/apps/app_window_registry_util.h | 4 +- .../background_application_list_model.cc | 4 +- chrome/browser/browser_about_handler.cc | 2 +- chrome/browser/browser_process.h | 3 +- chrome/browser/browser_process_impl.cc | 11 + chrome/browser/browser_process_impl.h | 2 + chrome/browser/browser_resources.grd | 1 + .../browsing_data/browsing_data_remover.cc | 7 +- chrome/browser/chrome_browser_main.cc | 26 +- chrome/browser/chrome_browser_main_mac.mm | 8 + .../browser/chrome_content_browser_client.cc | 59 +- .../browser/chrome_content_browser_client.h | 1 + .../file_type_policies_component_installer.cc | 2 + ...nt_settings_internal_extension_provider.cc | 2 +- .../browser/devtools/devtools_ui_bindings.cc | 19 +- chrome/browser/devtools/devtools_window.cc | 35 +- chrome/browser/devtools/devtools_window.h | 17 +- .../chrome_download_manager_delegate.cc | 4 + .../browser/download/download_browsertest.cc | 2 + chrome/browser/download/download_commands.cc | 2 + .../download/download_danger_prompt.cc | 8 +- chrome/browser/download/download_prefs.cc | 7 +- .../download/download_target_determiner.cc | 5 +- chrome/browser/extensions/BUILD.gn | 12 +- .../extensions/activity_log/activity_log.cc | 2 +- .../content_settings_store.cc | 7 + .../extensions/api/cookies/cookies_api.cc | 7 +- .../desktop_capture/desktop_capture_api.cc | 6 +- .../language_settings_private_api.cc | 11 +- .../api/preference/preference_api.cc | 6 +- .../api/preference/preference_helpers.cc | 7 +- .../extensions/api/tabs/ash_panel_contents.cc | 3 +- .../extensions/api/tabs/ash_panel_contents.h | 7 +- .../browser/extensions/api/tabs/tabs_api.cc | 6 +- ...browser_context_keyed_service_factories.cc | 3 + ...me_component_extension_resource_manager.cc | 4 +- ..._content_browser_client_extensions_part.cc | 5 + .../chrome_content_verifier_delegate.cc | 3 + .../chrome_content_verifier_delegate.h | 1 + .../chrome_extension_web_contents_observer.cc | 37 +- .../chrome_extension_web_contents_observer.h | 8 + .../chrome_extensions_browser_client.cc | 3 + .../extensions/chrome_url_request_util.cc | 24 + chrome/browser/extensions/component_loader.cc | 155 +- chrome/browser/extensions/component_loader.h | 26 +- .../extensions/component_loader_unittest.cc | 41 +- .../content_verifier_browsertest.cc | 2 +- .../extensions/extension_install_checker.cc | 3 +- .../browser/extensions/extension_service.cc | 43 +- chrome/browser/extensions/extension_service.h | 3 +- .../extensions/extension_system_factory.cc | 2 +- .../extensions/extension_system_impl.cc | 8 +- .../browser/extensions/extension_tab_util.cc | 13 +- .../extension_webkit_preferences.cc | 15 +- .../global_shortcut_listener_win.cc | 2 + .../global_shortcut_listener_x11.cc | 2 + .../standard_management_policy_provider.cc | 1 + .../extensions/test_extension_system.cc | 2 +- chrome/browser/feedback/show_feedback_page.cc | 2 + chrome/browser/file_select_helper.cc | 8 +- chrome/browser/file_select_helper.h | 1 + chrome/browser/io_thread.cc | 6 +- chrome/browser/lifetime/keep_alive_registry.h | 2 + ...hrome_resource_dispatcher_host_delegate.cc | 4 + chrome/browser/mac/master_prefs.mm | 4 +- .../router/media_router_dialog_controller.cc | 4 +- .../media/router/media_router_ui_service.cc | 10 +- .../media/router/media_router_ui_service.h | 3 +- .../presentation_service_delegate_impl.cc | 4 + .../webrtc/desktop_capture_access_handler.cc | 6 + .../webrtc/media_stream_capture_indicator.cc | 2 + .../chrome_metrics_services_manager_client.cc | 7 + chrome/browser/net/predictor.cc | 4 +- .../notification_conversion_helper.cc | 2 +- .../web_notification_delegate.cc | 2 +- chrome/browser/nwjs_resources.grd | 493 ++++++ .../chrome_password_manager_client.cc | 4 + .../native_backend_gnome_x.cc | 2 +- .../native_backend_libsecret.cc | 2 +- .../permissions/permission_uma_util.cc | 3 +- .../plugins/chrome_plugin_service_filter.cc | 2 +- .../plugins/plugin_info_message_filter.cc | 23 +- chrome/browser/plugins/plugin_observer.cc | 6 +- chrome/browser/policy/policy_browsertest.cc | 3 + chrome/browser/prefs/browser_prefs.cc | 4 +- chrome/browser/process_singleton_posix.cc | 68 +- chrome/browser/process_singleton_win.cc | 1 + ...hrome_browser_main_extra_parts_profiles.cc | 2 +- chrome/browser/profiles/profile_impl.cc | 2 + .../browser/profiles/profile_impl_io_data.cc | 14 + chrome/browser/profiles/profile_info_cache.cc | 2 +- .../context_menu_content_type_platform_app.cc | 18 +- .../render_view_context_menu.cc | 28 +- chrome/browser/renderer_preferences_util.cc | 5 + .../component_extension_resources.grd | 8 + chrome/browser/resources/empty.css | 0 chrome/browser/resources/empty.html | 0 chrome/browser/resources/empty.js | 0 chrome/browser/resources/empty.json | 0 chrome/browser/resources/empty.png | 0 chrome/browser/resources/nwjs/default.js | 46 + .../resources/nwjs_default_app/main.js | 7 + .../resources/nwjs_default_app/manifest.json | 17 + .../resources/nwjs_default_app/nw_blank.html | 74 + chrome/browser/resources/pdf/pdf.js | 2 +- .../print_preview/data/destination_store.js | 8 +- .../resources/print_preview/native_layer.js | 10 +- .../resources/print_preview/print_preview.js | 3 +- chrome/browser/sessions/session_service.cc | 23 + chrome/browser/shell_integration_linux.cc | 13 + .../spellchecker/spellcheck_factory.cc | 2 +- .../browser/ssl/security_state_tab_helper.cc | 2 + chrome/browser/status_icons/status_icon.h | 4 +- .../supervised_user_service.cc | 2 + chrome/browser/ui/BUILD.gn | 321 ++-- chrome/browser/ui/apps/chrome_app_delegate.cc | 49 +- chrome/browser/ui/apps/chrome_app_delegate.h | 2 +- .../ui/apps/chrome_app_window_client.cc | 6 +- chrome/browser/ui/browser.cc | 17 +- chrome/browser/ui/browser.h | 3 +- chrome/browser/ui/browser_commands.cc | 4 + chrome/browser/ui/chrome_pages.cc | 10 +- .../apps/app_shim_menu_controller_mac.mm | 87 +- .../ui/cocoa/apps/native_app_window_cocoa.h | 8 + .../ui/cocoa/apps/native_app_window_cocoa.mm | 108 +- .../browser/ui/cocoa/browser_window_cocoa.mm | 4 + .../ui/cocoa/browser_window_controller.mm | 2 + .../ui/cocoa/full_size_content_window.h | 2 + .../ui/cocoa/full_size_content_window.mm | 6 + .../location_bar/location_bar_view_mac.mm | 2 + .../ui/cocoa/status_icons/status_icon_mac.h | 2 +- .../ui/cocoa/status_icons/status_icon_mac.mm | 2 +- .../ui/cocoa/tabs/tab_window_controller.mm | 5 +- .../browser/ui/libgtkui/app_indicator_icon.cc | 5 +- .../libgtkui/select_file_dialog_impl_gtk.cc | 4 +- .../manage_passwords_ui_controller.cc | 3 +- .../ui/scoped_tabbed_browser_displayer.cc | 2 +- .../ui/signin_view_controller_delegate.cc | 2 + .../ui/startup/startup_browser_creator.cc | 51 +- chrome/browser/ui/tab_helpers.cc | 2 +- .../component_toolbar_actions_factory.cc | 2 + ...app_window_desktop_window_tree_host_win.cc | 8 + .../apps/chrome_native_app_window_views.cc | 68 +- .../apps/chrome_native_app_window_views.h | 1 + .../apps/glass_app_window_frame_view_win.cc | 13 +- .../browser/ui/views/chrome_views_delegate.cc | 10 +- .../browser/ui/views/chrome_views_delegate.h | 2 +- chrome/browser/ui/views/frame/browser_view.cc | 40 +- .../views/location_bar/location_bar_view.cc | 8 +- .../status_icons/status_icon_linux_wrapper.cc | 15 +- .../status_icons/status_icon_linux_wrapper.h | 4 +- .../ui/views/status_icons/status_icon_win.cc | 2 +- .../ui/views/status_icons/status_icon_win.h | 2 +- .../browser/ui/views/toolbar/toolbar_view.cc | 2 + .../views/translate/translate_bubble_view.cc | 3 + .../ui/webui/browsing_history_handler.cc | 2 +- .../ui/webui/chrome_web_contents_handler.cc | 2 +- .../webui/chrome_web_ui_controller_factory.cc | 44 +- .../print_preview/print_preview_handler.cc | 83 +- .../print_preview/print_preview_handler.h | 10 + .../browser/ui/webui/settings/font_handler.cc | 2 + .../ui/webui/settings/md_settings_ui.cc | 2 + .../ui/webui/settings/people_handler.cc | 2 + .../translate_internals_handler.cc | 2 + chrome/browser/ui/webui/uber/uber_ui.cc | 4 +- chrome/browser/win/app_icon.cc | 12 + chrome/chrome.isolate | 14 +- chrome/chrome_paks.gni | 13 +- chrome/chrome_watcher/BUILD.gn | 1 + chrome/chrome_watcher/chrome_watcher.def | 2 +- chrome/common/BUILD.gn | 7 +- chrome/common/child_process_logging_win.cc | 2 + chrome/common/chrome_constants.cc | 38 +- chrome/common/chrome_content_client.cc | 54 + chrome/common/chrome_paths.cc | 2 +- chrome/common/chrome_paths_linux.cc | 4 +- chrome/common/chrome_paths_mac.mm | 8 +- chrome/common/chrome_paths_win.cc | 7 +- chrome/common/extensions/api/BUILD.gn | 1 + .../common/extensions/api/_api_features.json | 6 +- .../extensions/api/_permission_features.json | 35 +- chrome/common/extensions/api/webview_tag.json | 25 + .../extensions/chrome_extensions_client.cc | 6 + .../extensions/extension_process_policy.cc | 3 + .../content_scripts_handler.cc | 12 + chrome/common/extensions/sync_helper.cc | 1 + chrome/common/features.gni | 2 +- chrome/common/logging_chrome.cc | 1 + chrome/common/mac/app_mode_chrome_locator.mm | 1 + chrome/common/pepper_flash.cc | 5 +- .../installer/linux/common/installer.include | 6 +- chrome/installer/mini_installer/BUILD.gn | 6 +- .../installer/mini_installer/chrome.release | 63 +- chrome/installer/util/browser_distribution.cc | 10 +- .../installer/util/google_update_settings.cc | 2 +- chrome/installer/util/util_constants.cc | 6 +- chrome/renderer/BUILD.gn | 5 +- .../chrome_content_renderer_client.cc | 25 +- .../renderer/chrome_content_renderer_client.h | 7 + .../renderer/chrome_render_frame_observer.cc | 6 + .../chrome_extensions_renderer_client.cc | 3 + .../extensions/resource_request_policy.cc | 5 +- chrome/test/BUILD.gn | 53 +- chrome/test/base/testing_browser_process.cc | 2 + chrome/test/base/testing_browser_process.h | 3 + chrome/test/chromedriver/capabilities.cc | 15 + chrome/test/chromedriver/capabilities.h | 2 + .../test/chromedriver/chrome/chrome_finder.cc | 21 +- .../test/chromedriver/chrome/chrome_impl.cc | 20 +- .../chrome/devtools_http_client.cc | 9 + .../test/chromedriver/chrome/web_view_impl.cc | 13 +- chrome/test/chromedriver/chrome_launcher.cc | 25 +- chrome/test/chromedriver/window_commands.cc | 6 +- chrome/tools/build/linux/FILES.cfg | 4 +- chrome/tools/build/win/FILES.cfg | 4 +- chrome/tools/build/win/syzygy/BUILD.gn | 4 +- chrome_elf/BUILD.gn | 1 + chrome_elf/chrome_elf.def | 2 +- chrome_elf/chrome_elf.ver | 4 +- chrome_elf/chrome_elf_constants.cc | 2 +- chrome_elf/chrome_elf_main.cc | 2 +- .../about_ui/resources/about_credits.tmpl | 1 - .../resources/about_credits_entry.tmpl | 1 - .../app_modal/javascript_dialog_manager.cc | 7 +- .../core/browser/autofill_download_manager.cc | 2 +- .../core/browser/content_settings_registry.cc | 2 +- components/cookie_config/cookie_store_util.cc | 9 +- components/cookie_config/cookie_store_util.h | 2 +- .../crash/content/app/breakpad_linux.cc | 4 +- .../crash/content/app/crash_reporter_client.h | 2 +- components/crx_file/id_util.cc | 3 +- .../gcm_driver/gcm_channel_status_syncer.cc | 8 +- components/gcm_driver/gcm_driver_desktop.cc | 5 +- components/metrics/metrics_service.cc | 6 +- .../metrics_services_manager.cc | 10 +- components/nacl/loader/BUILD.gn | 6 + components/nacl/loader/nacl_helper_linux.cc | 6 +- .../sandbox_linux/nacl_sandbox_linux.cc | 2 +- .../nacl/zygote/nacl_fork_delegate_linux.cc | 2 +- components/os_crypt/keychain_password_mac.mm | 4 +- components/os_crypt/os_crypt_mac.mm | 2 +- components/resources/BUILD.gn | 6 + components/spellcheck/browser/feedback.cc | 2 +- .../portable_device_watcher_win.cc | 2 +- .../sync/driver/generic_change_processor.cc | 2 +- components/test_runner/web_view_test_proxy.h | 2 +- .../translate/content/renderer/BUILD.gn | 2 +- .../core/language_detection/BUILD.gn | 2 +- content/BUILD.gn | 2 + content/app/content_main.cc | 4 + content/app/content_main_runner.cc | 11 +- .../browser_plugin/browser_plugin_guest.cc | 18 + .../child_process_security_policy_impl.cc | 23 +- .../child_process_security_policy_impl.h | 1 + .../gpu_process_transport_factory.cc | 8 +- .../compositor/software_output_device_mac.h | 15 + .../compositor/software_output_device_mac.mm | 22 + .../compositor/software_output_device_win.cc | 12 + .../browser/devtools/devtools_http_handler.cc | 2 + .../browser/dom_storage/dom_storage_area.cc | 2 +- .../dom_storage_context_wrapper.cc | 2 +- .../frame_host/interstitial_page_impl.cc | 3 + content/browser/frame_host/navigator_impl.cc | 7 +- .../indexed_db/indexed_db_backing_store.cc | 16 +- .../renderer_host/render_process_host_impl.cc | 42 +- .../render_widget_host_view_mac.mm | 26 +- .../shared_worker/shared_worker_host.cc | 4 + .../shared_worker/shared_worker_instance.cc | 7 +- .../shared_worker/shared_worker_instance.h | 8 +- .../shared_worker_service_impl.cc | 2 +- content/browser/site_instance_impl.cc | 9 +- .../browser/web_contents/web_contents_impl.cc | 7 +- .../browser/webui/url_data_manager_backend.cc | 7 + .../zygote_host/zygote_communication_linux.cc | 2 + .../zygote_host/zygote_host_impl_linux.cc | 6 +- content/child/child_process.cc | 2 +- content/child/child_thread_impl.cc | 2 +- content/common/dom_storage/dom_storage_map.cc | 4 + content/common/dom_storage/dom_storage_map.h | 4 +- .../common/dom_storage/dom_storage_types.h | 4 +- content/common/frame_messages.h | 2 + content/common/render_message_filter.mojom | 3 + content/common/sandbox_linux/sandbox_linux.cc | 2 + content/common/user_agent.cc | 10 + content/common/view_messages.h | 4 + content/common/worker_messages.h | 2 + content/ppapi_plugin/ppapi_plugin_main.cc | 2 +- .../browser/child_process_security_policy.h | 1 + .../public/browser/content_browser_client.cc | 4 + .../public/browser/content_browser_client.h | 1 + .../public/browser/web_contents_delegate.h | 3 +- content/public/common/content_switches.cc | 10 +- content/public/common/content_switches.h | 5 + content/public/common/file_chooser_params.h | 3 + content/public/common/renderer_preferences.h | 2 + content/public/common/user_agent.h | 2 + content/public/common/web_preferences.cc | 2 +- content/public/common/web_preferences.h | 2 +- .../renderer/content_renderer_client.cc | 4 + .../public/renderer/content_renderer_client.h | 10 + content/public/test/browser_test_base.cc | 2 +- content/renderer/BUILD.gn | 2 + .../renderer/in_process_renderer_thread.cc | 2 + .../pepper/content_decryptor_delegate.cc | 4 +- content/renderer/render_frame_impl.cc | 21 +- content/renderer/render_frame_impl.h | 6 + content/renderer/render_process_impl.cc | 4 +- content/renderer/render_thread_impl.cc | 2 +- content/renderer/render_view_impl.cc | 8 +- content/renderer/render_view_impl.h | 3 +- content/renderer/render_widget.cc | 13 + .../renderer/renderer_blink_platform_impl.cc | 50 +- .../renderer/renderer_blink_platform_impl.h | 2 +- content/renderer/renderer_main.cc | 27 +- .../embedded_shared_worker_stub.cc | 6 +- .../embedded_shared_worker_stub.h | 5 +- content/renderer/shared_worker_repository.cc | 5 + content/renderer/shared_worker_repository.h | 1 + extensions/BUILD.gn | 2 +- extensions/browser/BUILD.gn | 4 + .../app_current_window_internal_api.cc | 11 + .../app_current_window_internal_api.h | 10 + .../browser/api/app_window/app_window_api.cc | 69 +- .../web_view/web_view_internal_api.cc | 18 + .../web_view/web_view_internal_api.h | 16 + .../app_window/app_web_contents_helper.cc | 20 +- extensions/browser/app_window/app_window.cc | 188 ++- extensions/browser/app_window/app_window.h | 46 +- .../browser/app_window/app_window_contents.cc | 24 +- .../browser/app_window/app_window_contents.h | 10 +- .../browser/app_window/app_window_registry.cc | 5 +- .../browser/app_window/app_window_registry.h | 2 +- .../browser/app_window/native_app_window.h | 4 + .../app_window/test_app_window_contents.cc | 3 +- .../app_window/test_app_window_contents.h | 3 +- extensions/browser/content_hash_fetcher.cc | 13 +- extensions/browser/content_hash_reader.cc | 6 +- extensions/browser/content_verifier.cc | 74 +- extensions/browser/content_verifier.h | 21 +- .../browser/content_verifier_delegate.h | 1 + extensions/browser/content_verify_job.cc | 39 +- extensions/browser/content_verify_job.h | 19 +- extensions/browser/event_listener_map.cc | 21 +- extensions/browser/event_listener_map.h | 4 +- extensions/browser/event_router.cc | 10 +- extensions/browser/event_router.h | 4 +- extensions/browser/extension_function.cc | 45 +- extensions/browser/extension_function.h | 21 + .../browser/extension_function_dispatcher.cc | 41 +- .../browser/extension_function_dispatcher.h | 13 +- extensions/browser/extension_prefs.cc | 15 +- extensions/browser/extension_protocols.cc | 39 +- .../extension_web_contents_observer.cc | 47 +- .../browser/extension_web_contents_observer.h | 8 + .../extensions_guest_view_manager_delegate.cc | 4 +- .../mime_handler_view_guest.cc | 3 + .../guest_view/web_view/web_view_constants.cc | 1 + .../guest_view/web_view/web_view_constants.h | 1 + .../guest_view/web_view/web_view_guest.cc | 53 +- .../guest_view/web_view/web_view_guest.h | 5 +- extensions/browser/process_manager.cc | 3 + extensions/browser/verified_contents.cc | 24 +- extensions/browser/verified_contents.h | 3 +- extensions/common/api/_api_features.json | 9 +- .../common/api/_permission_features.json | 2 + .../api/app_current_window_internal.idl | 3 + extensions/common/api/app_window.idl | 17 + .../api/bluetooth/bluetooth_manifest_data.cc | 8 + extensions/common/api/events.json | 14 + .../api/sockets/sockets_manifest_data.cc | 2 + extensions/common/api/web_view_internal.json | 30 + extensions/common/constants.cc | 4 + extensions/common/constants.h | 2 + extensions/common/extension.cc | 22 + extensions/common/extension.h | 1 + extensions/common/extension_messages.h | 6 + .../common/features/manifest_feature.cc | 3 + extensions/common/features/simple_feature.cc | 15 + extensions/common/file_util.cc | 27 +- extensions/common/manifest.cc | 16 +- extensions/common/manifest.h | 4 +- extensions/common/manifest_constants.cc | 12 +- extensions/common/manifest_constants.h | 10 + .../manifest_handlers/background_info.cc | 2 + .../common/manifest_handlers/csp_info.cc | 4 + .../common/manifest_handlers/webview_info.cc | 33 + .../common/manifest_handlers/webview_info.h | 4 + .../common/permissions/permission_message.cc | 2 +- .../common/permissions/permission_set.cc | 17 +- .../common/permissions/permission_set.h | 11 +- .../common/permissions/permissions_data.cc | 34 +- .../common/permissions/permissions_data.h | 5 +- extensions/common/url_pattern.cc | 2 +- extensions/common/user_script.cc | 3 + extensions/common/user_script.h | 5 + .../native_app_window_views.cc | 115 +- .../native_app_window_views.h | 7 + extensions/extensions_resources.grd | 1 + .../renderer/app_window_custom_bindings.cc | 15 + .../renderer/app_window_custom_bindings.h | 1 + extensions/renderer/dispatcher.cc | 176 ++- extensions/renderer/dispatcher.h | 7 +- extensions/renderer/event_bindings.cc | 8 +- extensions/renderer/extension_frame_helper.cc | 19 +- extensions/renderer/extension_frame_helper.h | 1 + extensions/renderer/i18n_custom_bindings.cc | 17 +- .../renderer/object_backed_native_handler.cc | 6 +- .../renderer/object_backed_native_handler.h | 1 + .../renderer/render_frame_observer_natives.cc | 99 +- .../renderer/render_frame_observer_natives.h | 5 +- extensions/renderer/request_sender.cc | 63 + extensions/renderer/request_sender.h | 10 + .../resources/app_window_custom_bindings.js | 65 +- extensions/renderer/resources/binding.js | 5 +- extensions/renderer/resources/event.js | 4 + .../extensions_renderer_resources.grd | 12 + .../web_view/web_view_api_methods.js | 17 +- .../web_view/web_view_attributes.js | 14 + .../guest_view/web_view/web_view_constants.js | 1 + extensions/renderer/resources/last_error.js | 2 +- extensions/renderer/resources/send_request.js | 30 +- .../renderer/runtime_custom_bindings.cc | 18 +- extensions/renderer/script_context.cc | 22 +- extensions/renderer/script_context.h | 2 + extensions/renderer/script_context_set.cc | 8 +- extensions/renderer/script_context_set.h | 4 +- extensions/renderer/send_request_natives.cc | 50 + extensions/renderer/send_request_natives.h | 1 + extensions/renderer/user_script_injector.cc | 2 +- .../renderer/v8_context_native_handler.cc | 12 + .../browser/snapshots/snapshot_cache.mm | 2 +- ipc/ipc_logging.cc | 2 +- media/BUILD.gn | 7 - media/audio/audio_manager_base.cc | 5 +- media/ffmpeg/ffmpeg_common.cc | 6 + net/cert/cert_verify_proc_mac.cc | 28 +- net/cert/cert_verify_proc_win.cc | 34 +- net/cookies/cookie_monster.cc | 1 + .../pnacl_support_extension/BUILD.gn | 1 + remoting/remoting_enable.gni | 2 +- storage/browser/fileapi/isolated_context.cc | 1 + .../WebKit/Source/bindings/bindings.gni | 2 + .../bindings/core/v8/ScriptController.cpp | 3 + .../Source/bindings/core/v8/ScriptState.cpp | 1 + .../Source/bindings/core/v8/ScriptState.h | 2 +- .../Source/bindings/core/v8/V8DOMWrapper.cpp | 2 + .../Source/bindings/core/v8/V8Initializer.cpp | 11 + .../core/v8/custom/V8FileListCustom.cpp | 24 + .../v8/custom/V8HTMLIFrameElementCustom.cpp | 25 + .../core/v8/custom/V8WindowCustom.cpp | 33 +- third_party/WebKit/Source/core/BUILD.gn | 2 +- .../WebKit/Source/core/dom/Fullscreen.cpp | 2 +- .../core/editing/commands/EditorCommand.cpp | 6 +- third_party/WebKit/Source/core/fileapi/File.h | 4 + .../WebKit/Source/core/fileapi/File.idl | 2 + .../WebKit/Source/core/fileapi/FileList.idl | 3 + .../WebKit/Source/core/frame/Frame.cpp | 42 +- third_party/WebKit/Source/core/frame/Frame.h | 10 + .../Source/core/frame/LocalDOMWindow.cpp | 6 +- .../WebKit/Source/core/frame/Location.cpp | 9 +- .../WebKit/Source/core/frame/Window.idl | 4 +- .../core/frame/csp/CSPDirectiveList.cpp | 2 + .../Source/core/html/HTMLAttributeNames.in | 6 + .../Source/core/html/HTMLCanvasElement.cpp | 4 +- .../Source/core/html/HTMLFormElement.cpp | 2 +- .../Source/core/html/HTMLIFrameElement.cpp | 4 + .../Source/core/html/HTMLIFrameElement.idl | 3 + .../Source/core/html/HTMLInputElement.cpp | 20 + .../Source/core/html/HTMLInputElement.h | 5 + .../Source/core/html/HTMLInputElement.idl | 4 +- .../Source/core/html/HTMLMediaElement.cpp | 2 +- .../ChooserOnlyTemporalInputTypeView.cpp | 3 +- .../Source/core/html/forms/ColorInputType.cpp | 2 +- .../Source/core/html/forms/FileInputType.cpp | 24 +- .../Source/core/html/forms/FileInputType.h | 2 +- .../Source/core/inspector/InspectedFrames.h | 8 +- .../core/inspector/InspectorInstrumentation.h | 29 +- .../WebKit/Source/core/loader/EmptyClients.h | 7 +- .../WebKit/Source/core/loader/FrameLoader.cpp | 40 +- .../WebKit/Source/core/loader/FrameLoader.h | 3 + .../Source/core/loader/FrameLoaderClient.h | 1 + .../WebKit/Source/core/page/ChromeClient.h | 3 +- .../WebKit/Source/core/page/CreateWindow.cpp | 43 +- .../WebKit/Source/core/page/CreateWindow.h | 3 +- .../Source/core/page/DragController.cpp | 5 +- .../WebKit/Source/core/page/FrameTree.cpp | 12 +- .../workers/DedicatedWorkerGlobalScope.cpp | 3 + .../workers/InProcessWorkerMessagingProxy.cpp | 21 +- .../Source/core/workers/SharedWorker.cpp | 6 +- .../workers/SharedWorkerRepositoryClient.h | 2 +- .../workers/ThreadedWorkletMessagingProxy.cpp | 2 +- .../Source/core/workers/WorkerThread.cpp | 17 +- .../core/workers/WorkerThreadStartupData.cpp | 3 + .../core/workers/WorkerThreadStartupData.h | 6 +- .../core/xmlhttprequest/XMLHttpRequest.cpp | 2 + .../front_end/platform/DOMExtension.js | 11 +- .../canvas2d/CanvasRenderingContext2D.cpp | 2 + .../WebKit/Source/platform/FileChooser.cpp | 5 +- .../WebKit/Source/platform/FileChooser.h | 6 +- .../Source/platform/LifecycleObserver.h | 1 + .../platform/exported/WebSecurityOrigin.cpp | 7 +- .../webthread_impl_for_worker_scheduler.cc | 14 + .../platform/weborigin/SecurityOrigin.h | 1 + .../WebKit/Source/web/ChromeClientImpl.cpp | 15 +- .../WebKit/Source/web/ChromeClientImpl.h | 2 +- .../Source/web/FrameLoaderClientImpl.cpp | 8 + .../WebKit/Source/web/FrameLoaderClientImpl.h | 1 + .../web/SharedWorkerRepositoryClientImpl.cpp | 5 +- .../web/SharedWorkerRepositoryClientImpl.h | 2 +- .../Source/web/WebEmbeddedWorkerImpl.cpp | 21 +- third_party/WebKit/Source/web/WebKit.cpp | 29 + .../WebKit/Source/web/WebLocalFrameImpl.h | 8 + .../WebKit/Source/web/WebSharedWorkerImpl.cpp | 22 +- .../WebKit/Source/web/WebSharedWorkerImpl.h | 4 +- .../WebKit/Source/web/tests/WebFrameTest.cpp | 2 +- .../WebKit/Source/web/tests/WebViewTest.cpp | 2 +- third_party/WebKit/Source/wtf/BUILD.gn | 1 + third_party/WebKit/public/platform/Platform.h | 2 +- .../public/platform/WebSecurityOrigin.h | 2 + .../WebKit/public/web/WebFileChooserParams.h | 10 +- third_party/WebKit/public/web/WebFrame.h | 13 +- .../WebKit/public/web/WebFrameClient.h | 2 + third_party/WebKit/public/web/WebKit.h | 4 +- third_party/WebKit/public/web/WebNode.h | 2 +- .../WebKit/public/web/WebSharedWorker.h | 6 +- .../web/WebSharedWorkerRepositoryClient.h | 2 +- third_party/WebKit/public/web/WebViewClient.h | 2 +- tools/grit/grit_rule.gni | 7 + tools/gritsettings/resource_ids | 8 + tools/licenses.py | 11 + ui/accelerated_widget_mac/BUILD.gn | 1 + .../accelerated_widget_mac.h | 9 + .../accelerated_widget_mac.mm | 91 ++ .../platform/atk_util_auralinux.cc | 3 +- ui/base/accelerators/accelerator.cc | 7 +- ui/base/base_window.cc | 4 + ui/base/base_window.h | 1 + ui/base/clipboard/clipboard.h | 2 +- ui/base/models/simple_menu_model.cc | 6 +- ui/base/models/simple_menu_model.h | 2 + ui/base/resource/resource_bundle.cc | 15 +- ui/base/resource/resource_bundle_mac.mm | 4 +- ui/display/display.cc | 10 + ui/display/display.h | 5 + ui/gfx/BUILD.gn | 1 + ui/gfx/icon_util.cc | 15 + ui/gfx/icon_util.h | 4 + ui/gfx/mac/nswindow_frame_controls.h | 1 + ui/gfx/mac/nswindow_frame_controls.mm | 16 + ui/gfx/paint_vector_icon.cc | 1 + .../views/message_center_view.cc | 2 +- .../views/message_popup_collection.cc | 2 +- ui/native_theme/native_theme_win.cc | 5 + ui/shell_dialogs/select_file_dialog_mac.mm | 2 +- ui/shell_dialogs/select_file_dialog_win.cc | 11 +- ui/strings/ui_strings.grd | 6 + .../native_view_accessibility_auralinux.cc | 4 +- ui/views/controls/button/label_button.cc | 3 + ui/views/controls/menu/native_menu_win.cc | 12 +- ui/views/controls/menu/native_menu_win.h | 6 + ui/views/views_delegate.cc | 2 +- ui/views/views_delegate.h | 2 +- .../widget/desktop_aura/desktop_screen_x11.cc | 2 +- .../desktop_window_tree_host_win.cc | 12 +- .../desktop_window_tree_host_win.h | 2 + .../desktop_window_tree_host_x11.cc | 4 + ui/views/widget/native_widget_delegate.h | 1 + ui/views/widget/widget.cc | 8 +- ui/views/widget/widget.h | 3 +- ui/views/widget/widget_delegate.cc | 16 + ui/views/widget/widget_delegate.h | 7 + ui/views/widget/widget_hwnd_utils.cc | 12 +- ui/views/win/hwnd_message_handler.cc | 57 +- ui/views/win/hwnd_message_handler.h | 2 + ui/views/win/hwnd_message_handler_delegate.h | 6 + ui/views/window/custom_frame_view.cc | 14 +- 648 files changed, 9054 insertions(+), 1816 deletions(-) create mode 100644 base/message_loop/message_pump_uv.cc create mode 100644 base/message_loop/message_pump_uv.h create mode 100644 base/message_loop/message_pumpuv_mac.h create mode 100644 base/message_loop/message_pumpuv_mac.mm create mode 100644 build/util/version.gypi create mode 100644 chrome/app/nw.dll.manifest create mode 100644 chrome/app/nw.exe.manifest create mode 100644 chrome/app/theme/chromium/product_logo_32.xpm create mode 100644 chrome/browser/nwjs_resources.grd create mode 100644 chrome/browser/resources/empty.css create mode 100644 chrome/browser/resources/empty.html create mode 100644 chrome/browser/resources/empty.js create mode 100644 chrome/browser/resources/empty.json create mode 100644 chrome/browser/resources/empty.png create mode 100644 chrome/browser/resources/nwjs/default.js create mode 100644 chrome/browser/resources/nwjs_default_app/main.js create mode 100644 chrome/browser/resources/nwjs_default_app/manifest.json create mode 100644 chrome/browser/resources/nwjs_default_app/nw_blank.html create mode 100644 third_party/WebKit/Source/bindings/core/v8/custom/V8FileListCustom.cpp create mode 100644 third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLIFrameElementCustom.cpp diff --git a/.gitignore b/.gitignore index 6411252cfe8cf..6fb9d6633455d 100644 --- a/.gitignore +++ b/.gitignore @@ -504,3 +504,5 @@ vs-chromium-project.txt /win8/metro_driver/metro_driver_version_resources.xml /x86-generic_out/ /xcodebuild +/content/nw + diff --git a/.gn b/.gn index e4b474a035639..20d05820b1fbe 100644 --- a/.gn +++ b/.gn @@ -216,6 +216,7 @@ check_targets = [ # this situation much easier to create. if the build always lists the # files and passes them to a script, it will always be correct. exec_script_whitelist = [ + "//content/nw/BUILD.gn", "//android_webview/BUILD.gn", "//build_overrides/build.gni", "//build/config/BUILD.gn", diff --git a/BUILD.gn b/BUILD.gn index 43c7b3d1fa3f4..6633bfb796d8e 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -219,6 +219,7 @@ group("both_gn_and_gyp") { if (!is_ios && !is_android && !is_chromecast) { deps += [ + "//content/nw:nwjs", "//chrome", "//chrome/test:browser_tests", "//chrome/test:interactive_ui_tests", diff --git a/DEPS b/DEPS index d4ea2b39cd99c..c85691c91121f 100644 --- a/DEPS +++ b/DEPS @@ -15,6 +15,8 @@ vars = { 'https://chromium.googlesource.com', 'freetype_android_revision': 'c38be52bf8de3b1699d74932b849bf150265819e', + 'nwjs_git': + 'https://github.com/nwjs', 'google_toolbox_for_mac_revision': '038a2399b20e67ab17685e23ee873a66811fa107', 'libfuzzer_revision': @@ -177,8 +179,13 @@ deps = { (Var("chromium_git")) + '/chromium/deps/acid3.git@6be0a66a1ebd7ebc5abc1b2f405a945f6d871521', 'src/tools/swarming_client': (Var("chromium_git")) + '/external/swarming.client.git@ebc8dab6f8b8d79ec221c94de39a921145abd404', - 'src/v8': - (Var("chromium_git")) + '/v8/v8.git@d2f8b8429adbc4ddf887fb7e69d89143df07bf08' + #'src/v8': + # (Var("chromium_git")) + '/v8/v8.git@d2f8b8429adbc4ddf887fb7e69d89143df07bf08' + # (Var("nwjs_git")) + '/v8.git@origin/nw16', + #'src/content/nw': + # (Var("nwjs_git")) + '/nw.js.git@origin/nw16', + #'src/third_party/node': + # (Var("nwjs_git")) + '/node.git@origin/nw16', } deps_os = { @@ -1023,6 +1030,17 @@ hooks = [ 'name': 'wasm_asmjs_fuzzer' }, + { + 'action': [ + 'python', + 'src/content/nw/tools/patcher.py', + '--patch-config', 'src/content/nw/patch/patch.cfg' + ], + 'pattern': + '.', + 'name': + 'nw_patch' + }, { 'action': [ 'python', diff --git a/apps/app_lifetime_monitor.cc b/apps/app_lifetime_monitor.cc index 637c90916cdbb..ec37f26341458 100644 --- a/apps/app_lifetime_monitor.cc +++ b/apps/app_lifetime_monitor.cc @@ -86,8 +86,10 @@ void AppLifetimeMonitor::OnAppWindowRemoved(AppWindow* app_window) { } void AppLifetimeMonitor::OnAppWindowHidden(AppWindow* app_window) { +#if 0 if (!HasOtherVisibleAppWindows(app_window)) NotifyAppDeactivated(app_window->extension_id()); +#endif } void AppLifetimeMonitor::OnAppWindowShown(AppWindow* app_window, diff --git a/apps/app_load_service.cc b/apps/app_load_service.cc index c89a3692bf4ef..e5d62da20af32 100644 --- a/apps/app_load_service.cc +++ b/apps/app_load_service.cc @@ -4,6 +4,8 @@ #include "apps/app_load_service.h" +#include "content/nw/src/nw_content.h" + #include "apps/app_load_service_factory.h" #include "apps/app_restore_service.h" #include "apps/launcher.h" @@ -70,6 +72,8 @@ bool AppLoadService::LoadAndLaunch(const base::FilePath& extension_path, return false; } + nw::SetMainExtensionId(extension_id); + // Schedule the app to be launched once loaded. PostReloadAction& action = post_reload_actions_[extension_id]; action.action_type = LAUNCH_FOR_LOAD_AND_LAUNCH; diff --git a/apps/launcher.cc b/apps/launcher.cc index 1ac5aef27947d..360ecd1eb401b 100644 --- a/apps/launcher.cc +++ b/apps/launcher.cc @@ -103,7 +103,10 @@ class PlatformAppPathLauncher extension_id(app->id()), entry_paths_(entry_paths), mime_type_collector_(profile), - is_directory_collector_(profile) {} + is_directory_collector_(profile) { + if (app->is_nwjs_app()) //NWJS#5097 + entry_paths_.clear(); + } PlatformAppPathLauncher(Profile* profile, const Extension* app, @@ -112,7 +115,7 @@ class PlatformAppPathLauncher extension_id(app->id()), mime_type_collector_(profile), is_directory_collector_(profile) { - if (!file_path.empty()) + if (!file_path.empty() && !app->is_nwjs_app()) //NWJS#5097 entry_paths_.push_back(file_path); } diff --git a/base/BUILD.gn b/base/BUILD.gn index 3754be5f383f2..1ec8d0d18502c 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -530,6 +530,8 @@ component("base") { "message_loop/message_pump_libevent.h", "message_loop/message_pump_mac.h", "message_loop/message_pump_mac.mm", + "message_loop/message_pump_uv.cc", + "message_loop/message_pump_uv.h", "message_loop/message_pump_win.cc", "message_loop/message_pump_win.h", "metrics/bucket_ranges.cc", diff --git a/base/base_switches.cc b/base/base_switches.cc index f5c6eb3f59bb7..1e02f42589c34 100644 --- a/base/base_switches.cc +++ b/base/base_switches.cc @@ -111,4 +111,5 @@ const char kEnableCrashReporterForTesting[] = "enable-crash-reporter-for-testing"; #endif +const char kNWJS[] = "nwjs"; } // namespace switches diff --git a/base/base_switches.h b/base/base_switches.h index 0585186038f66..616314b8d9e0e 100644 --- a/base/base_switches.h +++ b/base/base_switches.h @@ -39,6 +39,7 @@ extern const char kDisableUsbKeyboardDetect[]; extern const char kEnableCrashReporterForTesting[]; #endif +extern const char kNWJS[]; } // namespace switches #endif // BASE_BASE_SWITCHES_H_ diff --git a/base/command_line.cc b/base/command_line.cc index 99ea2b000324b..e0e05c20d19e6 100644 --- a/base/command_line.cc +++ b/base/command_line.cc @@ -151,43 +151,84 @@ string16 QuoteForCommandLineToArgvW(const string16& arg, CommandLine::CommandLine(NoProgram no_program) : argv_(1), - begin_args_(1) { + begin_args_(1), + argc0_(0), argv0_(NULL) { } CommandLine::CommandLine(const FilePath& program) : argv_(1), - begin_args_(1) { + begin_args_(1), + argc0_(0), argv0_(NULL) { SetProgram(program); } CommandLine::CommandLine(int argc, const CommandLine::CharType* const* argv) : argv_(1), - begin_args_(1) { + begin_args_(1), + argc0_(0), argv0_(NULL) { InitFromArgv(argc, argv); } CommandLine::CommandLine(const StringVector& argv) : argv_(1), - begin_args_(1) { + begin_args_(1), + argc0_(0), argv0_(NULL) { InitFromArgv(argv); } CommandLine::CommandLine(const CommandLine& other) : argv_(other.argv_), + original_argv_(other.original_argv_), switches_(other.switches_), - begin_args_(other.begin_args_) { + begin_args_(other.begin_args_), + argc0_(other.argc0_), argv0_(NULL) { + +#if defined(OS_WIN) + if (other.argv0_) { + argv0_ = new char*[argc0_ + 1]; + for (int i = 0; i < argc0_; ++i) { + argv0_[i] = new char[strlen(other.argv0_[i]) + 1]; + strcpy(argv0_[i], other.argv0_[i]); + } + argv0_[argc0_] = NULL; + } +#else + argv0_ = other.argv0_; +#endif ResetStringPieces(); } CommandLine& CommandLine::operator=(const CommandLine& other) { argv_ = other.argv_; + original_argv_ = other.original_argv_; switches_ = other.switches_; begin_args_ = other.begin_args_; +#if defined(OS_WIN) + if (other.argv0_) { + argc0_ = other.argc0_; + argv0_ = new char*[argc0_ + 1]; + for (int i = 0; i < argc0_; ++i) { + argv0_[i] = new char[strlen(other.argv0_[i]) + 1]; + strcpy(argv0_[i], other.argv0_[i]); + } + argv0_[argc0_] = NULL; + } +#else + argv0_ = other.argv0_; +#endif ResetStringPieces(); return *this; } CommandLine::~CommandLine() { +#if defined(OS_WIN) + if (!argv0_) + return; + for (int i = 0; i < argc0_; i++) { + delete[] argv0_[i]; + } + delete[] argv0_; +#endif } #if defined(OS_WIN) @@ -259,12 +300,34 @@ CommandLine CommandLine::FromString(const string16& command_line) { void CommandLine::InitFromArgv(int argc, const CommandLine::CharType* const* argv) { StringVector new_argv; + argc0_ = argc; +#if !defined(OS_WIN) + argv0_ = (char**)argv; +#else + argv0_ = new char*[argc + 1]; + for (int i = 0; i < argc; ++i) { + std::string str(base::WideToUTF8(argv[i])); + argv0_[i] = new char[str.length() + 1]; + strcpy(argv0_[i], str.c_str()); + } + argv0_[argc] = NULL; +#endif for (int i = 0; i < argc; ++i) new_argv.push_back(argv[i]); InitFromArgv(new_argv); } void CommandLine::InitFromArgv(const StringVector& argv) { +#if !defined(OS_MACOSX) + original_argv_ = argv; +#else + for (size_t index = 0; index < argv.size(); ++index) { + if (argv[index].compare(0, strlen("--psn_"), "--psn_") != 0 && + argv[index].compare(0, strlen("-psn_"), "-psn_") != 0) { + original_argv_.push_back(argv[index]); + } + } +#endif argv_ = StringVector(1); switches_.clear(); switches_by_stringpiece_.clear(); @@ -401,6 +464,12 @@ void CommandLine::AppendArgNative(const CommandLine::StringType& value) { argv_.push_back(value); } +#if defined(OS_MACOSX) +void CommandLine::FixOrigArgv4Finder(const CommandLine::StringType& value) { + original_argv_.push_back(value); +} +#endif + void CommandLine::AppendArguments(const CommandLine& other, bool include_program) { if (include_program) diff --git a/base/command_line.h b/base/command_line.h index 3d29f8fee7fbb..f72a7139d5a6f 100644 --- a/base/command_line.h +++ b/base/command_line.h @@ -150,6 +150,11 @@ class BASE_EXPORT CommandLine { // Returns the original command line string as a vector of strings. const StringVector& argv() const { return argv_; } + int argc0() { return argc0_; } + char** argv0() { return argv0_; } + + // Returns the original command line string as a vector of strings (keeps precedence). + const StringVector& original_argv() const { return original_argv_; } // Get and Set the program part of the command line string (the first item). FilePath GetProgram() const; @@ -200,6 +205,10 @@ class BASE_EXPORT CommandLine { void AppendArgPath(const FilePath& value); void AppendArgNative(const StringType& value); +#if defined(OS_MACOSX) + void FixOrigArgv4Finder(const StringType& value); +#endif + // Append the switches and arguments from another command line to this one. // If |include_program| is true, include |other|'s program as well. void AppendArguments(const CommandLine& other, bool include_program); @@ -241,6 +250,9 @@ class BASE_EXPORT CommandLine { // The argv array: { program, [(--|-|/)switch[=value]]*, [--], [argument]* } StringVector argv_; + // The argv array (precedence not messed). + StringVector original_argv_; + // Parsed-out switch keys and values. SwitchMap switches_; @@ -252,6 +264,9 @@ class BASE_EXPORT CommandLine { // The index after the program and switches, any arguments start here. size_t begin_args_; + + int argc0_; + char** argv0_; }; } // namespace base diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc index a8db2599c642f..83325311a5666 100644 --- a/base/files/file_util_posix.cc +++ b/base/files/file_util_posix.cc @@ -139,7 +139,7 @@ std::string TempFileName() { #if defined(GOOGLE_CHROME_BUILD) return std::string(".com.google.Chrome.XXXXXX"); #else - return std::string(".org.chromium.Chromium.XXXXXX"); + return std::string(".io.nwjs.XXXXXX"); #endif } diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc index 1581f6cfb4b49..fccfe13728508 100644 --- a/base/message_loop/message_loop.cc +++ b/base/message_loop/message_loop.cc @@ -198,6 +198,9 @@ std::unique_ptr MessageLoop::CreateMessagePumpForType(Type type) { return std::unique_ptr(new MessagePumpForUI()); #endif + if (type == MessageLoop::TYPE_NODE) + return std::unique_ptr(new MessagePumpUV()); + DCHECK_EQ(MessageLoop::TYPE_DEFAULT, type); return MESSAGE_PUMP_DEFAULT; } diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h index ac7a30356366e..c0b88ce66443a 100644 --- a/base/message_loop/message_loop.h +++ b/base/message_loop/message_loop.h @@ -44,6 +44,8 @@ class JavaMessageHandlerFactory; } // namespace base #endif // defined(OS_ANDROID) +#include "base/message_loop/message_pump_uv.h" + namespace base { class RunLoop; @@ -106,6 +108,9 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { // TYPE_CUSTOM // MessagePump was supplied to constructor. // + // TYPE_NODE + // For integration with NodeJS/libuv in the renderer thread + enum Type { TYPE_DEFAULT, TYPE_UI, @@ -113,7 +118,8 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { TYPE_IO, #if defined(OS_ANDROID) TYPE_JAVA, -#endif // defined(OS_ANDROID) +#endif // defined(OS_ANDROID) + TYPE_NODE }; // Normally, it is not necessary to instantiate a MessageLoop. Instead, it @@ -609,6 +615,43 @@ class BASE_EXPORT MessageLoopForIO : public MessageLoop { static_assert(sizeof(MessageLoop) == sizeof(MessageLoopForIO), "MessageLoopForIO should not have extra member variables"); +#if !defined(OS_MACOSX) + +//----------------------------------------------------------------------------- +// MessageLoopForUV extends MessageLoop with methods that are particular to a +// MessageLoop instantiated with TYPE_NODE. +// +// This class is typically used like so: +// MessageLoopForUV::current()->...call some method... +// + +class BASE_EXPORT MessageLoopForUV : public MessageLoop { + public: + + MessageLoopForUV() : MessageLoop(TYPE_NODE) { + } + + // Returns the MessageLoopForUV of the current thread. + static MessageLoopForUV* current() { + MessageLoop* loop = MessageLoop::current(); + //DCHECK_EQ(MessageLoop::TYPE_NODE, loop->type()); + return static_cast(loop); + } + + base::MessagePumpUV* pump_uv() { + return static_cast(pump_.get()); + } + +}; + +// Do not add any member variables to MessageLoopForUV! This is important b/c +// MessageLoopForUV is often allocated via MessageLoop(TYPE_IO). Any extra +// data that you need should be stored on the MessageLoop's pump_ instance. +static_assert(sizeof(MessageLoop) == sizeof(MessageLoopForUV), + "MessageLoopForUV should not have extra member variables"); + +#endif + } // namespace base #endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ diff --git a/base/message_loop/message_pump_mac.h b/base/message_loop/message_pump_mac.h index 14b8377b9086b..8eebcc6d1fc51 100644 --- a/base/message_loop/message_pump_mac.h +++ b/base/message_loop/message_pump_mac.h @@ -78,7 +78,7 @@ class AutoreleasePoolType; typedef NSAutoreleasePool AutoreleasePoolType; #endif // !defined(__OBJC__) || __has_feature(objc_arc) -class MessagePumpCFRunLoopBase : public MessagePump { +class BASE_EXPORT MessagePumpCFRunLoopBase : public MessagePump { // Needs access to CreateAutoreleasePool. friend class MessagePumpScopedAutoreleasePool; public: @@ -123,7 +123,8 @@ class MessagePumpCFRunLoopBase : public MessagePump { // the instance method; the instance method returns true if it resignalled // work_source_ to be called again from the loop. static void RunWorkSource(void* info); - bool RunWork(); + protected: + virtual bool RunWork(); // Perform idle-priority work. This is normally called by PreWaitObserver, // but is also associated with idle_work_source_. When this function @@ -131,7 +132,8 @@ class MessagePumpCFRunLoopBase : public MessagePump { // static method calls the instance method; the instance method returns // true if idle work was done. static void RunIdleWorkSource(void* info); - bool RunIdleWork(); + virtual bool RunIdleWork(); + virtual void PreWaitObserverHook(); // Perform work that may have been deferred because it was not runnable // within a nested run loop. This is associated with diff --git a/base/message_loop/message_pump_mac.mm b/base/message_loop/message_pump_mac.mm index d924ead7cbd9b..9158d52d7dce1 100644 --- a/base/message_loop/message_pump_mac.mm +++ b/base/message_loop/message_pump_mac.mm @@ -430,9 +430,13 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) : // nesting-deferred work may have accumulated. Schedule it for processing // if appropriate. self->MaybeScheduleNestingDeferredWork(); + self->PreWaitObserverHook(); }); } +void MessagePumpCFRunLoopBase::PreWaitObserverHook() { +} + // Called from the run loop. // static void MessagePumpCFRunLoopBase::PreSourceObserver(CFRunLoopObserverRef observer, diff --git a/base/message_loop/message_pump_uv.cc b/base/message_loop/message_pump_uv.cc new file mode 100644 index 0000000000000..00fddffeee00d --- /dev/null +++ b/base/message_loop/message_pump_uv.cc @@ -0,0 +1,182 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/message_loop/message_pump_uv.h" + +#include "base/logging.h" +#include "base/command_line.h" +#include "content/public/common/content_switches.h" +#include "v8/include/v8.h" +//#include "third_party/node/src/node.h" +#undef CHECK +#undef CHECK_EQ +#undef CHECK_GE +#undef CHECK_GT +#undef CHECK_NE +#undef CHECK_LT +#undef CHECK_LE +#undef CHECK_OP +#undef DISALLOW_COPY_AND_ASSIGN +#include "third_party/node/src/node_webkit.h" + +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#define NW_HOOK_INIT(type, sym, fn) BASE_EXPORT type fn = nullptr; +#define NODE_HOOK_INIT(type, sym, fn) BASE_EXPORT type fn = nullptr; +#include "content/nw/src/common/node_hooks.h" +#undef NODE_HOOK_INIT +#undef NW_HOOK_INIT +#undef NW_HOOK_MAP + +namespace base { + +MessagePumpUV::MessagePumpUV() + : keep_running_(true), + nesting_level_(0) { + // wakeup_event_ = new uv_async_t; + // uv_async_init(uv_default_loop(), wakeup_event_, wakeup_callback); + // node::g_nw_uv_run = uv_run; + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + int worker_support = command_line.HasSwitch("enable-node-worker") ? 1 : 0; //kEnableNodeWorker + g_msg_pump_ctor_fn(&wakeup_event_, worker_support); +} + +MessagePumpUV::~MessagePumpUV() { + // delete wakeup_event_; + // wakeup_event_ = NULL; + g_msg_pump_dtor_fn(&wakeup_event_); +} + +void MessagePumpUV::Run(Delegate* delegate) { + + ++nesting_level_; + DCHECK(keep_running_) << "Quit must have been called outside of Run!"; + + msg_pump_context_t ctx; + memset(&ctx, 0, sizeof(msg_pump_context_t)); + + // Poll external loop in nested message loop, so node.js's events will be + // paused in nested loop. + // uv_loop_t* loop = uv_default_loop(); + ctx.loop = g_uv_default_loop_fn(); + ctx.wakeup_event = wakeup_event_; + ctx.wakeup_events = &wakeup_events_; + + if (nesting_level_ > 1) { + g_msg_pump_nest_enter_fn(&ctx); + wakeup_event_ = ctx.wakeup_event; + // loop = uv_loop_new(); + + // wakeup_events_.push_back(wakeup_event_); + // wakeup_event_ = new uv_async_t; + // uv_async_init(loop, wakeup_event_, wakeup_callback); + } + + // // Create handles for the loop. + // uv_idle_t idle_handle; + // uv_idle_init(loop, &idle_handle); + + // uv_timer_t delay_timer; + // delay_timer.data = &idle_handle; + // uv_timer_init(loop, &delay_timer); + + g_msg_pump_pre_loop_fn(&ctx); + // Enter Loop + for (;;) { + bool did_work = delegate->DoWork(); + if (!keep_running_) + break; + + did_work |= delegate->DoDelayedWork(&delayed_work_time_); + if (!keep_running_) + break; + + if (did_work) { + // // call tick callback after done work in V8, + // // in the same way node upstream handle this in MakeCallBack, + // // or the tick callback is blocked in some cases + // if (node::g_env) { + // v8::Isolate* isolate = node::g_env->isolate(); + // v8::HandleScope handleScope(isolate); + // (*node::g_nw_uv_run)(loop, UV_RUN_NOWAIT); + // node::CallNWTickCallback(node::g_env, v8::Undefined(isolate)); + // } + g_msg_pump_did_work_fn(&ctx); + continue; + } + + did_work = delegate->DoIdleWork(); + if (!keep_running_) + break; + + if (did_work) { + g_msg_pump_did_work_fn(&ctx); + continue; + } + + if (delayed_work_time_.is_null()) { + // (*node::g_nw_uv_run)(loop, UV_RUN_ONCE); + g_msg_pump_need_work_fn(&ctx); + } else { + TimeDelta delay = delayed_work_time_ - TimeTicks::Now(); + if (delay > TimeDelta()) { + // uv_timer_start(&delay_timer, timer_callback, + // delay.InMilliseconds(), 0); + // (*node::g_nw_uv_run)(loop, UV_RUN_ONCE); + // uv_idle_stop(&idle_handle); + // uv_timer_stop(&delay_timer); + g_msg_pump_delay_work_fn(&ctx, delay.InMilliseconds()); + } else { + // It looks like delayed_work_time_ indicates a time in the past, so we + // need to call DoDelayedWork now. + delayed_work_time_ = TimeTicks(); + } + } + // Since event_ is auto-reset, we don't need to do anything special here + // other than service each delegate method. + } + + if (nesting_level_ > 1) { + // uv_close((uv_handle_t*)wakeup_event_, NULL); + // // Delete external loop. + // uv_loop_close(loop); + // free(loop); + + // // Restore previous async handle. + // delete wakeup_event_; + // wakeup_event_ = wakeup_events_.back(); + // wakeup_events_.pop_back(); + g_msg_pump_nest_leave_fn(&ctx); + wakeup_event_ = ctx.wakeup_event; + } + + keep_running_ = true; + --nesting_level_; + g_msg_pump_clean_ctx_fn(&ctx); +} + +void MessagePumpUV::Quit() { + keep_running_ = false; +} + +void MessagePumpUV::ScheduleWork() { +// // Since this can be called on any thread, we need to ensure that our Run +// // loop wakes up. +// #if defined(OS_WIN) +// uv_async_send_nw(wakeup_event_); +// #else +// uv_async_send(wakeup_event_); +// #endif + g_msg_pump_sched_work_fn(wakeup_event_); +} + +void MessagePumpUV::ScheduleDelayedWork( + const TimeTicks& delayed_work_time) { + // We know that we can't be blocked on Wait right now since this method can + // only be called on the same thread as Run, so we only need to update our + // record of how long to sleep when we do sleep. + delayed_work_time_ = delayed_work_time; +} + +} // namespace base diff --git a/base/message_loop/message_pump_uv.h b/base/message_loop/message_pump_uv.h new file mode 100644 index 0000000000000..a464e2a9963b7 --- /dev/null +++ b/base/message_loop/message_pump_uv.h @@ -0,0 +1,50 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_MESSAGE_PUMP_UV_H_ +#define BASE_MESSAGE_PUMP_UV_H_ +#pragma once + +#include "base/message_loop/message_pump.h" +#include "base/time/time.h" +#include "content/common/content_export.h" + +#include + +//#include "third_party/node/deps/uv/include/uv.h" + +typedef struct uv_async_s uv_async_t; +namespace base { + +class BASE_EXPORT MessagePumpUV : public MessagePump { + public: + MessagePumpUV(); + + // MessagePump methods: + void Run(Delegate* delegate) override; + void Quit() override; + void ScheduleWork() override; + void ScheduleDelayedWork(const TimeTicks& delayed_work_time) override; + + private: + ~MessagePumpUV() override; + + // This flag is set to false when Run should return. + bool keep_running_; + + // Nested loop level. + int nesting_level_; + + // Handle to wake up loop. + std::vector wakeup_events_; + void* wakeup_event_; + + TimeTicks delayed_work_time_; + + DISALLOW_COPY_AND_ASSIGN(MessagePumpUV); +}; + +} // namespace base + +#endif // BASE_MESSAGE_PUMP_UV_H_ diff --git a/base/message_loop/message_pumpuv_mac.h b/base/message_loop/message_pumpuv_mac.h new file mode 100644 index 0000000000000..1d52d4a2b72b0 --- /dev/null +++ b/base/message_loop/message_pumpuv_mac.h @@ -0,0 +1,94 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// The basis for all native run loops on the Mac is the CFRunLoop. It can be +// used directly, it can be used as the driving force behind the similar +// Foundation NSRunLoop, and it can be used to implement higher-level event +// loops such as the NSApplication event loop. +// +// This file introduces a basic CFRunLoop-based implementation of the +// MessagePump interface called CFRunLoopBase. CFRunLoopBase contains all +// of the machinery necessary to dispatch events to a delegate, but does not +// implement the specific run loop. Concrete subclasses must provide their +// own DoRun and Quit implementations. +// +// A concrete subclass that just runs a CFRunLoop loop is provided in +// MessagePumpCFRunLoop. For an NSRunLoop, the similar MessagePumpNSRunLoop +// is provided. +// +// For the application's event loop, an implementation based on AppKit's +// NSApplication event system is provided in MessagePumpNSApplication. +// +// Typically, MessagePumpNSApplication only makes sense on a Cocoa +// application's main thread. If a CFRunLoop-based message pump is needed on +// any other thread, one of the other concrete subclasses is preferrable. +// MessagePumpMac::Create is defined, which returns a new NSApplication-based +// or NSRunLoop-based MessagePump subclass depending on which thread it is +// called on. + +#ifndef BASE_MESSAGE_LOOP_MESSAGE_PUMPUV_MAC_H_ +#define BASE_MESSAGE_LOOP_MESSAGE_PUMPUV_MAC_H_ + +#include "base/message_loop/message_pump.h" + +#include +#include "v8.h" +#include "third_party/node/src/node_webkit.h" + +#include "base/memory/weak_ptr.h" +#include "base/message_loop/timer_slack.h" + +#include "base/message_loop/message_pump_mac.h" + +#if defined(__OBJC__) +#if defined(OS_IOS) +#import +#else +#import + +#endif // !defined(OS_IOS) +#endif // defined(__OBJC__) + +namespace base { + +class RunLoop; +class TimeTicks; + +class BASE_EXPORT MessagePumpUVNSRunLoop : public MessagePumpCFRunLoopBase { + public: + MessagePumpUVNSRunLoop(); + ~MessagePumpUVNSRunLoop() override; + + void DoRun(Delegate* delegate) override; + void Quit() override; + + protected: + bool RunWork() override; + bool RunIdleWork() override; + void PreWaitObserverHook() override; + + private: + // A source that doesn't do anything but provide something signalable + // attached to the run loop. This source will be signalled when Quit + // is called, to cause the loop to wake up so that it can stop. + CFRunLoopSourceRef quit_source_; + + // Thread to poll uv events. + static void EmbedThreadRunner(void *arg); + + // False after Quit is called. + bool keep_running_; + // Flag to pause the libuv loop. + bool pause_uv_; + + msg_pump_context_t ctx_; + // Whether we're done. + int embed_closed_; + + DISALLOW_COPY_AND_ASSIGN(MessagePumpUVNSRunLoop); +}; + +} // namespace base + +#endif // BASE_MESSAGE_LOOP_MESSAGE_PUMPUV_MAC_H_ diff --git a/base/message_loop/message_pumpuv_mac.mm b/base/message_loop/message_pumpuv_mac.mm new file mode 100644 index 0000000000000..13a86a9a5f292 --- /dev/null +++ b/base/message_loop/message_pumpuv_mac.mm @@ -0,0 +1,370 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// Copyright Plask, (c) Dean McNamee , 2011. BSD license + + +#import "base/message_loop/message_pump_mac.h" +#import "base/message_loop/message_pumpuv_mac.h" + +#include +#import + +#include + +#include + +#include "base/logging.h" +#include "base/mac/scoped_cftyperef.h" +#include "base/message_loop/timer_slack.h" +#include "base/command_line.h" +#include "base/run_loop.h" +#include "base/time/time.h" +#include "v8/include/v8.h" + +#if !defined(OS_IOS) +#import +#endif // !defined(OS_IOS) + +#include +#include +#include + +#include +#include "third_party/node/src/node_webkit.h" +#include "content/nw/src/nw_content.h" + +#define EVENTLOOP_DEBUG 0 + +#if EVENTLOOP_DEBUG +#define EVENTLOOP_DEBUG_C(x) x +#else +#define EVENTLOOP_DEBUG_C(x) do { } while(0) +#endif + + +//static bool g_should_quit = false; +static int g_kqueue_fd = 0; +static int g_main_thread_pipe_fd = 0; +static int g_kqueue_thread_pipe_fd = 0; + +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + +int kevent_hook(int kq, const struct kevent *changelist, int nchanges, + struct kevent *eventlist, int nevents, + const struct timespec *timeout) { + int res; + + EVENTLOOP_DEBUG_C((printf("KQUEUE--- fd: %d changes: %d\n", kq, nchanges))); + +#if 0 //EVENTLOOP_DEBUG + for (int i = 0; i < nchanges; ++i) { + dump_kevent(&changelist[i]); + } +#endif + +#if EVENTLOOP_BYPASS_CUSTOM + int res = kevent(kq, changelist, nchanges, eventlist, nevents, timeout); + printf("---> results: %d\n", res); + for (int i = 0; i < res; ++i) { + dump_kevent(&eventlist[i]); + } + return res; +#endif + + if (eventlist == NULL) // Just updating the state. + return kevent(kq, changelist, nchanges, eventlist, nevents, timeout); + + struct timespec zerotimeout; + memset(&zerotimeout, 0, sizeof(zerotimeout)); + + // Going for a poll. A bit less optimial but we break it into two system + // calls to make sure that the kqueue state is up to date. We might as well + // also peek since we basically get it for free w/ the same call. + EVENTLOOP_DEBUG_C((printf("-- Updating kqueue state and peek\n"))); + res = kevent(kq, changelist, nchanges, eventlist, nevents, &zerotimeout); + if (res != 0) return res; + + /* + printf("kevent() blocking\n"); + res = kevent(kq, NULL, 0, eventlist, nevents, timeout); + if (res != 0) return res; + return res; + */ + + /* + printf("Going for it...\n"); + res = kevent(kq, changelist, nchanges, eventlist, nevents, timeout); + printf("<- %d\n", res); + return res; + */ + + double ts = 9999; // Timeout in seconds. Default to some "future". + if (timeout != NULL) + ts = timeout->tv_sec + (timeout->tv_nsec / 1000000000.0); + + // NOTE(deanm): We only ever make a single pass, because we need to make + // sure that any user code (which could update timers, etc) is reflected + // and we have a proper timeout value. Since user code can run in response + // to [NSApp sendEvent] (mouse movement, keypress, etc, etc), we wind down + // and go back through the uv loop again to make sure to update everything. + + EVENTLOOP_DEBUG_C((printf("-> Running NSApp iteration: timeout %f\n", ts))); + + // Have the helper thread start select()ing on the kqueue. + write(g_main_thread_pipe_fd, "~", 1); + + [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode + beforeDate:[NSDate dateWithTimeIntervalSinceNow:ts]]; + + // Stop the helper thread if it hasn't already woken up (in which case it + // would have already stopped itself). + write(g_main_thread_pipe_fd, "!", 1); + + EVENTLOOP_DEBUG_C((printf("<- Finished NSApp iteration\n"))); + + // Do the actual kqueue call now (ignore the timeout, don't block). + return kevent(kq, NULL, 0, eventlist, nevents, &zerotimeout); +} + +namespace base { + +namespace { + +// static +const CFStringRef kMessageLoopExclusiveRunLoopMode = + CFSTR("kMessageLoopExclusiveRunLoopMode"); + +void CFRunLoopAddSourceToAllModes(CFRunLoopRef rl, CFRunLoopSourceRef source) { + CFRunLoopAddSource(rl, source, kCFRunLoopCommonModes); + CFRunLoopAddSource(rl, source, kMessageLoopExclusiveRunLoopMode); +} + +void CFRunLoopRemoveSourceFromAllModes(CFRunLoopRef rl, + CFRunLoopSourceRef source) { + CFRunLoopRemoveSource(rl, source, kCFRunLoopCommonModes); + CFRunLoopRemoveSource(rl, source, kMessageLoopExclusiveRunLoopMode); +} + +void NoOp(void* info) { +} + +#if 0 +void UvNoOp(void* handle) { +} +#endif + +} // namespace + +// A scoper for autorelease pools created from message pump run loops. +// Avoids dirtying up the ScopedNSAutoreleasePool interface for the rare +// case where an autorelease pool needs to be passed in. +class MessagePumpScopedAutoreleasePool { + public: + explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) : + pool_(pump->CreateAutoreleasePool()) { + } + ~MessagePumpScopedAutoreleasePool() { + [pool_ drain]; + } + + private: + NSAutoreleasePool* pool_; + DISALLOW_COPY_AND_ASSIGN(MessagePumpScopedAutoreleasePool); +}; + +bool MessagePumpUVNSRunLoop::RunWork() { + if (!delegate_) { + // This point can be reached with a NULL delegate_ if Run is not on the + // stack but foreign code is spinning the CFRunLoop. Arrange to come back + // here when a delegate is available. + delegateless_work_ = true; + return false; + } + + // The NSApplication-based run loop only drains the autorelease pool at each + // UI event (NSEvent). The autorelease pool is not drained for each + // CFRunLoopSource target that's run. Use a local pool for any autoreleased + // objects if the app is not currently handling a UI event to ensure they're + // released promptly even in the absence of UI events. + MessagePumpScopedAutoreleasePool autorelease_pool(this); + + // Call DoWork and DoDelayedWork once, and if something was done, arrange to + // come back here again as long as the loop is still running. + bool did_work = delegate_->DoWork(); + bool resignal_work_source = did_work; + + TimeTicks next_time; + delegate_->DoDelayedWork(&next_time); + if (!did_work) { + // Determine whether there's more delayed work, and if so, if it needs to + // be done at some point in the future or if it's already time to do it. + // Only do these checks if did_work is false. If did_work is true, this + // function, and therefore any additional delayed work, will get another + // chance to run before the loop goes to sleep. + bool more_delayed_work = !next_time.is_null(); + if (more_delayed_work) { + TimeDelta delay = next_time - TimeTicks::Now(); + if (delay > TimeDelta()) { + // There's more delayed work to be done in the future. + ScheduleDelayedWork(next_time); + } else { + // There's more delayed work to be done, and its time is in the past. + // Arrange to come back here directly as long as the loop is still + // running. + resignal_work_source = true; + } + } + } + + if (resignal_work_source) { + CFRunLoopSourceSignal(work_source_); + } + + return resignal_work_source; +} + +bool MessagePumpUVNSRunLoop::RunIdleWork() { + if (!delegate_) { + // This point can be reached with a NULL delegate_ if Run is not on the + // stack but foreign code is spinning the CFRunLoop. Arrange to come back + // here when a delegate is available. + delegateless_idle_work_ = true; + return false; + } + + // The NSApplication-based run loop only drains the autorelease pool at each + // UI event (NSEvent). The autorelease pool is not drained for each + // CFRunLoopSource target that's run. Use a local pool for any autoreleased + // objects if the app is not currently handling a UI event to ensure they're + // released promptly even in the absence of UI events. + MessagePumpScopedAutoreleasePool autorelease_pool(this); + + // Call DoIdleWork once, and if something was done, arrange to come back here + // again as long as the loop is still running. + bool did_work = delegate_->DoIdleWork(); + if (did_work) { + CFRunLoopSourceSignal(idle_work_source_); + } + + return did_work; +} + +void MessagePumpUVNSRunLoop::PreWaitObserverHook() { + // call tick callback before sleep in mach port + // in the same way node upstream handle this in MakeCallBack, + // or the tick callback is blocked in some cases + nw::KickNextTick(); +} + +MessagePumpUVNSRunLoop::MessagePumpUVNSRunLoop() + : keep_running_(true) { + CFRunLoopSourceContext source_context = CFRunLoopSourceContext(); + source_context.perform = NoOp; + quit_source_ = CFRunLoopSourceCreate(NULL, // allocator + 0, // priority + &source_context); + CFRunLoopAddSourceToAllModes(run_loop(), quit_source_); + + embed_closed_ = 0; + int pipefds[2]; + if (pipe(pipefds) != 0) abort(); + + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + int worker_support = command_line.HasSwitch("enable-node-worker") ? 1 : 0; //kEnableNodeWorker + + g_uv_init_nw_fn(worker_support); + g_uv_default_loop_fn(); + + g_kqueue_thread_pipe_fd = pipefds[0]; + g_main_thread_pipe_fd = pipefds[1]; + g_kqueue_fd = g_uv_backend_fd_fn(); + + g_msg_pump_ctor_osx_fn(&ctx_, (void*)EmbedThreadRunner, (void*)kevent_hook, this, worker_support); +} + +MessagePumpUVNSRunLoop::~MessagePumpUVNSRunLoop() { + CFRunLoopRemoveSourceFromAllModes(run_loop(), quit_source_); + CFRelease(quit_source_); + // Clear uv. + embed_closed_ = 1; + g_msg_pump_dtor_osx_fn(&ctx_); +} + +void MessagePumpUVNSRunLoop::DoRun(Delegate* delegate) { + + // Pause uv in nested loop. + if (nesting_level() > 0) { + pause_uv_ = true; + while (keep_running_) { + // NSRunLoop manages autorelease pools itself. + [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode + beforeDate:[NSDate distantFuture]]; + } + } else { + while (keep_running_) { + g_uv_runloop_once_fn(); + } + } + + keep_running_ = true; + // Resume uv. + if (nesting_level() > 0) { + pause_uv_ = false; + } +} + +void MessagePumpUVNSRunLoop::Quit() { + keep_running_ = false; + CFRunLoopSourceSignal(quit_source_); + CFRunLoopWakeUp(run_loop()); + write(g_main_thread_pipe_fd, "q", 1); +} + +void MessagePumpUVNSRunLoop::EmbedThreadRunner(void *arg) { + bool check_kqueue = false; + + base::MessagePumpUVNSRunLoop* message_pump = static_cast(arg); + + NSAutoreleasePool* pool = [NSAutoreleasePool new]; // To avoid the warning. + + while (true) { + int nfds = g_kqueue_thread_pipe_fd + 1; + fd_set fds; + FD_ZERO(&fds); + FD_SET(g_kqueue_thread_pipe_fd, &fds); + if (check_kqueue) { + FD_SET(g_kqueue_fd, &fds); + if (g_kqueue_fd + 1 > nfds) nfds = g_kqueue_fd + 1; + } + + EVENTLOOP_DEBUG_C((printf("Calling select: %d\n", check_kqueue))); + int res = select(nfds, &fds, NULL, NULL, NULL); + if (res <= 0) abort(); // TODO(deanm): Handle signals, etc. + + if (FD_ISSET(g_kqueue_fd, &fds)) { + EVENTLOOP_DEBUG_C((printf("postEvent\n"))); + message_pump->ScheduleWork(); + check_kqueue = false; + } + + if (FD_ISSET(g_kqueue_thread_pipe_fd, &fds)) { + char msg; + ssize_t amt = read(g_kqueue_thread_pipe_fd, &msg, 1); + if (amt != 1) abort(); // TODO(deanm): Handle errors. + if (msg == 'q') { // quit. + EVENTLOOP_DEBUG_C((printf("quitting kqueue helper\n"))); + break; + } + check_kqueue = msg == '~'; // ~ - start, ! - stop. + } + } + + [pool drain]; + +} + +} // namespace base diff --git a/base/native_library_posix.cc b/base/native_library_posix.cc index 3459716af1c68..68d6abe1a0594 100644 --- a/base/native_library_posix.cc +++ b/base/native_library_posix.cc @@ -29,7 +29,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FilePath& library_path, // please refer to the bug tracker. Some useful bug reports to read include: // http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892, // and http://crbug.com/40794. - int flags = RTLD_LAZY; + int flags = RTLD_LAZY | RTLD_GLOBAL; #if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND) // Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires // further investigation, as it might vary across versions. Crash here to diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc index 44eafcfb05a72..04b051bf7f870 100644 --- a/base/process/launch_posix.cc +++ b/base/process/launch_posix.cc @@ -480,6 +480,7 @@ Process LaunchProcess(const std::vector& argv, #ifndef PR_SET_NO_NEW_PRIVS #define PR_SET_NO_NEW_PRIVS 38 #endif +#if 0 if (!options.allow_new_privs) { if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) && errno != EINVAL) { // Only log if the error is not EINVAL (i.e. not supported). @@ -493,6 +494,7 @@ Process LaunchProcess(const std::vector& argv, _exit(127); } } +#endif #endif if (current_directory != nullptr) { diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h index 07b78aa9641e1..3c3989b7dde21 100644 --- a/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h @@ -17,6 +17,12 @@ class ScopedAllowWaitForLegacyWebViewApi; namespace blimp { class BlimpBrowserTest; } + +namespace extensions { +class NwAppSetProxyConfigFunction; +class ContentVerifier; +} + namespace cc { class CompletionEvent; class SingleThreadTaskGraphRunner; @@ -215,6 +221,9 @@ class BASE_EXPORT ThreadRestrictions { friend class ui::CommandBufferLocal; friend class ui::GpuState; + friend class extensions::NwAppSetProxyConfigFunction; + friend class extensions::ContentVerifier; + // END ALLOWED USAGE. // BEGIN USAGE THAT NEEDS TO BE FIXED. friend class ::chromeos::BlockingMethodCaller; // http://crbug.com/125360 diff --git a/build/compiler_version.py b/build/compiler_version.py index 8db0108110963..8d80f0cbcbb02 100755 --- a/build/compiler_version.py +++ b/build/compiler_version.py @@ -54,7 +54,7 @@ def GetVersion(compiler, tool): try: # Note that compiler could be something tricky like "distcc g++". if tool == "assembler": - compiler = compiler + " -Xassembler --version -x assembler -c /dev/null" + compiler = compiler + " --version -Xassembler -x assembler -c /dev/null" # Unmodified: GNU assembler (GNU Binutils) 2.24 # Ubuntu: GNU assembler (GNU Binutils for Ubuntu) 2.22 # Fedora: GNU assembler version 2.23.2 diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index c24875858c0dc..dabda2aa7f70c 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn @@ -177,6 +177,9 @@ config("feature_flags") { if (is_official_build) { defines += [ "OFFICIAL_BUILD" ] } + if (nwjs_sdk) { + defines += [ "NWJS_SDK" ] + } if (is_chrome_branded) { defines += [ "GOOGLE_CHROME_BUILD" ] } else { diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index f354f17b0d319..6d68aa41c32b4 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -133,6 +133,8 @@ declare_args() { # Debug build. Enabling official builds automatically sets is_debug to false. is_debug = !is_official_build + nwjs_sdk = true + # Whether we're a traditional desktop unix. is_desktop_linux = current_os == "linux" diff --git a/build/config/allocator.gni b/build/config/allocator.gni index f723e4d48ce4f..18645f409a581 100644 --- a/build/config/allocator.gni +++ b/build/config/allocator.gni @@ -10,7 +10,7 @@ if (is_android || current_cpu == "mipsel" || is_mac || is_ios || is_asan || (is_linux && target_cpu == "arm64")) { _default_allocator = "none" } else { - _default_allocator = "tcmalloc" + _default_allocator = "none" } # The debug CRT on Windows has some debug features that are incompatible with diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni index c649018a7a0ae..7b527b6bd5638 100644 --- a/build/config/chrome_build.gni +++ b/build/config/chrome_build.gni @@ -10,7 +10,7 @@ declare_args() { # Break chrome.dll into multple pieces based on process type. Only available # on Windows. - is_multi_dll_chrome = is_win && !is_component_build + is_multi_dll_chrome = false #is_win && !is_component_build } # Refers to the subdirectory for branding in various places including diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index c4d61e2281a76..ecce834854e41 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -61,7 +61,7 @@ declare_args() { # Omit unwind support in official builds to save space. # We can use breakpad for these builds. - exclude_unwind_tables = is_chrome_branded && is_official_build + exclude_unwind_tables = true #is_chrome_branded && is_official_build # If true, gold linker will save symbol table inside object files. # This speeds up gdb startup by 60% @@ -903,6 +903,7 @@ config("default_warnings") { "/wd4457", "/wd4458", "/wd4459", + "/wd4275", ] cflags += [ diff --git a/build/config/features.gni b/build/config/features.gni index 8154154c3d8ea..b2be6a284c287 100644 --- a/build/config/features.gni +++ b/build/config/features.gni @@ -27,8 +27,7 @@ declare_args() { # Enables Native Client support. # Temporarily disable nacl on arm64 linux to get rid of compilation errors. # TODO(mcgrathr): When mipsel-nacl-clang is available, drop the exclusion. - enable_nacl = !is_ios && !is_android && !is_chromecast && - current_cpu != "mipsel" && !(is_linux && target_cpu == "arm64") + enable_nacl = false # Non-SFI is not yet supported on mipsel enable_nacl_nonsfi = current_cpu != "mipsel" @@ -41,7 +40,7 @@ declare_args() { # Enables proprietary codecs and demuxers; e.g. H264, AAC, MP3, and MP4. # We always build Google Chrome and Chromecast with proprietary codecs. - proprietary_codecs = is_chrome_branded || is_chromecast + proprietary_codecs = true # Variable safe_browsing is used to control the build time configuration for # safe browsing feature. Safe browsing can be compiled in 3 different levels: @@ -52,7 +51,7 @@ declare_args() { } else if (is_android) { safe_browsing_mode = 2 } else { - safe_browsing_mode = 1 + safe_browsing_mode = 0 } # Set to true make a build that disables activation of field trial tests diff --git a/build/config/nacl/rules.gni b/build/config/nacl/rules.gni index 0d6d03640a3de..88a281813fc73 100644 --- a/build/config/nacl/rules.gni +++ b/build/config/nacl/rules.gni @@ -74,7 +74,11 @@ template("generate_nmf") { # Starts empty so the code below can use += everywhere. data = [] - nmfflags += [ "--library-path=" + rebase_path(root_out_dir) ] + if (target_os == "linux") { + nmfflags += [ "--library-path=" + rebase_path("${root_out_dir}/lib") ] + } else { + nmfflags += [ "--library-path=" + rebase_path("${root_out_dir}") ] + } # NOTE: There is no explicit dependency for the lib directory # (lib32 and lib64 for x86/x64) created in the product directory. diff --git a/build/gyp_chromium.py b/build/gyp_chromium.py index ab2e470dce305..6deea0fa762da 100644 --- a/build/gyp_chromium.py +++ b/build/gyp_chromium.py @@ -61,7 +61,6 @@ def main(): sys.exit(gyp.main(sys.argv[1:] + [ '--check', '--no-circular-check', - '-I', os.path.join(script_dir, 'common.gypi'), '-D', 'gyp_output_dir=out'])) if __name__ == '__main__': diff --git a/build/toolchain/toolchain.gni b/build/toolchain/toolchain.gni index baa4387d151cd..ce9d7dd4f48e1 100644 --- a/build/toolchain/toolchain.gni +++ b/build/toolchain/toolchain.gni @@ -65,7 +65,11 @@ assert(!use_xcode_clang || target_os == "ios", # TODO(agrieve): GYP sets this to "lib" for Linux & Android, but this won't work # in GN until support for loadable_module() is added. # See: https://codereview.chromium.org/1236503002/ -shlib_subdir = "." +if (is_linux) { + shlib_subdir = "lib" +} else { + shlib_subdir = "." +} # Root out dir for shared library files. root_shlib_dir = root_out_dir diff --git a/build/util/version.gypi b/build/util/version.gypi new file mode 100644 index 0000000000000..327a5c2e5f596 --- /dev/null +++ b/build/util/version.gypi @@ -0,0 +1,20 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'variables': { + 'version_py_path': '<(DEPTH)/build/util/version.py', + 'version_path': '<(DEPTH)/chrome/VERSION', + 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', + }, + 'version_py_path': '<(version_py_path)', + 'version_path': '<(version_path)', + 'lastchange_path': '<(lastchange_path)', + 'version_full': + ' -o -a ' parser = optparse.OptionParser(usage=usage) - parser.add_option('-i', '--input', help='reorder chrome.exe in DIR', + parser.add_option('-i', '--input', help='reorder nw.exe in DIR', metavar='DIR') - parser.add_option('-o', '--output', help='write new chrome.exe to DIR', + parser.add_option('-o', '--output', help='write new nw.exe to DIR', metavar='DIR') parser.add_option('-a', '--arch', help='architecture of build (optional)', default='ia32') diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn index 24e39797b9732..e04d301ad1793 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -47,11 +47,11 @@ if (is_win) { # See comment in chrome_dll.gypi in the hardlink_to_output # target for why this cannot be 'initial' like the DLL. inputs = [ - "$root_out_dir/initialexe/chrome.exe", + "$root_out_dir/initialexe/nw.exe", ] outputs = [ - "$root_out_dir/chrome.exe", - "$root_out_dir/chrome.exe.pdb", + "$root_out_dir/nw.exe", + "$root_out_dir/nw.exe.pdb", ] args = [ "-i", @@ -111,9 +111,9 @@ if (!is_android && !is_mac) { executable("chrome_initial") { if (is_win) { - output_name = "initialexe/chrome" + output_name = "initialexe/nw" } else { - output_name = "chrome" + output_name = "nw" } # Because the sources list varies so significantly per-platform, generally @@ -134,7 +134,7 @@ if (!is_android && !is_mac) { ] if (is_linux || is_win) { data += [ - "$root_out_dir/chrome_100_percent.pak", + "$root_out_dir/nw_100_percent.pak", "$root_out_dir/locales/en-US.pak", "$root_out_dir/locales/fr.pak", ] @@ -213,13 +213,24 @@ if (!is_android && !is_mac) { } if (is_linux) { - sources += [ - "app/chrome_dll_resource.h", - "app/chrome_main.cc", - "app/chrome_main_delegate.cc", - "app/chrome_main_delegate.h", - ] + if (!is_component_build) { + # Set rpath to find our own libfreetype even in a non-component build. + configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] + } + + # NWJS: we use upstream like config in component build, but put everything in + # main dll in static build, as we did before GN migration + + if (is_component_build) { + sources += [ + "app/chrome_dll_resource.h", + "app/chrome_main.cc", + "app/chrome_main_delegate.cc", + "app/chrome_main_delegate.h", + ] + } + if (is_component_build) { deps += [ # On Linux, link the dependencies (libraries) that make up actual # Chromium functionality directly into the executable. @@ -231,21 +242,32 @@ if (!is_android && !is_mac) { "//chrome/installer/util:with_no_strings", "//content/public/app:both", ] - if (enable_plugins && enable_pdf) { + } else { + deps += [ + ":chrome_dll", + ":main_dll", + ] + } + + if (is_component_build && enable_plugins && enable_pdf) { deps += [ "//pdf" ] } + if (is_component_build) { public_deps = [ ":xdg_mime", # Needs to be public for installer to consume files. "//chrome/common:features", ] + } ldflags = [ "-pie" ] + if (is_component_build) { if (use_pango || use_cairo) { # Needed for chrome_main.cc initialization of libraries. configs += [ "//build/config/linux/pangocairo" ] } + } if (use_x11) { configs += [ @@ -269,6 +291,14 @@ if (!is_android && !is_mac) { if (is_chromeos) { deps += [ "//third_party/adobe/flash:flapper_binaries" ] } + deps += [ + "//content/nw:nw_base", + ] + if (is_component_build) { + deps += [ + "//components/startup_metric_utils/browser:lib", + ] + } data_deps += [ "//third_party/widevine/cdm:widevinecdmadapter" ] @@ -279,7 +309,7 @@ if (!is_android && !is_mac) { } } # !is_android && !is_mac -if (is_win) { +if (is_win || (is_linux && !is_component_build)) { # This target is a forwarding target to compile the necessary DLLs used # by Chrome. group("chrome_dll") { @@ -294,6 +324,7 @@ if (is_win) { shared_library("main_dll") { configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [] + ldflags = [] sources = [ "//base/win/dllmain.cc", @@ -304,32 +335,37 @@ if (is_win) { "app/chrome_main_mac.mm", ] - output_name = "chrome" + output_name = "nw" deps = [ ":browser_dependencies", - ":chrome_dll_manifest", - ":chrome_dll_version", - "//base/trace_event/etw_manifest:chrome_events_win", "//build/config/sanitizers:deps", "//chrome/app:chrome_dll_resources", "//chrome/app:command_ids", - "//chrome/app/theme:chrome_unscaled_resources", "//chrome/common:features", - "//chrome/install_static:install_static_util", - "//chrome/install_static:secondary_module", - "//chrome_elf", - "//components/crash/content/app", - "//components/policy:generated", - "//content/app/resources", - "//crypto", - "//net:net_resources", - "//third_party/cld", - "//third_party/wtl", - "//ui/views", + #"//third_party/cld", ] - ldflags = [ + # reverts commit a2052ac9b6ec749735f3d8e269bf5a5600935914 + if (is_win) { + deps += [ + ":chrome_dll_manifest", + ":chrome_dll_version", + "//base/trace_event/etw_manifest:chrome_events_win", + "//chrome/app/theme:chrome_unscaled_resources", + "//chrome/install_static:install_static_util", + "//chrome/install_static:secondary_module", + "//chrome_elf", + "//components/crash/content/app", + "//components/policy:generated", + "//content/app/resources", + "//crypto", + "//net:net_resources", + "//third_party/wtl", + "//ui/views", + ] + + ldflags += [ "/DELAYLOAD:comdlg32.dll", "/DELAYLOAD:crypt32.dll", "/DELAYLOAD:cryptui.dll", @@ -354,6 +390,7 @@ if (is_win) { configs += [ "//build/config/win:default_large_module_incremental_linking" ] } + } #is_win if (use_aura) { deps += [ "//ui/compositor" ] @@ -404,14 +441,17 @@ if (is_win) { "//build/config/sanitizers:deps", "//chrome/browser/policy:path_parser", "//chrome/common:features", - "//chrome/install_static:install_static_util", - "//chrome/install_static:secondary_module", - "//chrome_elf", "//components/browser_watcher:browser_watcher_client", "//components/crash/content/app", "//content/public/app:child", ] + if (is_win) { + deps += [ + "//chrome/install_static:install_static_util", + "//chrome/install_static:secondary_module", + "//chrome_elf", + ] ldflags = [ "/DELAYLOAD:d3d11.dll", "/DELAYLOAD:d3d9.dll", @@ -450,12 +490,14 @@ if (is_win) { "/USEPROFILE", ] } + } #is_win if (enable_plugins && enable_pdf) { deps += [ "//pdf" ] } } } + if (is_win) { copy("copy_first_run") { sources = [ "app/firstRun", @@ -464,6 +506,7 @@ if (is_win) { "$root_out_dir/First Run", ] } + } } else if (is_mac) { chrome_helper_name = chrome_product_full_name + " Helper" chrome_framework_name = chrome_product_full_name + " Framework" @@ -549,7 +592,7 @@ if (is_win) { # Remove the default strip configuration (which strips all symbols) so that # a saves file can be specified. - if (enable_stripping) { + if (false) { remove_configs = [ "//build/config/mac:strip_all" ] ldflags = @@ -723,7 +766,7 @@ if (is_win) { # Remove the default strip configuration (which strips all symbols) so that # a saves file can be specified. - if (enable_stripping) { + if (false) { remove_configs = [ "//build/config/mac:strip_all" ] ldflags += @@ -848,7 +891,8 @@ if (is_win) { } else if (current_cpu == "x64") { sources += [ "$root_out_dir/nacl_irt_x86_64.nexe" ] } - public_deps += [ "//ppapi/native_client:irt" ] + sources += [ "$root_out_dir/pnacl" ] + public_deps += [ "//ppapi/native_client:irt", "//ppapi/native_client/src/untrusted/pnacl_support_extension:pnacl_support_extension" ] } } } else { @@ -971,6 +1015,8 @@ if (is_win) { ":chrome_framework_shared_library", ] + output_name = "nw" + sources = [ "app/chrome_crash_reporter_client.cc", "app/chrome_crash_reporter_client.h", @@ -991,7 +1037,8 @@ if (is_win) { "//components/crash/content/app", "//components/policy:generated", "//content/public/app:both", - "//third_party/cld", + #"//third_party/cld", + "//ui/events:dom_keycode_converter", ] if (is_component_build) { @@ -1082,7 +1129,7 @@ if (is_win) { ldflags += [ "-rpath", "@loader_path/../../../../..", - "-Wl,-reexport_library,libchrome_dll.dylib", + "-Wl,-reexport_library,libnw.dylib", ] data_deps = [ @@ -1101,7 +1148,7 @@ if (is_win) { assert(_framework_binary_path != "", "Ignore configuration-dependent unused variable warning") - if (!is_asan && !is_component_build) { + if (!is_asan && !is_component_build && false) { action("verify_chrome_framework_order") { script = "//chrome/tools/build/mac/run_verify_order.py" stamp_file = "$target_out_dir/run_$target_name.stamp" @@ -1163,6 +1210,7 @@ if (is_win) { # Use an absolute path to dump_syms in case a user has it in their path. args = rebase_path(outputs, root_out_dir) + [ rebase_path("$root_out_dir/dump_syms"), + "-a", "x86_64", "-g", rebase_path( "$root_out_dir/{{source_name_part}}.dSYM/Contents/Resources/DWARF/{{source_name_part}}", @@ -1179,6 +1227,36 @@ if (is_win) { ] } + action("nw_sym_archive") { + script = "//content/nw/tools/archive_symbols.py" + + _syms = [ + "$root_out_dir/$chrome_framework_name-$chrome_version_full.breakpad", + "$root_out_dir/$chrome_helper_name-$chrome_version_full.breakpad", + "$root_out_dir/$chrome_product_full_name-$chrome_version_full.breakpad", + "$root_out_dir/crashpad_handler-$chrome_version_full.breakpad", + ] + + sources = _chrome_symbols_sources + + _output = "$root_out_dir/nwjs.breakpad.tar" + + outputs = [ + _output, + ] + + args = [ rebase_path(_output, root_out_dir) ] + + rebase_path(_syms, root_out_dir) + + deps = [ + ":chrome_app", + ":chrome_dump_syms", + ":chrome_framework", + ":chrome_helper_app", + "//third_party/crashpad/crashpad/handler:crashpad_handler", + ] + } + action("chrome_dsym_archive") { script = "//chrome/tools/build/mac/archive_symbols.py" @@ -1579,7 +1657,7 @@ if (is_linux) { dump_syms_binary = get_label_info(dump_syms_label, "root_out_dir") + "/" + "dump_syms" - chrome_binary = "$root_out_dir/chrome" + chrome_binary = "$root_out_dir/nw" if (current_cpu == "x86") { # GYP used "ia32" so keep that naming for back-compat. symbol_file = "$root_out_dir/chrome.breakpad.ia32" diff --git a/chrome/app/app-Info.plist b/chrome/app/app-Info.plist index c5939d4d093fb..03ac630d3e501 100644 --- a/chrome/app/app-Info.plist +++ b/chrome/app/app-Info.plist @@ -336,7 +336,7 @@ public.data UTTypeDescription - Chromium Extra + NWJS Extra UTTypeIdentifier org.chromium.extension UTTypeTagSpecification diff --git a/chrome/app/chrome_crash_reporter_client.cc b/chrome/app/chrome_crash_reporter_client.cc index b113ba1b7d631..deea8700c13f1 100644 --- a/chrome/app/chrome_crash_reporter_client.cc +++ b/chrome/app/chrome_crash_reporter_client.cc @@ -62,7 +62,7 @@ void ChromeCrashReporterClient::GetProductNameAndVersion( *product_name = "Chrome_ChromeOS"; #else // OS_LINUX #if !defined(ADDRESS_SANITIZER) - *product_name = "Chrome_Linux"; + *product_name = "NWJS"; #else *product_name = "Chrome_Linux_ASan"; #endif @@ -95,8 +95,9 @@ size_t ChromeCrashReporterClient::RegisterCrashKeys() { } bool ChromeCrashReporterClient::IsRunningUnattended() { - std::unique_ptr env(base::Environment::Create()); - return env->HasVar(env_vars::kHeadless); + // std::unique_ptr env(base::Environment::Create()); + // return env->HasVar(env_vars::kHeadless); + return true; } bool ChromeCrashReporterClient::GetCollectStatsConsent() { diff --git a/chrome/app/chrome_crash_reporter_client_win.cc b/chrome/app/chrome_crash_reporter_client_win.cc index ac089d5373a24..7cad90e529d1f 100644 --- a/chrome/app/chrome_crash_reporter_client_win.cc +++ b/chrome/app/chrome_crash_reporter_client_win.cc @@ -254,7 +254,9 @@ void ChromeCrashReporterClient::InitializeCrashReportingForProcess() { std::string process_type = install_static::GetSwitchValueFromCommandLine( ::GetCommandLineA(), install_static::kProcessType); - if (process_type != install_static::kCrashpadHandler) { + std::string disable_crash_handler = install_static::GetSwitchValueFromCommandLine( + ::GetCommandLineA(), "disable-crash-handler"); + if (process_type != install_static::kCrashpadHandler && disable_crash_handler != "true") { crash_reporter::SetCrashReporterClient(instance); crash_reporter::InitializeCrashpadWithEmbeddedHandler(process_type.empty(), process_type); diff --git a/chrome/app/chrome_dll.ver b/chrome/app/chrome_dll.ver index 910fca21d178a..fccabec864571 100644 --- a/chrome/app/chrome_dll.ver +++ b/chrome/app/chrome_dll.ver @@ -1,2 +1,2 @@ -INTERNAL_NAME=chrome_dll -ORIGINAL_FILENAME=chrome.dll +INTERNAL_NAME=nw_dll +ORIGINAL_FILENAME=nw.dll diff --git a/chrome/app/chrome_exe.ver b/chrome/app/chrome_exe.ver index a2d39013f5a5d..17bb91f1806de 100644 --- a/chrome/app/chrome_exe.ver +++ b/chrome/app/chrome_exe.ver @@ -1,2 +1,2 @@ -INTERNAL_NAME=chrome_exe -ORIGINAL_FILENAME=chrome.exe +INTERNAL_NAME=nw_exe +ORIGINAL_FILENAME=nw.exe diff --git a/chrome/app/chrome_exe_main_mac.c b/chrome/app/chrome_exe_main_mac.c index 135e547414cf7..33f06f38bcaa0 100644 --- a/chrome/app/chrome_exe_main_mac.c +++ b/chrome/app/chrome_exe_main_mac.c @@ -70,7 +70,7 @@ __attribute__((visibility("default"))) int main(int argc, char* argv[]) { } snprintf(framework_path, framework_path_size, "%s/%s", parent_dir, rel_path); - void* library = dlopen(framework_path, RTLD_LAZY | RTLD_LOCAL | RTLD_FIRST); + void* library = dlopen(framework_path, RTLD_LAZY | RTLD_FIRST); if (!library) { fprintf(stderr, "dlopen %s: %s\n", framework_path, dlerror()); abort(); diff --git a/chrome/app/chrome_exe_main_win.cc b/chrome/app/chrome_exe_main_win.cc index a9fe7c9883c66..34aa5453939b9 100644 --- a/chrome/app/chrome_exe_main_win.cc +++ b/chrome/app/chrome_exe_main_win.cc @@ -223,6 +223,12 @@ int main() { HasValidWindowsPrefetchArgument(*command_line)); if (process_type == crash_reporter::switches::kCrashpadHandler) { + // HACK: Let Windows know that we have started. This is needed to suppress + // the IDC_APPSTARTING cursor from being displayed for a prolonged period + // while a subprocess is starting. NWJS#4685 + PostThreadMessage(GetCurrentThreadId(), WM_NULL, 0, 0); + MSG msg; + PeekMessage(&msg, NULL, 0, 0, PM_REMOVE); return crash_reporter::RunAsCrashpadHandler( *base::CommandLine::ForCurrentProcess()); } @@ -237,8 +243,10 @@ int main() { EnableHighDPISupport(); +#if 0 //FIXME(nwjs) if (AttemptFastNotify(*command_line)) return 0; +#endif RemoveAppCompatFlagsEntry(); diff --git a/chrome/app/chrome_main.cc b/chrome/app/chrome_main.cc index 8c4d1176cc841..e8a9151df7568 100644 --- a/chrome/app/chrome_main.cc +++ b/chrome/app/chrome_main.cc @@ -66,7 +66,7 @@ int ChromeMain(int argc, const char** argv) { #if defined(OS_WIN) // The process should crash when going through abnormal termination. - base::win::SetShouldCrashOnProcessDetach(true); + base::win::SetShouldCrashOnProcessDetach(false); base::win::SetAbortBehaviorForCrashReporting(); params.instance = instance; params.sandbox_info = sandbox_info; diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc index b33dec417a1fe..5c3698ccbf86c 100644 --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc @@ -56,6 +56,7 @@ #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" +#include "content/nw/src/nw_base.h" #if defined(OS_WIN) #include #include @@ -152,6 +153,16 @@ base::LazyInstance g_chrome_content_gpu_client = LAZY_INSTANCE_INITIALIZER; + +#include "third_party/node/src/node_webkit.h" +#include "third_party/zlib/google/zip_reader.h" +#include "base/native_library.h" +#include "base/strings/utf_string_conversions.h" +#if defined(OS_MACOSX) +#include "base/mac/bundle_locations.h" +#include "base/strings/sys_string_conversions.h" +#endif + base::LazyInstance g_chrome_content_renderer_client = LAZY_INSTANCE_INITIALIZER; base::LazyInstance @@ -171,6 +182,13 @@ base::LazyInstance::Leaky g_chrome_crash_client = extern int NaClMain(const content::MainFunctionParams&); extern int ServiceProcessMain(const content::MainFunctionParams&); +#if defined(COMPONENT_BUILD) +CONTENT_EXPORT NodeStartFn g_node_start_fn; +#else +extern NodeStartFn g_node_start_fn; +#endif +SetBlobPathFn g_set_blob_path_fn = nullptr; + namespace { #if defined(OS_WIN) @@ -417,7 +435,7 @@ void InitializeUserDataDir() { // Append the fallback user data directory to the commandline. Otherwise, // child or service processes will attempt to use the invalid directory. - if (specified_directory_was_invalid) + //if (specified_directory_was_invalid) command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir); } @@ -478,9 +496,13 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exit_code) { chromeos::BootTimesRecorder::Get()->SaveChromeMainStats(); #endif - const base::CommandLine& command_line = + base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); +#if defined(OS_LINUX) + const bool is_browser = !command_line.HasSwitch(switches::kProcessType); +#endif + #if defined(OS_WIN) // Browser should not be sandboxed. const bool is_browser = !command_line.HasSwitch(switches::kProcessType); @@ -500,6 +522,35 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exit_code) { chrome::common::mac::EnableCFBundleBlocker(); #endif + const base::CommandLine::StringVector& args = command_line.GetArgs(); + if (args.size() > 0) { + zip::ZipReader reader; + base::FilePath fp(args[0]); + if (!command_line.HasSwitch(switches::kProcessType) && + base::PathExists(fp) && !base::DirectoryExists(fp) && !reader.Open(fp)) { + base::NativeLibraryLoadError error; +#if defined(OS_MACOSX) + base::FilePath node_dll_path = base::mac::FrameworkBundlePath().Append(base::FilePath::FromUTF8Unsafe(base::GetNativeLibraryName("node"))); + base::ScopedCFTypeRef natives_file_name(base::SysUTF8ToCFStringRef("natives_blob.bin")); + std::string blob_path = base::mac::PathForFrameworkBundleResource(natives_file_name).AsUTF8Unsafe(); +#else + base::FilePath node_dll_path = base::FilePath::FromUTF8Unsafe(base::GetNativeLibraryName("node")); +#endif + base::NativeLibrary node_dll = base::LoadNativeLibrary(node_dll_path, &error); + if(!node_dll) + LOG(FATAL) << "Failed to load node library (error: " << error.ToString() << ")"; + else { +#if defined(OS_MACOSX) + g_set_blob_path_fn = (SetBlobPathFn)base::GetFunctionPointerFromNativeLibrary(node_dll, "g_set_blob_path"); + g_set_blob_path_fn(blob_path.c_str()); +#endif + g_node_start_fn = (NodeStartFn)base::GetFunctionPointerFromNativeLibrary(node_dll, "g_node_start"); + *exit_code = g_node_start_fn(command_line.argc0(), command_line.argv0()); + } + return true; + } + } + Profiling::ProcessStarted(); base::trace_event::TraceLog::GetInstance()->SetArgumentFilterPredicate( @@ -654,6 +705,8 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exit_code) { metrics::LeakDetector::InitTLSSlot(); #endif + if (is_browser) + nw::InitNWPackage(); return false; } @@ -749,7 +802,8 @@ void ChromeMainDelegate::PreSandboxStartup() { // Initialize the user data dir for any process type that needs it. if (chrome::ProcessNeedsProfileDir(process_type)) { InitializeUserDataDir(); -#if defined(OS_WIN) && !defined(CHROME_MULTIPLE_DLL_CHILD) + +#if 0 if (downgrade::IsMSIInstall()) { downgrade::MoveUserDataForFirstRunAfterDowngrade(); base::FilePath user_data_dir; @@ -759,11 +813,13 @@ void ChromeMainDelegate::PreSandboxStartup() { #endif } +#if 0 // Register component_updater PathProvider after DIR_USER_DATA overidden by // command line flags. Maybe move the chrome PathProvider down here also? component_updater::RegisterPathProvider(chrome::DIR_COMPONENTS, chrome::DIR_INTERNAL_PLUGINS, chrome::DIR_USER_DATA); +#endif #if !defined(OS_ANDROID) && !defined(OS_WIN) // Android does InitLogging when library is loaded. Skip here. diff --git a/chrome/app/chrome_version.rc.version b/chrome/app/chrome_version.rc.version index 0ec74bdd42dd5..588068457adbf 100644 --- a/chrome/app/chrome_version.rc.version +++ b/chrome/app/chrome_version.rc.version @@ -10,8 +10,6 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION @MAJOR@,@MINOR@,@BUILD@,@PATCH@ - PRODUCTVERSION @MAJOR@,@MINOR@,@BUILD@,@PATCH@ FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -28,16 +26,13 @@ BEGIN BEGIN VALUE "CompanyName", "@COMPANY_FULLNAME@" VALUE "FileDescription", "@PRODUCT_FULLNAME@" - VALUE "FileVersion", "@MAJOR@.@MINOR@.@BUILD@.@PATCH@" VALUE "InternalName", "@INTERNAL_NAME@" VALUE "LegalCopyright", "@COPYRIGHT@" VALUE "OriginalFilename", "@ORIGINAL_FILENAME@" VALUE "ProductName", "@PRODUCT_FULLNAME@" - VALUE "ProductVersion", "@MAJOR@.@MINOR@.@BUILD@.@PATCH@" VALUE "CompanyShortName", "@COMPANY_SHORTNAME@" VALUE "ProductShortName", "@PRODUCT_SHORTNAME@" VALUE "LastChange", "@LASTCHANGE@" - VALUE "Official Build", "@OFFICIAL_BUILD@" END END BLOCK "VarFileInfo" diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd index 3b602d200ca82..0039bb0093557 100644 --- a/chrome/app/chromium_strings.grd +++ b/chrome/app/chromium_strings.grd @@ -142,17 +142,17 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> Disconnecting $1someone@example.com will clear your history, bookmarks, settings, and other Chromium data stored on this device. Data stored in your Google Account will not be cleared and can be managed on <a target="_blank" href="$2">Google Dashboard</a>. - Chromium + nwjs - Chromium + nwjs - Chromium + nwjs - Chromium is a web browser that runs webpages and applications with lightning speed. It's fast, stable, and easy to use. Browse the web more safely with malware and phishing protection built into Chromium. + nwjs runtime enables writing native application with Web technologies. @@ -165,10 +165,10 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> - Chromium App Launcher + nwjs App Launcher - Chromium Binaries + nwjs Binaries https://support.google.com/chrome/?p=ib_chromeframe @@ -218,7 +218,7 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> The Chromium Authors - Copyright {0,date,y}2016 The Chromium Authors. All rights reserved. + Copyright {0,date,y}2016 The Chromium Authors, NW.js contributors, Node.js. All rights reserved. @@ -721,13 +721,13 @@ Chromium is unable to recover your settings. - Chromium + nwjs - Chromium Helper + nwjs Helper - Chromium Helper + nwjs Helper diff --git a/chrome/app/framework.order b/chrome/app/framework.order index 8dc2eecd8c8ee..e25b5a506e87a 100644 --- a/chrome/app/framework.order +++ b/chrome/app/framework.order @@ -21,6 +21,267 @@ __ZdlPvS_ # Provided by build/sanitizers/sanitizer_options.cc in ASan builds. ___asan_default_options +__ZN4node14ErrnoExceptionEPN2v87IsolateEiPKcS4_S4_ +__ZN4node11UVExceptionEPN2v87IsolateEiPKcS4_S4_ +__ZN4node11UVExceptionEPN2v87IsolateEiPKcS4_S4_S4_ +__ZN4node16CallTickCallbackEPNS_11EnvironmentEN2v86HandleINS2_5ValueEEE +__ZN4node12MakeCallbackEPN2v87IsolateENS0_6HandleINS0_6ObjectEEEPKciPNS3_INS0_5ValueEEE +__ZN4node12MakeCallbackEPN2v87IsolateENS0_6HandleINS0_6ObjectEEENS3_INS0_6StringEEEiPNS3_INS0_5ValueEEE +__ZN4node12MakeCallbackEPN2v87IsolateENS0_6HandleINS0_6ObjectEEENS3_INS0_8FunctionEEEiPNS3_INS0_5ValueEEE +__ZN4node6EncodeEPN2v87IsolateEPKcmNS_8encodingE +__ZN4node6EncodeEPN2v87IsolateEPKtm +__ZN4node11DecodeBytesEPN2v87IsolateENS0_6HandleINS0_5ValueEEENS_8encodingE +__ZN4node11DecodeWriteEPN2v87IsolateEPcmNS0_6HandleINS0_5ValueEEENS_8encodingE +_node_module_register +__ZN4node14FatalExceptionEPN2v87IsolateERKNS0_8TryCatchE +__ZN4node9OnMessageEN2v86HandleINS0_7MessageEEENS1_INS0_5ValueEEE +__ZN4node15LoadEnvironmentEPNS_11EnvironmentE +__ZN4node4InitEPiPPKcS0_PS3_ +__ZN4node9RunAtExitEPNS_11EnvironmentE +__ZN4node6AtExitEPFvPvES0_ +__ZN4node14EmitBeforeExitEPNS_11EnvironmentE +__ZN4node8EmitExitEPNS_11EnvironmentE +__ZN4node17CreateEnvironmentEPN2v87IsolateENS0_6HandleINS0_7ContextEEEiPKPKciS9_ +__ZN4node17CreateEnvironmentEPN2v87IsolateEP9uv_loop_sNS0_6HandleINS0_7ContextEEEiPKPKciSB_ +__ZN4node5StartEiPPc +__ZN4node11SetupNWNodeEiPPc +__ZN4node15StartNWInstanceEiPPcN2v86HandleINS2_7ContextEEE +__ZN4node17SetNWTickCallbackEPFN2v86HandleINS0_5ValueEEEPNS_11EnvironmentES3_E +__ZN4node18CallNWTickCallbackEPNS_11EnvironmentEN2v86HandleINS2_5ValueEEE +__ZN4node6Buffer11HasInstanceEN2v86HandleINS1_5ValueEEE +__ZN4node6Buffer11HasInstanceEN2v86HandleINS1_6ObjectEEE +__ZN4node6Buffer4DataEN2v86HandleINS1_5ValueEEE +__ZN4node6Buffer4DataEN2v86HandleINS1_6ObjectEEE +__ZN4node6Buffer6LengthEN2v86HandleINS1_5ValueEEE +__ZN4node6Buffer6LengthEN2v86HandleINS1_6ObjectEEE +__ZN4node6Buffer3NewEPN2v87IsolateENS1_6HandleINS1_6StringEEENS_8encodingE +__ZN4node6Buffer3NewEPN2v87IsolateEm +__ZN4node6Buffer3NewEPN2v87IsolateEPKcm +__ZN4node6Buffer3NewEPN2v87IsolateEPcmPFvS4_PvES5_ +__ZN4node6Buffer3UseEPN2v87IsolateEPcj +__ZN4node4i18n22InitializeICUDirectoryEPKc +__ZN4node7smalloc17ExternalArraySizeEN2v817ExternalArrayTypeE +__ZN4node7smalloc5AllocEPN2v87IsolateENS1_6HandleINS1_6ObjectEEEmNS1_17ExternalArrayTypeE +__ZN4node7smalloc5AllocEPN2v87IsolateENS1_6HandleINS1_6ObjectEEEPcmNS1_17ExternalArrayTypeE +__ZN4node7smalloc5AllocEPN2v87IsolateENS1_6HandleINS1_6ObjectEEEmPFvPcPvES8_NS1_17ExternalArrayTypeE +__ZN4node7smalloc5AllocEPN2v87IsolateENS1_6HandleINS1_6ObjectEEEPcmPFvS7_PvES8_NS1_17ExternalArrayTypeE +__ZN4node7smalloc12AllocDisposeEPN2v87IsolateENS1_6HandleINS1_6ObjectEEE +__ZN4node7smalloc15HasExternalDataEPN2v87IsolateENS1_5LocalINS1_6ObjectEEE +_uv_fs_poll_init +_uv_fs_poll_start +_uv_fs_poll_stop +_uv_fs_poll_getpath +_uv_inet_ntop +_uv_inet_pton +_uv_queue_work +_uv_cancel +_uv_handle_size +_uv_req_size +_uv_loop_size +_uv_buf_init +_uv_err_name +_uv_strerror +_uv_ip4_addr +_uv_ip6_addr +_uv_ip4_name +_uv_ip6_name +_uv_tcp_bind +_uv_udp_bind +_uv_tcp_connect +_uv_udp_send +_uv_udp_try_send +_uv_udp_recv_start +_uv_udp_recv_stop +_uv_walk +_uv_ref +_uv_unref +_uv_has_ref +_uv_stop +_uv_now +_uv_recv_buffer_size +_uv_send_buffer_size +_uv_fs_event_getpath +_uv_fs_scandir_next +_uv_loop_configure +_uv_default_loop +_uv_loop_new +_uv_loop_close +_uv_loop_delete +_uv_version +_uv_version_string +_uv_async_init +_uv_async_send +_uv_hrtime +_uv_close +_uv_is_closing +_uv_backend_fd +_uv_backend_timeout +_uv_loop_alive +_uv_run +_uv_update_time +_uv_is_active +_uv_cwd +_uv_chdir +_uv_disable_stdio_inheritance +_uv_fileno +_uv_getrusage +_uv_dlopen +_uv_dlclose +_uv_dlsym +_uv_dlerror +_uv_fs_access +_uv_fs_chmod +_uv_fs_chown +_uv_fs_close +_uv_fs_fchmod +_uv_fs_fchown +_uv_fs_fdatasync +_uv_fs_fstat +_uv_fs_fsync +_uv_fs_ftruncate +_uv_fs_futime +_uv_fs_lstat +_uv_fs_link +_uv_fs_mkdir +_uv_fs_mkdtemp +_uv_fs_open +_uv_fs_read +_uv_fs_scandir +_uv_fs_readlink +_uv_fs_rename +_uv_fs_rmdir +_uv_fs_sendfile +_uv_fs_stat +_uv_fs_symlink +_uv_fs_unlink +_uv_fs_utime +_uv_fs_write +_uv_fs_req_cleanup +_uv_getaddrinfo +_uv_freeaddrinfo +_uv_getnameinfo +_uv_loop_init +_uv_prepare_init +_uv_prepare_start +_uv_prepare_stop +_uv_check_init +_uv_check_start +_uv_check_stop +_uv_idle_init +_uv_idle_start +_uv_idle_stop +_uv_pipe_init +_uv_pipe_bind +_uv_pipe_open +_uv_pipe_connect +_uv_pipe_getsockname +_uv_pipe_getpeername +_uv_pipe_pending_instances +_uv_pipe_pending_count +_uv_pipe_pending_type +_uv_poll_init +_uv_poll_init_socket +_uv_poll_stop +_uv_poll_start +_uv_spawn +_uv_process_kill +_uv_kill +_uv_signal_init +_uv_signal_start +_uv_signal_stop +_uv_accept +_uv_listen +_uv_shutdown +_uv_write2 +_uv_write +_uv_try_write +_uv_read_start +_uv_read_stop +_uv_is_readable +_uv_is_writable +_uv_stream_set_blocking +_uv_tcp_init +_uv_tcp_open +_uv_tcp_getsockname +_uv_tcp_getpeername +_uv_tcp_nodelay +_uv_tcp_keepalive +_uv_tcp_simultaneous_accepts +_uv_thread_create +_uv_thread_self +_uv_thread_join +_uv_thread_equal +_uv_mutex_init +_uv_mutex_destroy +_uv_mutex_lock +_uv_mutex_trylock +_uv_mutex_unlock +_uv_rwlock_init +_uv_rwlock_destroy +_uv_rwlock_rdlock +_uv_rwlock_tryrdlock +_uv_rwlock_rdunlock +_uv_rwlock_wrlock +_uv_rwlock_trywrlock +_uv_rwlock_wrunlock +_uv_once +_uv_sem_init +_uv_sem_destroy +_uv_sem_post +_uv_sem_wait +_uv_sem_trywait +_uv_cond_init +_uv_cond_destroy +_uv_cond_signal +_uv_cond_broadcast +_uv_cond_wait +_uv_cond_timedwait +_uv_barrier_init +_uv_barrier_destroy +_uv_barrier_wait +_uv_key_create +_uv_key_delete +_uv_key_get +_uv_key_set +_uv_timer_init +_uv_timer_start +_uv_timer_stop +_uv_timer_again +_uv_timer_set_repeat +_uv_timer_get_repeat +_uv_tty_init +_uv_tty_set_mode +_uv_tty_get_winsize +_uv_guess_handle +_uv_tty_reset_mode +_uv_udp_init +_uv_udp_open +_uv_udp_set_membership +_uv_udp_set_broadcast +_uv_udp_set_ttl +_uv_udp_set_multicast_ttl +_uv_udp_set_multicast_loop +_uv_udp_set_multicast_interface +_uv_udp_getsockname +_uv_setup_args +_uv_set_process_title +_uv_get_process_title +_uv_exepath +_uv_get_free_memory +_uv_get_total_memory +_uv_loadavg +_uv_resident_set_memory +_uv_uptime +_uv_cpu_info +_uv_free_cpu_info +_uv_interface_addresses +_uv_free_interface_addresses +_uv_fs_event_init +_uv_fs_event_start +_uv_fs_event_stop + + + # Entry point from the app mode loader. _ChromeAppModeStart_v4 diff --git a/chrome/app/main_dll_loader_win.cc b/chrome/app/main_dll_loader_win.cc index afab6bb49ebd4..06e176f8b787b 100644 --- a/chrome/app/main_dll_loader_win.cc +++ b/chrome/app/main_dll_loader_win.cc @@ -53,13 +53,24 @@ typedef int (*DLL_MAIN)(HINSTANCE, sandbox::SandboxInterfaceInfo*, int64_t); typedef void (*RelaunchChromeBrowserWithNewCommandLineIfNeededFunc)(); +#define BUFSIZE MAX_PATH + // Loads |module| after setting the CWD to |module|'s directory. Returns a // reference to the loaded module on success, or null on error. HMODULE LoadModuleWithDirectory(const base::FilePath& module) { + bool restore_directory = false; + TCHAR Buffer[BUFSIZE]; + if (::GetCurrentDirectoryW(BUFSIZE, Buffer)) { + restore_directory = true; + } ::SetCurrentDirectoryW(module.DirName().value().c_str()); PreReadFile(module); - return ::LoadLibraryExW(module.value().c_str(), nullptr, + HMODULE ret = ::LoadLibraryExW(module.value().c_str(), nullptr, LOAD_WITH_ALTERED_SEARCH_PATH); + if (restore_directory) + ::SetCurrentDirectory(Buffer); + + return ret; } void RecordDidRun(const base::FilePath& dll_path) { @@ -110,7 +121,7 @@ HMODULE MainDllLoader::Load(base::FilePath* module) { } HMODULE dll = LoadModuleWithDirectory(*module); if (!dll) { - PLOG(ERROR) << "Failed to load Chrome DLL from " << module->value(); + PLOG(ERROR) << "Failed to load NW DLL from " << module->value(); return nullptr; } diff --git a/chrome/app/nibs/MainMenu.xib b/chrome/app/nibs/MainMenu.xib index 5bd110deb5024..7de16d66f511f 100644 --- a/chrome/app/nibs/MainMenu.xib +++ b/chrome/app/nibs/MainMenu.xib @@ -1,557 +1,792 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + 1050 + 14B25 + 7702 + 1343.16 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 7702 + + + NSCustomObject + NSMenu + NSMenuItem + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + BrowserCrApplication + + + FirstResponder + + + BrowserCrApplication + + + NSFontManager + + + AMainMenu + + + + ^IDS_APP_MENU_PRODUCT_NAME + + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + 44002 + + + ^IDS_APP_MENU_PRODUCT_NAME + + + + ^IDS_ABOUT_MAC$IDS_PRODUCT_NAME + + 2147483647 + + + 40018 + + + + ^IDS_HIDE_APP_MAC$IDS_PRODUCT_NAME + h + 1048576 + 2147483647 + + + 44003 + + + + ^IDS_HIDE_OTHERS_MAC + h + 1572864 + 2147483647 + + + + + + ^IDS_SHOW_ALL_MAC + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + ^IDS_CONFIRM_TO_QUIT_OPTION + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + ^IDS_EXIT_MAC$IDS_PRODUCT_NAME + q + 1048576 + 2147483647 + + + 34031 + + + _NSAppleMenu + + + + + ^IDS_EDIT_MENU_MAC + + 2147483647 + + + submenuAction: + 36004 + + + ^IDS_EDIT_MENU_MAC + + + + ^IDS_EDIT_UNDO_MAC + z + 1048576 + 2147483647 + + + 50144 + + + + ^IDS_EDIT_REDO_MAC + Z + 1179648 + 2147483647 + + + 50145 + + + + YES + YES + + + 2147483647 + + + + + + ^IDS_CUT_MAC + x + 1048576 + 2147483647 + + + 50141 + + + + ^IDS_COPY_MAC + c + 1048576 + 2147483647 + + + 50140 + + + + ^IDS_PASTE_MAC + v + 1048576 + 2147483647 + + + 50142 + + + + ^IDS_PASTE_MATCH_STYLE_MAC + V + 1048576 + 2147483647 + + + 50147 + + + + YES + ^IDS_PASTE_MATCH_STYLE_MAC + V + 1572864 + 2147483647 + + + + + + ^IDS_EDIT_DELETE_MAC + + 2147483647 + + + 50143 + + + + ^IDS_EDIT_SELECT_ALL_MAC + a + 1048576 + 2147483647 + + + 50146 + + + + + + + ^IDS_WINDOW_MENU_MAC + + 2147483647 + + + submenuAction: + 34045 + + + ^IDS_WINDOW_MENU_MAC + + + + ^IDS_MINIMIZE_WINDOW_MAC + m + 1048576 + 2147483647 + + + 34046 + + + + ^IDS_ZOOM_WINDOW_MAC + + 2147483647 + + + 34047 + + + + ^IDS_ALL_WINDOWS_FRONT_MAC + + 2147483647 + + + 34048 + + + _NSWindowsMenu + + + + _NSMainMenu + + + ChromeUILocalizer + + + AppController + + + + NO + + + + delegate + + + + 485 + + + + terminate: + + + + 647 + + + + hide: + + + + 369 + + + + hideOtherApplications: + + + + 370 + + + + unhideAllApplications: + + + + 372 + + + + undo: + + + + 223 + + + + redo: + + + + 231 + + + + cut: + + + + 228 + + + + copy: + + + + 224 + + + + paste: + + + + 226 + + + + pasteAndMatchStyle: + + + + 696 + + + + pasteAndMatchStyle: + + + + 697 + + + + delete: + + + + 235 + + + + selectAll: + + + + 232 + + + + performMiniaturize: + + + + 37 + + + + performZoom: + + + + 240 + + + + arrangeInFront: + + + + 39 + + + + orderFrontStandardAboutPanel: + + + + 644 + + + + toggleConfirmToQuit: + + + + 688 + + + + owner_ + + + + 642 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 373 + + + + + 29 + + + + + + + + Main Menu + + + 56 + + + + + + + + 57 + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 145 + + + + + 150 + + + + + 149 + + + + + 687 + + + + + 686 + + + + + 136 + + + + + 217 + + + + + + + + 205 + + + + + + + + + + + + + + + + + 207 + + + + + 215 + + + + + 206 + + + + + 199 + + + + + 197 + + + + + 203 + + + + + 658 + + + + + 689 + + + + + 202 + + + + + 198 + + + + + 19 + + + + + + + + 24 + + + + + + + + + + 23 + + + + + 239 + + + + + 5 + + + + + 641 + + + + + 483 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + 0 + IBCocoaFramework + NO + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + {12, 12} + {10, 2} + + + + diff --git a/chrome/app/nw.dll.manifest b/chrome/app/nw.dll.manifest new file mode 100644 index 0000000000000..d068c1366cec5 --- /dev/null +++ b/chrome/app/nw.dll.manifest @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/chrome/app/nw.exe.manifest b/chrome/app/nw.exe.manifest new file mode 100644 index 0000000000000..d36f084b65946 --- /dev/null +++ b/chrome/app/nw.exe.manifest @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/chrome/app/theme/chromium/BRANDING b/chrome/app/theme/chromium/BRANDING index 6a6bc265f7eeb..0b950e39cb0be 100644 --- a/chrome/app/theme/chromium/BRANDING +++ b/chrome/app/theme/chromium/BRANDING @@ -1,9 +1,9 @@ -COMPANY_FULLNAME=The Chromium Authors -COMPANY_SHORTNAME=The Chromium Authors -PRODUCT_FULLNAME=Chromium -PRODUCT_SHORTNAME=Chromium -PRODUCT_INSTALLER_FULLNAME=Chromium Installer -PRODUCT_INSTALLER_SHORTNAME=Chromium Installer +COMPANY_FULLNAME=The NWJS Community +COMPANY_SHORTNAME=nwjs.io +PRODUCT_FULLNAME=nwjs +PRODUCT_SHORTNAME=nwjs +PRODUCT_INSTALLER_FULLNAME=NWJS Installer +PRODUCT_INSTALLER_SHORTNAME=NWJS Installer COPYRIGHT=Copyright 2016 The Chromium Authors. All rights reserved. -MAC_BUNDLE_ID=org.chromium.Chromium -MAC_CREATOR_CODE=Cr24 +MAC_BUNDLE_ID=io.nwjs.nwjs +MAC_CREATOR_CODE=NWJS \ No newline at end of file diff --git a/chrome/app/theme/chromium/mac/app.icns b/chrome/app/theme/chromium/mac/app.icns index 54ee532d7934dbc0a6a1bf085ec25dbb2f260932..1a03ae29c16fa304769c52951f2e81c06e390bb0 100644 GIT binary patch literal 378456 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%0DQAO4ijmnR!i*>>h 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�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

    R?bd+lpKX5hGGZR}j1l_x{!MIPw z%RyHo;b2>0Oki7rIDWUTj0d97puSjzm9gW@VTgZck!yY&_+)O>XFdlAXvN1+uQ}r{ z4QM=mFDgjJrevJihPZ!na5|rK>5OwAkM6u8Vh`InUtV1nugB(b7BF44eA>vaU>apx zIsTm`4#!hoL4q7fyojc1X|sp;`L?3Pa_*&tg2R$>!1v@^FlI~nOyCNy5>t~W(?2@O zVXy}Uxv@a@?l=MK;Wt(PHqd8s5D!R=p5mRBwLm7Tu0?}01$LZ6HN%Q15=E{Uf#D8} z9Vc81#6(4ho*_a=k@ZL4>CK$sB;yq>iiV*Z1w=_YNErg^bx#o8lQjp$%Ji1%^Rml{ zj|H1|l@lCIsiIg-5MUq3aO8sX~dWkgO1!t3tI$& zol=K*?F+m2qp!7cVx@3!zM6*OL|U*9^n8LojvSA+4S#SJf(HXzDC}UVeo|&(9l+wM zOH9|%QE+CYu~vYqjvH-2JZmHreAP!#Ri z*I~&4S`dFV@8(wuV;IUI89vTaV&nwhG+yBm7P9s*eZke~i)NSD0M9jcNcSU6CS|V$ zFF>@k*l>e$Ax<&tBnq4*{IPE0+}+{2J8^AqxK2wh)2pD$b~UQ+Y|XiXrvaX%pZ2aE z+c;lDjQ+r=JHZcO_)+g`huQyKWC85;^3P52zbWD(Qy54W7{pW`|^5esAq4`r-3$wRdzDHbL8&;p9k4% zySi#?2~nJAU=GA}&BpZP*l^ED^-Rmn_4G~q)bprO?SeDV9h%F|Xq}15$FTc5p9q-z zB7e(BJFuFuefCbn2=TRqsf+eh1Q}u614E+_aU;MK*K-qAYtmP1Jz!K??+!v0=Kdk9 zglfJ1_Wh$Z0>=yj9dBtdLiWX>lCLdhHgS5Dbrt3W?uROxSxJ0K&E*tj6Tqabw1kR7tkJk!fr2TS88$Y`i)n&rR!6McQOj}sMYn`eqs)}n|NtN4oq5Ic+G zm*5<9e|41(y=)KXDUP9+O2$C+DR^le@0_Y{Xml)@&?v&D#wGoKjKuW83(d^78=;C? zv3@&q6jccIL8`>DpO6?xVbih|Cyb0eROf%t&#&ZwmFBN|gE`&{f|OB07jql=&5h;~ z2!jNqzy3%+zO7JCnIV1}iQ|uk;gn=lm@rjL+Cgr2EYXra_3m-&pqnAYHxOyb+=r0l zr;BW9?cta+{N2+T7HlhZ<QbMDViG+b z2_N@uak`;_AkH|h%L>9k%unGT@YvI34EWPkPreD>&Jb za9Dz56DkQk^(2Y+!TMa4#hp^69W)Ej5B2i!jKG*MsYuTNmKZ6Ng{v9#ilM4OLr*`q zm^MD83c1gDEOWLR_eiFjM2>agy>zGdN49^S)#1a!XfN>7-VT~@`i#u=W#0$mv%W|N zI7?TlGwVY&?p>ZIf76X$;33sl6sjsL8jr-Kkvu!Q!y|HQ@2;?OJbA2?2_H?*3`j4w zwoLu(3$o=S(=4yddB#wV@i3PnAikwqF?qc9a7c!^08-(E9rK-S;Km`V-=i3XjiDHG ziM;T1wNOqN(vt>ysh5XuBH7&wtOOxewLl50p6Vrxa18d%CTkYreF@pOLcYA^)US(j zS1AI>s(3D#GWTQ+2QDIB@cxtej74i!)ijuRCJrU>TZLsY*O7!2e{&+jJ-+AT&k!$o z0l;~JV$bssP@?tOzb#yE>G)GlG7z#rE5>}N!d)8iS*;6RQkjSj7Yng|zO`)ja?~Cc zsUQvPNdYOj3(A=&#_3tu^T;avz!I!W&qzChO!*N8fqaPmUd)v=@NjN6nt-}YZ2n}? zrK2U9Si&{5YuhO|{-q8tU8{4`h++Ao>CLQMaQ!}`fGB7Z7fSyq?qx238u=Sd54VWI zux^=ueYt_HBJxFGrES7=kFs)YIygYe+6v5*NiB5mkYFmiyQqFg&N42}4H@npcNni@ zA~v{?_>=syNi+ynQxbR8O9B5@Vgd{~4S;NP6(g)#aDmsqX5_klb0zw3aI6khHJcMU zM^}Xcx}I%8)31++r~ZH+FKaknVuxEPqEV(gnZpQLTQh6k>Bgs0D!IVQrQWMsS(e^r zqogK-kLM8L`q3}0qk|4Jb2M~w!nlxDoi!Oqta1%8+T`EZkdrD>B)W_ zFw-7~%T|BeE(BqgLX{#r0L~X1joXs!0DP!3O3kW zk?YoQ@fcH~vbLU#m+Iq#(FXJz``TwE=ZO^|66AZ~82d1M7kwQO2m)TGG+3tvBHs;h z>86XCY4ze+!n#OWDhP=!#%5@IIOzDAs16zsNxJk7l1pW%v|V|cu*6D_Vy00#?awPEJqMz}r?H&dp>G`Wp!NI(+XWc2MM#_WiM*mq zGZ$#iVpU9zdmVPy4YTM3lv@yUzd8jU!tJ)}uP{8#OnsJV@g!Np$q>g9>@55pWl9;Ve)Q z>zh^d^*;9z!{6p+03=V3Zi1dN-#mjvAaEbp#JlgG@I+JUz?Y#H1CeSOzrIWzlDw;N zXsL$(VIcotroHSWCD_aklIk?L?K0*>aFdCH85z!vo=eSZ*_WFp;xOD}Lb-!!m61fr%h&T&1gSxl?%#+-neJOc_BG|hjlz!gR#tWCSD z;T+%hz%P)e1BacczBh_X^vyvRAYIcHx2a6S+b*a8lzmVXT1Ev7`G7)^cC#I^H7?bp zGYa#A^{iHhdoK*z8sUbBwYH{NY)>Ljy^!xYsqc=@=Zf_RXh5m>LvpRL&ync=Z)`5k zH3{=d`Dh)H;^m8s%c60MvA%F#SvKvfcnVu;PN8*xh*@scyzeqO-TGTD2%Tu%!R%@a zUZ=O^i!awZZ%prdQF1nawSf^e5#n5CGsC;-Jf6I`UWOrp{TMU!eN(hhogl!;p!Y z4=3-YM#l7^Z{Wu_WNT!@+T~V+_DStNE)%2q`QxjnKsVB=XjSh*tr}X6rW!^5^N1ga z-tVp@Rbj2>)|xKM_pv%H&8RG&!Tq#okuJ$+y1R$;Shs)Jhqfc(v}+z>0Q^9-wrPCZ zSb~Mr+_-K2(RgFH9ETzha`{aVKXKF1 z;Uu^1-i7QDf+44hma_^cRTNcEz@axmbB(q#;0mb0T7lBE(S$2;KNq|jCsN|+BdK}D zoVU^Tp9_36NGVQUsx@>mTBZ|- zaY-a>xS?h|^68lGX>;;@Krw_v*icrn@5#w*CtD;AhYW!_Bh*}45LH)H`p>|AGaIIn zE|~aH4?M1g!bM>o^czG#HSqrW)#i@eZPCUYY&HtHgrbe4@wBFZ#MKln7OF3|p*3EQ zB*W5~q-7W1&5S5zcTkExy6E3(!x>Hqxr>>4|7D0j{Niq!&%hxyyj{1P69?`#39GK~ z(`S}jz?U*TyzN%kkEi{q@?!r_#d^SvRdqowq1@?T5kqZ_i@*pzDU0aGK|4Jk z@fQa3&1!2Ocw(8KoGh-UX$qf(m@V3TbeXxqh#W|xKN zVkcJ=StBQ_(&>?rKSF~d0UWXZ9th2#%9Jp%(usU#NoncN&|NYT_ctp|+x+2({fZr9 z*1&Yowp>XqHxL7C#P^HrX|<(>q-Mrv_^#Z*rMK>x?A&ju*AYr=ONA`+JK}5;)x+Yf9|^m1B!NB~ zm`Wf}!=V!v(T@#(e=y5Rq~$MA9mxtJ&>fw5(kxsnc}qxjV=Mmyns)m4MDaV0548`Z z89N{)aUKi%yZ+Os^6u^Rj+djfOxJCYhD8D39&lZt)vW(s?KlB;QyJB~H$};AOSM70 z;xuj%FSPIAJDHHjK?|kQE>t=Z>_kGn<2y;bjJIPdD-zD55K5+z&i{7~S~46{)&sw`vQ$NzrtA?8zOPOW`n?zbH_`_Bx8C}_CGV@!D*CsZ zkL~C?_WIEOTkA3VdMCcGLJ!;Ocl&*EKX0SAeO`%Qx7Ek}zLX!gzYp8c2krFq{l1=` zx1hc++tEku_8hpSRZ*`+bBjx6~6~SE%pp^}FA<)X(<%U4Gt-e{ZVy z?e%8;y%hlSNzlfPLv75-)+90`-Y-vx0;TVSR0y<6!zC{#?7SCQqQUQ;U+C8o%^;c? zkoe1=ud*H4*U`qimP)6m9W7P0AH@-Yg5&%PQ*v#dAG=`(jBTT}Uk^3W!c@2ADF;DUFxMW)VgM&)xO%lG}3c zw?wf4MtPUVv0ikWL2J+`8v2nNr*+>y4-$&G^M%%lMzK3BoDV2zO()xR5H zu(@>t=q}&yDjIC#vJGP&@;0=Kt2;Mcd(oJGjDZwK&X5A0Pw=`ufrjpqL7p5^70V9?6^DVHaW22WxgvNaawgd8b7%} zeS5=MoY<&7!tQIE$c5w8EgN(m`r?6P)>;{iHR#jIWIswb&fX(lvP@b1K#@r0n>hK^ z_Q6s+Ktrkoj)RGTncX*KfD6JRw%9&*YtC<(I=-Md%sk_^c{~=FpFE!w)u(U7V#3***Z33$7U=C2^Dy9KUhfh<}Ks{L9N$1H- zsxh%LR)gw+Q_BWB2xDQ@^Lu?x6E$&P&uh&;i;I`IaYR}q=!%>P0ap2VSPoJAz!fq1 zwzY~IKBfBAy=+?V4Y4E7H{n%ST-5p>bq}cDToFm9et}r3OdI@yn;M-qk1zOPQ&#kD|?H9gihB@T>I+;i5Xlb+!p}6e4vOp?L5+R zsuF87cC14DtL@C)-I@|$X&1rjSCUqQY27B<8o2={HvWON{qpN!Iy_t?)5re9gygO> zku(d2&k~iCx?M~HiyXlE`O#}CpLh??211R4wyh9-7YhQSyPX>X=Lk@oVNCVg1){iz zEa|?+x}MEwJ;mwvlP_ytjFgf;%&67I;ScHQ?YLE62OEZjG7VkQ@|r0Rd=21ej*R!$ z;irLqkhTH2*{B_#a%sjb9zlYP+zrWn5p+2 zXXAcdi%`_&2dpV+oxy}K1X8V?=*sQALwjypRYXy+yqp*o0yvU7RQ4cFW4(+z zvm=7if{ITQIWVrw5$MzsSN8TJPNIg+~9t3 zN6nm2cBNC*6ji1)R|6_6Z!n&Rl8be1ag67NEmRsftuX#m$WQUhi?p4EEcWTGAt=fe zcAr&Bs(V9IUQu=gphgq2|8-NPN`UIAR&-o7!x0-o73KWrzBZhd+nOdL4wNr!yC2MxF6Ue-Z)%abXfYqfy7$PYFXLU+wN%5=s zJ{fOlC7EVJ5R2n{V@9*UJ)7WTUnn6Ehz6p=k1@f!JM@AuoOL>Azf7k1mweAuD}y{! z?l|(+#D3_)NoDj$CnqgppfyymqUm|r@E+icZ=U&tgnZ91NwJ<>rkLXl^nXzjtCN2X z=f#iDp)D^I(*;`PnS)G1fD7V@iykpg>G#}e}T>HRqZ(OL$;gBLI4k?g+!T@uI4=krJD3bisSgYV8KngmJ^5K0y z&(j4qX-HWbj}inJ+alNm`6{>wJ2z4<5yV7i`j*iSSzz}GTyZq)-L zguts(CG@g(GzuwXLU$`Evf6%a4YA{KACmAA4#i$siZ}bGRO@KW9;>u{7>!$xFN#3r zv6J*O>{|q=SqYYjWlHU8l%NZvYC)9}=L#YFVoa=Jg`5s98O=fNP-4eRUcl-bdi7gS zS&JY_3x+o{f3%g6Uj*7lrMBsw+Y1>o z+9aV?PZ;kkC)D3zN@^3OS548DG*Ka&fX8s|9-*uyTRwmUyMu6Rs_OPV&5#nyr>di) zrlBi*t1OLSXXYtPVY4gvmmP49lh4dL%BDLONtdmvD7sk#v6HDh$=2=7ceR~M;p z_pu=VG3fRBHb#9s2vY=edEbM$z^(KjM#Jok?4;cvcrKyUyw|22b-@V?6^`(oCf|f& z`}RWmbaP84KUl%(zq17MnXC78ndgQ6uk1rYoZ$>2#tnH-k%lI*W&XafM|rp>6}9ni zWEZ5)Q0q8{6RmJ%x1_Iob;B!^eLN2^tbZ?jEO{mSsdZGytY_2Njq0&Me0$uh!wv9Uvb_lcwa~%aZgI0pYP$C%OF~($+FqD?2t@nFzOGIG+6wSB>!FX#yBb$zPV3p-@dQk`A4aykXa@kM zdHB83EU%4mkEMbJyzPHA$}$36U>~k{BMmOpv~MK77uEe~?WB#e9d)MXKxc3HhEWUa z(^OAQ^|=M87bCb?DiCj`Lb^;F@T}Eh^xn6{&`DC;QWPUJS&n~oH~~1%ER){?pe3LG zbLEF`VKxMQ#HhmdJcRNh$4|(cke2^uQHlj4KmZZ>Bl*Dg>R4DTh)<*Dy`GGSvdnb9 zN$uh64Q~}%QuWfj2VqGJs+@ajLd%C>;@I7P<^6_zNkB!ED|~iwMfZf>=#~FMsK9b1 z!BK=9n(`uK09W#GV3!SA29@J_zRpIDp3fwjCX7{ZmWt+v^!sbdZ{TL;VtX=PaIQeb~6B3(nxnWKR~ zl*}Juti|WB^*_C8f}2RLk-;95j+>8vp2GbrFxkmTrGdaFFT;)n*KQ#!AUuO|xu-aN2s>X365UG;!Xu53 zHU3rBmugS7X>P`W&Nk3O!b>?~2zRVzW zKQfXEwXROzrZL?wcb*xJ7zD&HF_=Jk`NEmC&5M^ZY3gw&XHde_cj<2glB)pfFc+8@ zj-l!-n~4$m@~wBcIO2FH6F8v4PT@b%ucy=EXb%ZpMoitxWu~XN3)>Y`R}-$H;BnOF ztW*z zFhkb28$yUC=a4q>7d75sY@ds(-p)Y(63a0YftFJ~I?NSv65EIYUGX|`vJR86$$-h! zvKHD}s!@ z;(0T26h|=O1+i;kb#DeGW^?>Y*_K)F%0zSep+=n4@l`+m249f`q`Gun^a~`+n@4r! zM7f;4_%J(obVww4?IXSDXo_O)YUki7Y`^W)x~eURZGhX&SemFyb}VbQkfK;AX9?&L`z>nGa-PQEF;V;?P0xIF-zI2kp>x$| z@0-E#ya65pyNTdD?QmtKPFkXd1=I;WfmdeFj`K}(ZV+g$KFJZ#CW_Rn$z`p2GGzf} z$h`0N&04Cqv!(X1{c#=pejx0~G|!BLU~=D87JhAUiCCLa8Tok^dBCMs@u zNLb&VXDjxvtYovcestcljV%g`*vdq(B&@BDSAVD=leupN=dWcJ8o03?7K2%lKNv?G zDvA?yyYJ*9X|6)1ak3RuSNsRkLqx{$Yewg{SK*yd@_I7^=^WiMALWa|Ef>lt_C53| z3PNwfcB!wSmxV_D=Lhrw_lDNV`%3K5dH%ZwdV5tg{Lz``f^8%{7|#rg=C>-sD20>X|zZB+TJ3#5e>oa(h^NxFsCD zZoeq~Hz3Y>aW>gT7~J_~X|e|aj5ERD_)diVE2WJ~&t!r|{!5SrE7SbGHR@I-F!_Cl z!hYS-hjxuWK9<7mqg!iWFfx;%{WF7GZUOfn^D`uSI$?;=DN_bI7ZK-i=4e$!XMG5N zPkR1T2bSVf=oPrw`?24p|566AwJhITCP9eVFN10LqX9qD*PZ|mFgmeDo2zZ$q^X4( z>)HNF;%wP{;T{?mndVc+Lm&4uUU@k!Ee8ggdsR}emJ75$NEuk5+9cjz3ObSw{(t z?DwcQBVyHx$-``gL6iwpZ^B=AtJkCP;Vm2csNr|NgGUrXNguD$U@8yMIRkagRatCI zhQwtLgd(US7k2kjg5Kk0l1l?(fHSVNi8)v|0p)>8Q$Z8u_pL~f9SUBeA}Hqz;W;;P z`iX_}F-rd+x6rg@Pk3rEXXBA2y%9wCG6e^eHT3B_; zaYVhu_tSCWdLyCO6m-FLt*3^D>>m*x2rVGZ+5j<{NKoaOo(X7&L0E$XLyL0IrNqL> zaa6YztJHN7hNkt@F@wvo$^}gnAU?X(3!0vr?K%+`N#zp+5NY|7r%pyE_QLc}L`0~| zS~GPaAoZlNEwkhqV?bA!Mec9m)#ZypF9~%`f(Di0Iz8`+{(4;w5sCXIg+aqHRXW4z zb)w#JQ%7?1>%b}~!%0t$Y>tY5J zLwE(o27y#JBTvaCx=d=6C>_?WBPxhoaz_V_Cy1V$lss1NOj-?6k-q|mAx2V{yfUc~ z?x{~eF=}s`3!||n6#aidGZenS;tHRY-KWH$c!{6j*fJe!`I^+m*(ULyEJ`7}h@Hl8;tOKc=2cZhYU* z0PSW4{2)X9m(%fSGGrK#H@l0lBtTQFX@L!(_tP6sv)e7E4^$(^?Tx0PT>8sYhfy@I z<(G<+0B{zFWHNJS#qsAzQz-!%E1c05RD*13-}ik_G^M|}IpTk+7@K;Onbj3io;}^% zn?LvpvfEDnSjuAJ{MgH%5s?B$KmU9#FLjUZ@?JFF$&p%Qey)R8xlm)j;}f9;?h+8q z_n9;_4tu>G1LpaSaM47!K#yxXu+|5Xgg}ZcLql^{Uw@n75d(~cN^knA^C$Ga#dac% z2tq#wW^H+M$h687_MAQD6%CA$zSz0_C04s@XEnQ(Q~s_2eHLFth$r0%leC>ZoHb4f zjXfP`JYzK3xG>_!;h(uZ)PZI-v!fi8?#!(bd~;t2&jI;T8QM&!;uvrem46q^|5U=c z>TI`%BVHm);FXg>glBIEA+)+VkZiNbd4{h%^1d-ot>G*8M+fFx5iHJ}1)Hp41SAMo zT+#5ap3TJKAR+`d*!Tim4BZSikI2cQ zj^6X3(?0bk=!S{fyAp)&ZrA>fyv+Qnk!7d zi}rTV=|du6|4234BnOUu6gtxt{J*D{vrQ?7s#-=Nk-e;LR$_#h?RKvoNVn_IgW}vgCaE!|V<7J)mj}0j@?x@}f9)+7=&9yeUe&8XGT?Ezr6x zznK!t?)9tq&CV_{m`08r{24ItM7T)uuNgGwPNbkr0Tt9da!F1IC@S%vjpl|rvLK0B z6UUpaTIi@$WcL4PAV%nn^y9%bu!@N!m!8hz>(zxs1=-p*v(CTS$^%C?Cj(^?P5)!L z4h9iV4wp{_=|Llb@?T}aW8vtU_v!})_A24p%vW0~uwLuLO&gLH`2|6NPbdLes@ReF zQ<$r8Zu|NK#n|vDq*fzN6z!2~Cd`jl;|sOTHOgg0RH+oAtv9uukb2TfQKeD(I42kA z`uUo)7&xQVd0l`hQ6eS}57Q$|3rV-i@^VJUcdT)H6sk@tb-B$=1iXzh4SJHbKxcC; z{*I@z4BZiTD%i8)Ya3bp-zHn&zu?Q>!l@>)n}mGVhzHe<|0di@ID;@FTUiIUu}GKA zYO~`77qtP0p5{Ng>(6LgZa7nl1-va)ULzcIw-#RwjBvRq1V-k^`V&A&?HZ>Kr|kPz z1Pn#w(ivYo!439YV2>}m6+h0IUi*|2WjsSx@0Q9I==98C5=Nx%C!zNOedfEtbEFfd ztndqM993Pw=-J&I6umIoH7OXAn*A6$ig&GiR}qm0Xoe5(clBB`bmu}<$rBaA;gs3C z^T0gouqmU11(7n@UnY8fEFim^mDM{O($o10w-N%}B{y6h2OyRgKd7F)K-uofT(!?| zHvYltcv_RCK;(L0w3dIldDOGib83$YIYc!WJJp+WgeGik3D}qpMNA;me>okg&O?1{F9Nmr~&ifhK4`XMGZ1Sy$$BH&{mJsRfw|2q2X zR~&9EONJe7vro4Y-IcqpLdS?vN3vr&OSnQl;!v)Np5Ke}RhRm=yst^C`5T+L>K*@Y zDN4mz!8est)!z+Ds%r|EePJi;#26jF^$%-U#BzkX#^AEDu*$DuvyM?+uMR#bVCYGW zR5a|1Mk!@i1>25LXd4NNS%2?QY8f+FZg2J3Qu&q@QrzX8v-bli9!2M{^B#F@sM%L#~i3e3odP798|+}#Lvq$~p!XYO7pNhHlRZqpwj zW`g}xN=BX4yqx2_3fFy^U?#t(1LK?*N$>Xx!3C+gdD5elvzuV(K)!CJAd(&DjO+#f>oN|_on;q7y^Gn-mPmy{F zb<}!OzLRd8o=*Y^a-wNTR?o+EC)S6zUNPLB@#f3fuIVOin>#|x#iPqHYpc>1$8-;V zZ+j+A$Hiy?+Ez3{x0KNdQ+*%bf+2QFkYq8hHB*j$3tQDdy#WRTxR`Okn)>}1L%EJg z3w~MDVqq6QI-gNdO6S*s#bOtd^!dHvu6uW3O}*7$`zs;xzx3d8osb8~p}0e1_vq>| zzIlNZQPD+Zxxd;y8e<7-(o96VF{A>UTsKcbgjU4u0Ys9B0DxiS)KV|^hA-X&xCMyO^Gg%ms@)<4 zLt325DO)gwia(h3no`%mW3aaK&0RpVnoJdcGHcySIlgC!40fP}ID%9zGhlgTy=$CU> zgq*otM;!SB&B6bBHrfqhbrWZa`t{NH_f*<+|2dK2dY#RZL#miQ%xI8zCh$Ayzsprf zJbl5`(+8miIkUU}O7LC}&-l^WAEu6jrv-WWWpt}Q=-NqsJ4zYIeSi;Dh&8FzRFy{W zxux(lz3P4(=(pumHaFRD+Ebl_MiA8)jaaVXOA`vE#2!CWO5-gA#`CeVWz1@Xy}N)q zuc71&opYTe(Ip6`T|CuZUn;^DgNS8o&(3up3=>JUQ8+^=ok?qe_+gdR<3q^*NK-D# z>Cq3}-jlG6_}E>%XsjN6@m-I*p*j^+4{t?uExLIF zj4Sz_pzp}9MXZO9U3yA_T7nL=*y~fRs3FTF(2B19JNi**9k1>x(j@2oKJ?h%*0RSj zwLd!+8cxFbpV<(tfU6OzKmSY#4r0+2$9Aq^txLvr_dZys=I|HIIW{6;!UvH#x)(3< zyl1oRC1F{A<8)E%I3tltR%Ua}qUeqnLh5EBoD4yy^@`Hj+I7L62|S7nz}u#B>Um*@ z9k-=UiIPZK+dF=0IyA|fqGavXWJZBK zCl+hOmQAJ?+&;p9L6;jL`hk+(3KTGRmc|7wq&_?qRL$q0!?WlZSXRAiGMD~dm-L;D zSx|SgrYPY6EW}HB`u1cu3~Meg;MD2H)FDs!>KT}-6=;JyN+;W-#J12Ta3VUt2;Q{v^R@?UJpW*68aMVW9l{pRLnx_r=O{T{dXzILlgzauGCmj{cxU(Z_4*5K#OFv~%AWB$)U{UrG46J0F)>an?8{qhL>qlc!Cu4F&j zz!#xa1O}SQ3JXaub8Kln3>{)UW^a%9>5{+z_X~Ez%+F$Wz4jmSUEV&petwf~mWWt%+ZS zvvM0`m?Jg`LtWxIkq&2?|`8HE23zodY|xFM4TQ2Z7K0{ z>x5s!oQDaYD~%hUPoD>RhaQ=kZl&z+)_5s=ip1tdu*{c@sYp>_{dThbPNV;MJHPlt zT#dM|92&DC8X}9q3tgG=ln!X)O6kpc_>;d%9EmQOcI#j`21@K zzeyVZLaj%EbLl!H#`))_ z?r6{-3m&W${L<#n$n03&51P)d4OZIRwdL@)6&=e>3*$SG12qVj>R+1sf}x%ybNOT} zS*?deL}ZXJR*lt6=02I>*OKMhPRE4B7{f|rlt&L8mUoY!$%g7g+M4?vW@9sx(RbRK zNn#sm-4s`ICI24c1n0apOkTR{8OgL8F6Y<;-0mb+b(oOh*+2-PlQ4w|GMXrmbf#KZ zjWo{@S*kI?bx&&Aq-Apoi7FY5NKx#=dHo!G;uRw+a(fa-4}-?)2T?;7yV`Tj>9g}V zp>MY3qKpnpPY~0S&=db7FiHbfWH4=YaP&Txb`MN(#s#<_P-TmDPa%0DpcCLzD`7|D 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%0A_D8To2O;xUGH!#E1{T0zoqgFVAF;y#Ul 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

    oLgY>8?jv+SvrVi;KjlbxqBCv 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 OlNZs4$e#9AfB)I3=OO|C literal 111762 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
    =b<-lLR?Kfrf-^13gm_-AeyMmx z8v|I@ajQzZTZJBnqW^8M^WaB9ul`n_>m?F1xcf zfxU98(VNIV)~qLBe1FSg&&ZECWNe&EDuT4Y6Z;J^oZ<`IAdl}s5h=@`RgSB?2!O?0 z$?Qq)Lx^kiaDZzvpE9hmy%$a>#UF>gHakG}ka7R+Q2Yq5okEW#J=i#eU6a50E=8*5 zzUbeo*TdOH7`F*wOyF$YS#Y6tOigB3OzE7#oH3N!aKyY4nNOjQs%EiEJb)|g2j^Np zt?ppH3GO*loU=+ati3t+>V>w;N)S9YBo4QytUt{OYNR@&c_y$@`EkOlJzkaY+LP*G zd(uyDc)L@7ZGIp+b?oonD|-$=1zclwf{qcKMsYcL{`T3Qt<0<*W9!{4DnEq{mIH_n zpyEL{!yfsjrVA5kLqs8vL-i~#=+7!&O5kN={ahq91@a48JLaH+)UZwPGw2^wf!fAw z1=}G79ekl6lH*-TDE>LBnypCTn}Kao!@rTF+SRk)t6{m}wP~nmur?^qIAf#r+2?ih z$9?HSJ8GL;-dZ~sGkBwxJO&~-OzJU$Oi$r-_6BPho4uet7vw(+rw0yPQ4{mr1-vT) zT;>2Q;UkKQ9>16P>uZyOLwl&5tH_U1a;MnkEsl(pTP*eEDyD^d&O|RffVxjs%&goh z5Z)xLbR4w}#vyM{wLt&)o~equxA-L&!c*PSsTlD4p}&H^UZ)4a(tY}ZJV)M%deH!N zWyDd3xN~f}1+hB@J;ZrPm56OKblwtHBq_NSj1NyE;2TW2IYW zomd?sx^*0J-7T};!@jU`H}CJC2Di)?woj`kuOcq|#TJ>qZ-P~TmktflGR~iIrbDD< zMO|MaCZ}q%VA*gkW$6*IlZ~8LA5P2ZO!M|QWnw9!PHl_d+qe_wx@sNkICI(ISDNI_Oo$HwL&tJlsh$4a=PZQsO@cm$dMdp z(gvzU5$RLlx|~XKGP@~m=ykpzJrJ}ogFPIH*V120#Qeru{{H(X+xSj#l*{>>ft;uB zo^V`zZ!W@>#c%TCO2m}LrEe~sNlm9ZgxQYos!ewJjnND|gEgB>U9(Fd(+HfcVk1P+ z9_9WQdd5T_-d%8=f%ReEQP?Rdg9tO3wqt9ZI(&kMbJF}mCCJNl9F)oC7Q9b$%M?=M z?g)Q%W831j_01i}Yq^Vay{OaYBYqXD|FM!RRiGr3T5f-~ihtif#xe5@<4Z^GCqKj< zu#D!^mWSs0G?s_atG&Lyo~#IS@og?YaB+sNc|+Q)=`3yj{#=~teafMt_O(_UJ@0I7 zTUawsqi>+Y>yY6vlO$ilxHdY(S8_bnO&OYfhn905Wi*yb&>u9K9yWjVF11r*i1F<9 ry-)}Q(xD?Nw*0Wo-vIpl|2(Y2_V43XHT~Eo`@WOI>7(U`{S*EV(M4Xj diff --git a/chrome/app/theme/chromium/mac/document.icns b/chrome/app/theme/chromium/mac/document.icns index 73fd43dfb87b00a1bda69297a58da32cb8e23db9..1a03ae29c16fa304769c52951f2e81c06e390bb0 100644 GIT binary patch literal 378456 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%0DQAO4ijmnR!i*>>h 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�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

      R?bd+lpKX5hGGZR}j1l_x{!MIPw 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%0DpcCLzD`7|D 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%0A_D8To2O;xUGH!#E1{T0zoqgFVAF;y#Ul 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

      oLgY>8?jv+SvrVi;KjlbxqBCv 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 OlNZs4$e#9AfB)I3=OO|C literal 97120 zcmeFa2S5~88#X%I=uJh%j){dB3o0rqAWamdsL`mgAXSkr*imM8>0LlYK&qfv08tSI z5m<`!CcXFGx7T}i0l_5Z%a`c={{LPl8k{-LTh4pldC!?=&n%{fmbMV$`kBMJYSIt{ z?KQRCya|GkyKUty%peFMU~0}i=U-*cJ4Xwc+HudfVC{J4$^xc_vhon5@eKUj4nYZe zQ}QSX`p^!yAnFpFA^v7Ig-jZ(O>=?-1~^P6gFM*T;s`+lFbBhCj*bmv<9R21m7zg7 z%@uEPknjM96Rx;fc5?u!qZrFQZBkV*KL6XP24)NIG~s};?*4m$g`6(l>9eDk_wNY_ zF5(REPV0`IynN&C?cT{#&eLNDuYgAGDc2~fKB1r&=0Lntm(PDzy7WMmKF~jMzxl=U z;!p0sFgkJk#N#RVd(Y~*xnH@_G3kCD?1YDt-qugLpW_t@+rLR`obd%i&`2g>WGu>Gsfyj<0CA_ zr2BNv$k-@}!<_V&Nv4bq(&YOPQ#T(LLU1ab$`Cp4Z$ZfWJwv#DOka0LOLdwLg!CC^U@81$()j35 ze_f_GxIkiK>4G#Wg)}cS@}CZ z7w$zIM||+^Z~HX&?)k;5VX&{OD-U+&UdM7InlEVWR#j2nrKqY`MI0R(DC0H2oLK{w zd)3vIckb8${us1Vh>Xt3me~(=Rn-(vxVfJ_@XO(ok#s6+_=poU--pKG4B4MhR)ABy zJl{Wc^9=|aWpIdolTD>|rW(gm4r%Pxc^?}b7Sqh)P<$qvQf$s2b@tNG(o%QMiHLe! z$>va}n%-KUGq~fiTWi0nb8dLllPV5}Hq}&OZDMTyPFGD;D?KqX@^RZllNi^HK|2#; z{d=jduF0?ANX!%BL=)&Q%n^+?GcwY<79L_B92NQG1I$5i6;3n_-aKn)c;?hm=jh0X ziNxt9EJwJ_$<)x`jCJILCohMvpJZ?x!J%l|^QOU1pXQC@K3#U?VET*FDqF`LKV7=@ zxBlhA062z=6NI#DZ1HJBwlvyhK>r6O*vLmhMoIhc5^OBd`P$X1m*Lp9&l9XG!2Y7` z1siLti!Mzw6O3=v`=YI#wIyu9Z)xe?J2Sxu*DP(U93MPzxpeKiUm8++Rb3%0{p|E2{f>p$X z1tq?4@$hhtujMw)NU-Jy_k&~0y_}sqJ{D#Y3c$4YDfh;sLxS(6mOp=93|a^us528R zI|{VLrl&@vW)TYOr?Uv;-q^G7prCtqy`N?iJ`_==n?QmMK92~wclUl~RzV5zvjiK< zijE9>UzpcG{w%@9n#w!+DgR$hF#7oL(D2aj5{%K`(%jnG+}JtrS%RUcZSD1NonTFE zOUvlY1jEo8YHMn1u{Hd)jV;8P`9*3dtE_HlZ>=mX|Jd9;Gr!o3_QLX(aWZ+VwY95n zfIcI?m>hC>**KX*A`?f)h)nuKehG5x4TDYVt)ajqAtI4Xr?Z(8`6V#XL?QQLxh)hr zox_?)6n<_ClT9YWB$y~jqJb9nL<=9cg+-yjWKj~4G&atlGw72|yc&g|ad2e5@m{Vn z#&iO~93+d%g30`pp%DgX0dx3NT?4trqH(BX(h!XaY<`woEIN(NV1pF^>$BWqF)2(I z`>W*E)Y6nYcOs+~PacaTKA%e`&P2;bhIz-xQ2V>z{)mtOC4TyFM*JQj(K6i%{^bkS ziJu+6YvYxIeLE*o@H4<4+Br`|W&-}$&Ura&2H;QHIjM7}0e{xcc{%OmpSE)j ze^T)0?T`LLd)X%ge=grFHl^Ut+gm=3<@ff_@^A9w|D5>D>iIMOdOoG7uy0KCAC4Gb z;i>WeH$SHyO}RQa;6G0YQQ3N@7GDEZ!Ic6P6{Q6q(%*zBmq5s7#u#=S8uK1UjE%vg z@QC>E(9qz(KwocHTU}LIZi;^)glHVU-4FL+dj)&CySutNJK9@YuuZ7yywtn-ppkrg z2p+@^Ao}~@Ua_9;uFm$hmd5((j}@75W*;C#3+?tOVq^q2j2Ie%2gLh(dwRM%+gqC( zYAQ+!Uwh<2h<0YcIF@I84$pXhUvCf4($Y}-vAFPUP!5FXVBtv+5lcc5i6oLM5j#GA zY;1HClrP{aKzDa_v^D~8{`<$-5TcWFn~Vj89x*-+kIe=s0OD%wXlttdSd?4vB8!Ki zU;%1AkvKliQ#CXIJnQZRn2P-ThUWwb(apI{#etatK?2I=02I)~1#ykll;j*g`vs8pCTmkc}`8|7K#87%D@>TgYX4J7R(d?*GR*CUBy8O02m57ga>XirWE!KkM?&q*HxAl=I0ldRyFqy4fd3T#`BuN5ek?C3$W2d*4}1coLOA^N z`looa_Kn`b1NCBjokXmE1(s{8Gc|jF>se7)cwHnz@FV|Gh`7; zO0WW~xNwiby;^P^+N75sy=4gKLoOOIH-L1*dFX|l)CySyF6JzMMYp-=i>V@ zQ1m50jpS8QUTJQut$)WA4&b0E3Fg`wxZMbKby#(>!#^r1aV5duoeHXY(f#9}mtyY7 z);x>>;{F`;Xt>^94g7AjI@j|_dA><`SYhGLor*_pcXI0?NDEM1d4(EOl#Y_s(LjM8 zhi@d{x4pY}0}sBeV#iJ$w@z*uoYDeD0StTF6RwI|9P~)QK@AP3&${rL3p;jfSG(2& zZuRM@fSWjj2L|n@+fs&S>g{9@K}k8fuQf zlZj|drV&a>33#E1;JPxQV&~}$ZZQY$aAybJ^hT}Xs_^FUcV6GCt_Cs*rw#!}xT6Xy zBX;eAmALYslwh|b6>VBz8Xr#!kqD2Y$41E=3!{J%FAhKJ$x$^mRW&uNI#La!h8nLw zurlASUA)1a)`Q!Q+;f`((;zUVai>TO7$)MtjR`gAYLDaUs<0Y}ts0u=6s(F>5eM8D zNG)(Pwu;g&{lM(TuD-tR=At;fnVF>}Yz<#P*xA9C1g~7ZW^aGQN-QNDj zO&G@Eom|}9+&z3>QDFv(J7r>NC@PgxKcP>!(cRq4%-ld-X&0zADiHWPPg&Wwi%MgS zRHZ$Co>n!&qEY+fuiHDoFdFCN>fr@@V|`G!9(I6P9R|w|1gB*}74r2pbJ$GA{IKFK zpi2e(QBhWVOr$b9A6XsK)z;EEY8lnRq7pN)u(O+|w-4-#y~Q8kA8n@4U~MrS9c^u`{hB7P!DN%|?F-++`U?dF z+`eV414+!$8uyMCKR}FQ0zyxX87}><|lV4DuMVY zB~h8lhwwlgrzNm|zitwfTz&@#BZ7mmA$<2kL&G8-<~RW_rZvz4EKHrw3u}Rzpt!@J zpVoO+n`<7=mDe|&+q>P*VP`}j2Xr837}L}DM{d18s( zGsI9O*G$j3nqoBN%==i+@jO%TK7Md##xuv0BeCFvJx~>~I60Urop$svX?V37psD`UVn`D}m)oa9w*92?H}YZjZXB zC6Eo+bGWnkbNpw|o;eC4@vAdW2CK;r!Y~*Y^#EAm$@I;T>A;`!IEy(Bf^NAVuZ0CR z0DkZJ5lTl47mo)4e>FUfM+`c9p2g@rpt7PgaXdIqlV2l(NiK_c09SFn0i&}iBnlHg_|(b~CY9WC-!u}0((c zj-&;ddmHl`p26n~lBskoQ-DsP3}#&W#rGjD$~6)hoxz*}dvcHk_9pJe2qPodaMl?k zr?Z=0hu^+lB%L z26`t?95sq~00U2fvd8(%DUde@)$M6w2R3eo zt_B#r6Gv06z|Lz{lJdGy?_p z58Wa$5uh`vqkfa^{v6a`%ta#)1FSy!^ikt*5IQ&l6&0UD@}ES2MJXxqrir1m0bU=i zcjBl=j7uaRQ1akKDJ@_UbDM)^=DAyf?mFwE^p09S;6frJpCmW3Zcjq)a!~D$ZkW0O z9VbutM>}x=5iu|F2JcP+0y%v2vcPNS&louBqtECayZq2O5)=OLd3qZ&a1sI@2FL|L z_Etvv2CzQnjNWg0!Jy*7QG5{(o+hR@QiCROA)E!2nr9yN7t9Rw&YV7ue-srJ8TlYK zE-|^Niykrw3ggTft4g$`zx%|}3|6tzPcgE^FWA&Y}`p#JWU%^<>#`*wp zT-(&vJw*Ilj1{Fd??uFIUr%>eS9ebz|FDGYx`F@5SZ!i-WJLS9*k7`>v$ef&0er}B zV|xwn6`EW#_#a3s0a|^0fa8^m7j3Z@a5h-$Wj5Bf4xSH-`u>`-;$t<(-@1A6B5aET zVhC$%N2^7b-5!BQLara*HfI;G9YPXWodcAJ!Rl8I4TtJwaaDL4w@;9 zw_3)NwXm?n#`jG#OMl>}1c>pti?+6Qc7HByZebtO`(|)5kOiqc*j(;Mi_^2;nYakBW;(<7KTzTDIK11B>QrzelNhuL_I^M>btKkC3 zC+ufY7o1iCn@PecUu2{(AKk4jt*l`iK#kbi!hfN}!nNc}oRmagpfw1!l@;*jf(<-`v4sot&Lq-Q3+hJ-xhref|6c0Lc>9@+Z8MIFs-&JUr}*p(#+u zi>UST3)Yq{*@F~7Oz}Qfp$?aZdieO>0$Oed0-7Z(96TtaVxH#E{*0KC=zSFdc!gVL zhUd&Cq7KSREO-*5kF`}46qL7((W%sdcYe3;0?Ouocx23@*vF6Ir|4(#8GV0Xrb?eg zV8hW428O0)u=#p!7Z3!VW_65$sj zFJHY%di^>%`EB0N?+GeoRa^ubK? z_?tIx-=?IdeQ24%P`PuExiR7RFhqnqY$RZ8YG#^ErI+~Py>Om54>9jz8oA*GkWA)@ z!tc;&X&KpdpYc;j#@h(zFrkZvMn)zk_(AGG2p(9+dGNUh^;1SO-oPoS)OTrV@OwBN zl}Y%>n88jVi7&#OLWRQoObm@o^q*1b*<4Y)hmgBFfkv)+1H|5A(-9e&FaecCD4~AN zP7Ni7Ifn{`-!wEbK3hs1i}b|ugoWMR-NHx7-D&9=8JR8wWOm8;=gd^^^Kj=-!LUFJ z1N}>Fv^Ia(%hA)(19s>0ZKV!pXA-bkPC%+`bOyVG>`DlC0k&L>&fxm!72aN6PQXo^ zJGz`URsaN?fk5f-Oo5iC;jW?l_b=$V4>Ae>+7X~JZh3TKapnZPcwitaJNvtu*;6U^m5Q;M-N8;E~kwb5+=bjm?30uLMZk=K2+fT z{V+d!&|Nnlib1!EhH-rxl~<$>BgVU+|+L>Ohb? z*KGiIy$74wdj<;yg_RM>w0=UkFYrasJ1nE0Mjp?8lH*2zGm%*ZjZ?G`5a>(@@d}<7 z6p}qerqD)P%k%QeTSsXW@<7t93}6A^38f>`coZWg5(r2J1;*8mP{^RvazDT(50{1F zp7YeB2su?VX{Uy#AwI#g0z=}9+6Tvo#IeDa4^bZYyV-68EO4c`XNp4du-j}l(KjF0yB0ISJ2*{%SIB7CT1PC)^S)EplYaw`}L!Ugi(@%D0ejLdZ<;DEl8 z{wWp-fLLHBrBAR^5Z`TYFITVkAfa(UQC=Nu3Imv?p`>h-^>+9|6?@GXDf_uAXibC=Mb_yQd#|C=`0WSZpkB3uYjx)fZ2!&1T zDG=b9sF@FZgRu9|0bVY5Cjoi2^cg%8F)h+72zL(?=;Hx8?Zi`&S4x>Cnoy&!B7vt) z_t1B}UBYuG5f#K4RMS{?Ob9;6^&UFV-`zLe5$He@vWjXcGq@&7;girHPoTrs^;r&{ zi^$3By*)4S@x$<-z`Frnu^+Msgv_iD1%;&zLyQ@e6S=)O?L}-%WJGRZ zQBh%jNp;I0Z6@VJ9qVmt>+T*H8Y45lQ%>JENqyfW#Vz08H%U!xeFEF5xZ(J|N$UUI zO;Rv>4U5G9+o{IK!BPi2o%1$;@%B5lHGgTB6q7R2-`&;$b|-aows*93_6&}W{zuM9 zfK40j>27bTuXC*bp|+;3v8}zcXPCPw<*znL39!li-R%wa^>xm*a1B%o*DY>s>+B!? zE4t|(*u~M`)ly&YUh7!1q^_>9y<>p8vGL2>qA>JC1Ou& z19)@6qt>;CueP?ez5lN$B{X{obN~m??llW)>sx!q{(?l}WAwMy*3{Hu0o=1js{1eC_t#gHSA6_f38ZT4Jb`D}>UlLat^Hr7e?}Y2 z%gTTu6p*R$0us3Dxiz(ILtmnL#3)T=r6pzM6%{-yHC!Y3YE(^aJMl}j4q~(#E)gm% zD+jJ|t<-QshOb7~)Hd}1*5prj7KyQ#jRi#|C1t=8R|u|gs>Ri~*FrUp)%-Oz?W2Fr z+laFn^pTSM;*wHejw=Y)U~5HcKn&{}>g&LE<)R{NF}?&UhD)%enDVL?u$=!RZ?luh zq0(A&^Gbl4iEvhd)TpVhZ|ff&2m7&xdm2k}Kjh`-7Zesvo2sd8>>m3AapTF6qJjII zSe{h~)J-@AVo+7rGfr_LOHszVKNe3o%T12@#+H`Wwzkgh0qmb_C7Q=#(I^yZ?}w}c zV0I#$Rh2Dc?qqSwSj$JQg1Y+V7EmF&;2unGZ{HZ@4@3=3I33rlt*@pHE+ z_qTWV!hOj8{sG(|dT3~5WDNWHmLVjINyAfw8nUu-fpmFASqn_|A@LIjd;13l1_yCN z@G#%V2$4qr0|x_M8^TjW#)=3zx!lyK86%T#kG(*8NsiO7Pb>joPJmH&3c4D+{YCa5IsFx8xD5F3PI4xqKyWEsx7eR4VsRBwTR>FY zNG?1O_4gnYc>Rm)O2LpRBRyoYD}ccu?ldlpF+&%M4YoqMlhKqBFci+a6M-lsp46dI{+BD;Uq%nbh90(itb&1|S2G0V027tk$_=32i$>TjORIULQ zYq}N1rqDsND~XRhKHSwj%;btQX;WMR*yloLQvJz}B+S@we^+a}H&^}>)c{xt7MLso z$^0a+ZM~y)jAxxmn_>{a#uqw^76{&`1ABB^dKf(G^r=>F4w6ix-6ivl^!IeOk$JK# z+7z__*as%4Uw6ou;lA$H0pJ)4(AKP}X0XMD#-!aQV@O~tdizAb7*m7-U>(?01}%V$ z8Sn3I8R6Px(r3^Oz-w-=P{X~QouEf725XvWKrum^9~nK^-7?N~3B33>gJb}&?ooZo zXkvdyFRziooaPtMOfVK;G||J|?PP`<9nD~{Xsl^+0mA~q6p9BKJwDJr3;-wwxId<7 zgWKQ>A*fUah3W>>kM?#^U4a5Rn?}Dgx#Qz52ScYaz#b+SpkSzDl;KRr01Iq7W13aq zXY(Lb3Z9H2j`a3A(P0J}%mZ}x^d=Szn?|KEK(XKlwQYQ;i^$zJ3Q$ZsgEh@3h=TPd zkuO#Dp0Fpqa&{(wXdOK0ye8NaQgJX@tRqSr{svLSr&#@Cj@d3%rB?dIdVl z`u{YaF!h}v|K=sGZzKDM_c*_enJ;NYAS{AI{>Bk_%gOGP>dMdF`23R2|K>UpmG)<^ z<$dAWSXH#aa_}nce`DdVv1p;UU$FJ1%L8Fszn%vOj9BWI41MuB`PQ7T6#@jG_kgC*uFqfv;nq^YWiA2)>eiPO8*Di@?{i z&&gWyj~w`F_BjPV{u2kjo_$WmPyfJyuV|lBEBoI&@HOponz#Me4t!PnoX%bU?TX~< z+UNA``7a&#%Jw6VLbeo{qnjefHtM7l3bNpYuWVZw26+ z*=PT~r}J-SpA&~c{S5}>+u0wILH>;=!*6GwV~F@08SoA5N23460DMFH6_V)xJOJO& z{^+{@t$mIb>OUvIH|#&>{Qua#)89zIZ`uDKKJynjgexA)nX z?s%MdvPCCG!oARm_ssUt9#tr=cyTX~(9={`IeevV;Ko(o#g+HEhuT^Dbp>{b6|6(d^_+Ok$A<>c^j|jDth5wt^ywMH*2*WVY?yYOSS^LS4dN z(mq>4=V?swq4wN6>rSLqH8j{en+COnlw57^4#7(tI<8wGWq2zWeCRQnSSx(TIKw6+vR%GC$zs`0 zcMGiMdSqJ|8XCqAH@q1qEn|Ks1 z1LTWF>gQ%XJL-Gq(1Cpj$XP%9@S5AAgqq-zZjPM1JT>L+>1(}j>Mc_SwV^vu;cSr= z(BcY4c<87Z^szDJ@~*Pl+N&A%{O|*7X#q&HX_pW>a$eX^5~|7qSmWa|l0s25d-fZG zi?|iDSJ#0)zGvyx4j3xcf*?WUY{+ClNmAFp6zWO2G+6hsqQds(o0Fm2^ezQZbgrLP zY*j8zk4lF({(AiK;)i2FhlDERHYzElT|RTBg?%>c26@lx=9>&M^rNr2GBVvWoAYto zO{f<5!~v5YC6$JRHXAc-ss&N-OLMN0#ksLC)}g7Vr{|WMi&*1$Pn6Hi%k4Q{48?>l z?C!0C&@bMc*t5(9;?P#`%LFx{y+1LXp7CFwRW6H|C176f3?gokl4xaQWW^TYyLjdo@+H5t>3@=&^~u}tN@&`GFkVa+tj=U*G%-(=BK)~8Y1ER#>Uxl1hkU@w{n#biPD2w7q2*I=B& zz}F!ad03|R3c#jW?`2yzte0~&Kq?7aFMjAON?ne%sK0sn2Z81C*N8pB!P~6Z!_D-n z*QZIU$W>~%H%6j9Qy*O9|5p$Mldqc2%Ox|7Tc7pWaD<)&)r?e}foE_`s zM%0kn6>EeIMJy~V_E$YUKHl>BJ!`O_wM$ecFvN0gFdC-6I~6jTrPyK9?NN^#o`1{Lq-{#-4@D6j#w9$m6n#iIA8gAS)*-v1%jKM+{-4YM_iv+|TZZ^pQ}w z%s$3gXMqE?R89QUAQrkUExiRcUEmOcE!;B8dQBL?C%3&=yBy;;^wW_2tTXo5QY-h! z!*Nlj3$-d7^`(jm?rwO0o!~55`*VEin4aP)=%a~v{whScl7w%h-VRweq^ImbS(!1n zT&I;1(WcRd1f5hPTA#isrWZSlF1m2^^wrMy0&9Q4!Du+v4YtiT)Xm11WZiH?I3;Tj zEReVkwKbLS3v#H*rG@++TC4B|&jl*vHghxj^)}0fz*Da+8wY2jAMnX`D-4es$!hLU zuDkA0u29}1sEIT_q>J4kX0mC4h^Xjt|GY;}etkyo&Ru$aVEmEEwSC&kn_#-@rPj6k>aRKJRUuA#JR48>?;p`wyos)f$KKA0R8I zt6WsRWrXrWgw!le4W%lr&y8rhQBfwDc?=sbC@F*icgen=4j;(|!?%k?tk4C&mbR&> z<&=)fptNl53P|hbnQpT+BX-`3RX>WgYb!e{on>k%1Y62cBIUekI!w|#c+&vRs2iSl7o$o?vbzr zk|4Y4IZ9PPN0IcAW8eSmHM@R~(%7w~$?uSdaj+!fmqmjoQP?xpzcpNU67BR#`Soz- ztw3mn7)5jr8CNaPFC>z3c4KtSeE#j-a}6m7Y3j`+i}ntGUAE7*X8UoLwzf8hgymma z<8!_*;pzGnYS03q#lwvK3m-_%U+?%FapZ`8{iWR-BnXhhidMgs``5Dz&nk_#h;D1J z-t@TA$!LBA8a}sC)@@C-+Np<|PHuD8+2gdvH2$`;U-gOEYxCv(oi(d}T&hvIIy~Ul z$HGpXB2?*wb7hf~Q?^B0#2tog!%nOM0aVU5d=N3H`F!xO!udmiv*xEf9QD<#(+H|V zn=0BJJ`yb#n{Gpq#AvCkOW&|=-qw#bx(nMvqTavf4EQ)O+kNauJ@o9iJ>G&@A@D)s z4Etp=vEFc&f!5LHz4@#6E}#@ z)Wbs?tlthV`St99hM~=Hf-P>YGZdbZay^fK7d68rZPd%^q|otGdpALO^I~#W`T5<5 ziSl~z)4eV;=paTDk8%@O-ZL;T@Sa${fB5})@y-o*fhR4FRiY+4Bm>Vk=!t)D{oz5N zp>IqYERGx;9BiC_`bsN(*nz|7Ujfobe)$&IFk=3SXAcpMFBO*?{BY>-m05Ge4(uzd ztE)=`Gu?HE5&SZHRa|=Ew&M~VOUC*(v)+`8puC^V4ZI}vTyM?Vo>taEd`3j3fnXx| z1s9CArs^aMxoz9Fy{EhzW;M}C{V%Fd+7`X@&DL0n3hWmNKRr*j^4P9()}}t%b)i*^ z)kS&|M#zk@b~Y1LR8;h4i&<5}RSt{75kLI1u;wZdRcA30wCB+4GeP5h2=8mxyZJ{S zg|U?%b=K)}Z<@f@P4+RKJJuLq-9eGR-I~k379uT$LB2WZ9e480*b^Tmde6F0@0Cx) z_CxYEMED+`+e=iCU(S}St2Fsb68va`jk9K<6KmJr*`RlGJVra1y#QXXP?8vvZjXlV zdG7abt9)?qrj2v(R?Ss;9vaz&Hq8Zxg`KpF9SzH^W^em#V{h`KGUp!zdftj@S6I_~ zA94sliRExl&j(G3z&(&}%z2$U7sWxc+(zr53w1VfDN8pjG?vwWv8vMWqo&$5|DNk1 z6rCL#dL0h$OVrbpkr#A({8%28APzf?F_Z#+r>f5RJJPZxYB24$RrYV&8nsSu)^5Z- zu&v}H0#)_tF zhO+Nr+tT5sg+`mg1KI+9(V_JmO&h!I@NOWn;O+8$k$sTwy5rmSx{sb!eH}Yr1edMV zmLpCzC4j2xD6#g`TjE%-RT?eL=f;4cu%d)7!EGf}sMj8vcROI;uz< zdwH&mR((m1I5+N^Fnrfq1aX@l~y)`}GpJ;TEe zB}a~)B8_NoYqVQs?Z}x5VRlf7k*REf`d+H{wQ@r^?!MgcS zf^>y5=;a;_-(Mx3UWN|TwMQkb)?R&DS6+6mM0h|XxVw9!@1CZYR=;OoJbv~7GM$OR z-3wKg8@!&i5i18B5EnoTKaIg)2i^07V@>+ zojd+e^7UHbBnv{4g}gT^=NRTn7Ft@n;{2)wnkXb#9}SvS$GxKz?;Q4gy!lEdgk4i) zb`z;lx4_lUL`W>o<{(HF==CAW5J=PkQnlW)r<*@0N(53~@#U?3 z!{5e&7Q$=c2C%Hs-LYdw)jr!el3#Ayl~H+z#%;+7)fu}RhUfE(riop%ElVI&-Pqc~ znP0uY&>tf3uZ}-2@!M~|mDbg{cXgR`TzHeO9<9_9P+)xQj+4ETm1W~wk^@MUiNL(xFv0KU+s~U0UJ)7Ro>8>-2XC0<$6{OhoRRWe5#ykDYbLtm4F_<%sdYWE-uyqi+Ppmi{{N~tYYrc(g7ul%9IYX z0<+7RCKm`YTrAc-qHFAVl#GBkwEUu~Fc^%V?XZ(y0O8|CiSpcBI1)vEILf@azd$Tf z6|+%2!D0~@e_ny z5zAH2&}cd%b7#9dpISsmx*S*%$u1GI7SoO>-GcMv>#%drS-X2ZO0HY7W0Pc%hVpj) z)gnU6rB|GikytH~gH>Kw5+>>GxbfDb(|q+w`a!Ei2+B%f{1A~$HZU+~W5?elJ>evP z8Jua4K?p*&l4ybD2^M@}$O03YfCYTHix)3Wv_A78vsGn|+Esp3)I4`%zWRtWr{jcC zv9buARC8HXJo z&`yK|iRDEXBbB9#81#4i84?+ZYXf844#heeJa>(WSrxD^+KbY3efXgRtw2xgdP#38 z5^+yJE?1f)|61`aXt(TU{=y%^lF~k-~t&u&JBosXBSQ4thh{JwGD@ zlAs=U5IJlU{*#d0D-rGIWsR!OlaJ=c-dLz};!)IleB^R9l}G#=Rm%?~xXr=Q-4xp# z91cpZtV$*jo#hioUd*~79Uh?5_Z#tr@WoSmz>WO;m}6XjztX6iu2FDM5W7CdYmrZ6 zkmAk_Zw0`Fjw-q&B^4#L?%0)a*y-8z{F=0QS3E&vrAKDM;+hyym(9x)#F@zo`7LVd z`1DIdtkwo&AxTO1xF4RxmL3*nomz8;VkSS{A##U&;N`ZTpv5u)>OyXs0g77ZJW=o? zj*a>9wXcmAs`J;>W7aHQKar)56?L9rw+5`{Wsi zm+ZejSFR^6P%388ii6Z^p1a&P_MO&GJ{<=zU9MZt= zbcc^uNwp^|$Y=?4dzPZDK)JTmYG~U=eTe|kCw|rI6Z=0dL2VX*Btq>ukeKrFHHmM% zWBB-oe|yy4V7#OF&Jn%m1rDpj@xsnm$ z9YOP(&ph$?twJjodDi-e{!~l|OFRt8o?0TEu(7c7mhxkfZaDJshfcY*11sbmqP<@g z*b$TFJbGCdEwy{JU1W#piP?D9{W3z%sGHzhyU|Hj&Fn_q8-2fQyBb!dVv*>Jh6JI! zA{%)jzFgsYAu1_MxaMlQYOHyNzD}o0>vBlKxL~s=GS&_({2*xPhLq}Dxh}i4L($3S zqMa$v3M04VMm(0YQ&36Xn)y%!t%=k>X%Z=b1aqFO2s{7h_y#~VZENb>*t=a2nZFhZ z^)>nkDKnVeyExn4oE&;U`)R}`K)Ypw)oq*R_&uW?9#^^PB&!9FFFd?T+P{Y#GQQ^a z>_v-XObyR1u1RXnII(BJh0}4^xF1L#4K=g(wXM3L{djA@%jU2Lhb!dDo0`~ZY&N?H zkRDClitp1#=LkZxA=ThPYZ31qHN;HxQf86NrNs#cWfnqb12>F^`bl_2Cf=5Iv^8E;7wGX9T}lhVfQKO-(K7$&-H1btjUT13hI? z8Vb37%hLsyAtgomPh7q`@}hfHf<>5@Y97R|I}oqCh_BFD0%{OOA>Yfc_V+Oqfg;X* z=sosaJ!5WnXM({kT+Y+k`@1U~(If%9W}WhZ#gZd0gG5`m!L;G>uA>=ecaUX(1ANV~H=18uSn zCAD~QLrrZht?7*=)7W31vK+OGML@G(M!6c~jf9F+KRs2lclJBEu-GQp@SboBCw%#$ z?V@j_#L03Ja-DV|DQodQsT=UW&>Iq@-7)I#bPSN1ihSU)Y@@Dnh1@`63T0IMMvvMu ziWEHPhI_G8!01Se;VL3x&dNm_EH5>*8lA8m0Pzq%|8ZfVM6uWmo2p&>FLr}ptZ>hVHP>c z9%j88ss0hl!Xq{@?q`qAms&vRam0$g{}D`|O4n58)SYO^-+gdg(zQ1u<7I2Ol>EIn zN6sqDj$g9%8w}7e%N|&ZM)lik1IWtt0F$n^Ir#Ciir%rJpVQSE4=)#v$D}l*>s!5 zV4bGN?A+jR^%cdi_}V(KtkAm3J}A8Friqm9yMR3rXAZ|I%{RR9aR+*RzTPHDS3}es z4C?)rSXUR$f%H--+n=R&3tZOcTWr#EFxTPP&JSO|KVl+*=iM?aryuj2|Yag~Y) z+$6Mb-OARN+T~!n*h%$GPOxoR*41a#-MD#Bgq3oV^(pCLYjVxI5NbRNTE1fDGJ)67>KeJ-3JB6jQVu0Q=nxEgkI5?%#K7LyRO=1gkuQZ z$Q7;(S8;*WsjTrU5;6;~FtdLMz4qMo`47QHCk`%E5E1A*?$d86IX_1VtbldijOHw= z7BXmg%3ak|oTEj0olWv=J^Oyy?&n5=om+1VpC%C-hB@{i`mRl}b9Qn2f#; zqji=lvpPjIOx(|bEV(ai$8P$;npl+PeZ?qJr{*zv={H&vD#A7kP{&9^26l2;JJvc9vYB;MMvszu=lMmZ+&97S*iEBwblYx5$ZF;d?#1}fS=f#qi z+uL#zdMN~%MKKcn)ocpKZ{d-!YG=VVr8bzEY3JFn5I?NztMg`5RvbU z%?&LvEC}7C^>d%R-{U>f-s@H%@KPpM^waZSnN?rXpLdymAM^-M7xxUX;gs-i{PiVb zX`qFRE8o&`&W43Iv)3T`$It98y6nn+cwh6%yzEtm#?CGdo3SW@NynheRl01H_v|@0 zt}ToC2~9%f+V~c9(yN}GcrE$rl)@(Pi`zan8&NCwx7WOSFVI!9B{VH*_G0l_=o=Tq zbhjqL(lVEX6X7E^_kNTV)$sOO;<8v_)Bs_KS^Y6M_v(m@?_Oas74QMvo0B>x-dyPH zeQ})M7xInVC^oPFYLc=*MvDcuANEX+33rkbvfd~;f>?fFt+Rj7X?))nr;c!CfsLK# z(}x2zl>77r?eoJ5Dp4X#rY?qQ9FM5z^7q{AwN=7|sVP0XvJyP7(&_X&{BjV;yoIEa zyV&M;t>J|)dK6>%6ZXBzSzmf(>3Fz@|CLc?#POlI746ayoi}4FIx1W_gk1&1mr6pdyr*9O)Ix1>HE(48&(&N8E}KVp-Z(oY}Jn#A0!VZ8#vCBI6xT#)kN+Y$0MWy_R8icIFee)Vb#CT-OMWTD`& z_?ZVXUYuO{Y%%O1Z2MyAJI)s2IrAJAty-3Q zuYH}?vBlf&MmA;d*<`i6@c#9d(e5#+#g{P|v9R*tN4{GhjLg9$)|yxID~(`(Ei69` z9hX=Ub9`&URTn%qRj5m9F1~!xiPDru;ta}SyFJ&=EfkQHu$It))`$!&uf(>ZA7nzV zca>X&VBEIV*4+rAErx2e^`PJ)gL8^!*S{#8tNhFM3kypFm!JDE8$1PW_fkFxIZ4Qe zWXLVZH|Aeip%FWfF1tW0m|!C%KW8=R=?zcK^!p?E8ncTeBuAxA#|A2^uFuc*5Ej^b z;Mtu*e78;b$=$Nj2?5qWX%PaF$nw&C2f8nb}t&u!eXk#ZgJ0ww=;Fl(%(^poj{pIBHn}yL4=J} z@|et=z8CWj#a=+SIm^Z!C6ZGXDX-bB^lm@ZwhzAMay2X9ZS&lfN7BPX2M_dRu35g` z@c>7Y@Q44N8%D#rf|B$;G*~9e2*WS+*yCBZp)(H_h?vtc-T6X zc?VzS$JZ6G`s&Vg{wgJH7@0Koyg*|pYr~OF+O-V`-;v+)_4E;;SXqai6i-6)9)+9% zEZ?km=hHm3kw=^%P^Z^@z1#JBHu5V3B?Mf@Kl@4>$ZMz5dwYfzZQR=@^0E zSUNw&2B=4=%o%-C3 zfSfu74y^C>ssI6hNTN(bXmR|&j|of6W-qxYdN(pUO4#BQL26+L^m^U4rYgJn0#{y{ zD9yUYa$P<2Ml$R$owGn*=Hzg`g0F-y|13RWWz6x^r6|7p$Ws>S3-;TEIB3i%R@mZ_ zv`Q3ek-fYlQO=#;WziUe{^s$Tp8ouZ_d8vV6x3U{?44DAN&8Iwkf7&$3)$h#64k4I z?mzP5p55yxf;;iT0dr-gajn;vo{}>{wi#eX#|Cd`s61(ECg3!6?#yW^LT&wZ?Zwiv zry2{bWknttk#obs4Rre+nE1{xHpfc`g`L?_nA26L#B*}%(KXl>7YW$ zkdUN9We6ccncilhNJ5#3ipo4sN9Kr-jB(6L=FG$Soj%|D$6f2*weFvHS&L;Y_Ip3m z>v{I`-p}h0zhC@nIWYz0(QuaB?NHj`mCAOkL0{YWi^Z}Ot@ye0%R7Zj4gm_-J4%jL z2U8?AEW{X|W2Q~17z<&uB2wA1xllKngEeVfpNcthC-{7;9^~Rh@sr;#xu)c`1Pg+& z@*Jw8LmP^Y>=K?A9?{nNH0S-!yE~EqjwL5Jz}blB zJefxvui_})QFqKpMU&jkPe}zB$<>Z~jnEdmsMn-+`1!SiZjbA*Q?(}|Fy@(3*O#@V z<8eDUyAqf2yAZkL3cLOgE}Ngq!5>vRWK~yvw~mI|4-*rjADKV>tW6!abCp5a9|!WX zqK8+^v-e(bJ6sdS)RrRc`FN_fvci2Nd-#*HpWCR#(!CjF8-79LP5o+rqaicos{%I; zjx*MsB}{5kQtF^nT!jYhwfa3wdD|n}O(asY!akQs>`t3|4cAs@Avd$IOVNQ9Pd*2G ziiKqPSzlRH@_Z64J~gtSY%sjpMt_ZoCS3**?gG4i?qXCkn3U z4tc$&#DvvOrkjeGy}t(!`%(N-Oe%rnMv=$yg{YePT|0M~Gz%G-1>&3g)R%u>JzO4T zBVRZpzt=7s-j!WWs1XFn*G_WvwSB>euPeJ(V#m1W-;g4Y{Mk_?7Ns(2~9 zd8S8H(6j~s)v_|_1wW7F`&6QM7y87CcM^8D;%yd9UtPY$ZS2T`X7^cpG&&*eeGX>eo8oenr^;h(MOKdbQs4i&85rMR_F;=tldLj+1dW^5;be;_R8PD1^v@l=m zm~0VZ^>V!LW=O4lC5PmZsDY+~yz=~F~!GI~-~3x8v0E=%L@qNh)#mrw3p zJp1k3i-fH^6W+iQTVNi*QKS2@O*XW3g~S#v(W}UUb!(nfl&MVD~7>o+wRn`qVy zMc+#{;#!TnXzpIPgab-FpR;A7OWU#v$`@|t3b8-gTH02)?4%HO(5(tx*CCxQc8Iqv z*M(X3i!g3}H@&IdmlHVGG39mD=ZVfbcZa98)yv8UOw}^zeeltV=@CVGXER>?Xzr`B_E|M#&#In!hzKid2y&GaFYo6NUR z+`a1vhE(@-4`##YW~wYvmD4^UH+`Mz;Dg0z@J-(E1uee!9f=u3=ZvGyKGiqDd`p$YY^Vn*#Wv&29fM&wQN_(6!=Nt*tme_n`F!-Fnh*M#`X zl@L>>L>=M0S8(bFNht(W~JE)g@?f%HWc1m9?BOuT8eyx&W6|WeNJk?brJWL&mjw0 z>&76`AG!Aafp;@%YhRk>^_Ap*Kk+a#*nTRz2Zf*FKiKX%2AHx#G|uv)0uK2VQdXd7 zKW)%)EMaF)G;3{?@1TL0{+^Vw;T7P7W|NS9e$=A(aZ^GEy!5N#lGV5HP(Ox8Gd%DA zzV}FlwQjOsdP#*b{fhZp7U3^e_bzoNdbi51D`eu%tTaOU4+YP$Tt~C)@C~EIuFD+x zM(8XN0%s(&!KBjF_V#ACDPZBAf79@t>ydS6iG3j&3JDnCM8nY#_BI6*fpXIhyl!PIa2%qs0 zUzIys$i4Q=OyrzcGV=vS;RW2hCCNIxdLNOfu6%7Z9Umc z1uxX5O}-0v3a~d%!YC#9L#58KW8l|@NkM)NI|3aK^LD2i6y=BGr@?5GsH{h5pqMxsOuR0Xy#$P}vKpX&WCyFPr-At~v*D|NJ8G(GE=%SW;uMh*zW71!GKTIw=st$tv#%ss4c z7}}*})iqcYPh2XTFx--ia&w9MlceiA{2nHfG05jH@Mv+#^|0-SO2guH2ag|+FONL! zBdHce`D06%h%J0BxT#aalPiFcXh3SLR zuUVtfpGbX^EcAXsT^QD5nIAzip9PQpx=s)CvgqmL``j%1{^0$pNV1mo+wqgTxXc(E z%U$|u(J1FwZe8)!R#feb$q`R@-l;Q7Y}6D5^n>!Z%lLjOIGrE?FeJVcxy>lLaT$Q?BmntjgX109Na<6vTK$k#2OgH8R&P4V?|Rs z%k->7-}MB6-mY@)QXjkBI6i+Jk;lPWgMvqd`#2K^ybn`gR*p{?e{2lw*f1^EaxYw%p&3$KXj-1?SqRnrMl8r*z3)A-5yr<8|B`n6--47~k zo1P%GB#@%)`nzdaqR>+&yWS#K41Eb>j>PD-nq`G&L{!^!#N4e~#P1dF1YSDhK*c zAMLHJ#QH~LWhh?rOxALTy0+x+uDYzs(wB_9Vt!${cPu&mH176P@ckQGK<-7-=#w1e z$k?jM_eHztRplQn8Y;_=2Q3t=xhj`?8LW0~iQ4!&(ellXTbajWfkC6H$eVDqOBLP6 zBatf`@ospD`7z}7JSuk24y{|IhMU-@(RyvAkR&JevXRJJqS-a>6Sl(lp~-#SJM+)s zn-+hGQE`sWT!s1o;S5hwP5u*G`_J*!IR+y;k5_ySS9~}l#y(wJt30(#16O~xP8mo` zHP`&@o}8IFK{LmFGMQcsz!_3Q;$z*~lUmOQ|H^wL^tM1(MC&Bmhn@Ci>D_?$XO ziJE6vXKA%hLOUfQ@5FLVmo*-~a&MCLRi=}Eo<40G{gdTrWe@X*d7_^(IMT; z)G;xJfy&oRyJ;N5V2?9D-yedEu-X;#xhrF>_nzH{eF(g|!gN`Ck8^v`QV3u;jBtN463N2vQTm$4o? zALyS>G#zveSNL;RWmS2t^t*!hMbm>q05LCFb@E&& z?;l{@*Gy;&RtiMf2j(^Yye7%aO`V~|iN^&{2Cxe}c+Jcbqix>Z&RJM#Lh(v zGgukup;?O!ooJ|ev*zfFm zLBb6OMZ(LERz>{Y7Pzsa*cUfdg@W|lN-=*_X8hR21HXA*1HC&OSyc^Q5N80FboOpN zKi2Z&*`~8`FLV6dgXY{Al3!|Lf|!3b=m=>9v>4sV?BmZppoQ|{C zp3V%dbiFhv@PJNN;NFp>nS4`D@^c zCCD;AE339E+x|FNgzK#4-J-<~7&gfz=ga2-)f?j(Dw$P>?O|=f56Z5+GYUy=dExPW zPD6ySg!ujzpZ`N6PdKMPL^Xwc;lDlpZ`pElJF!8y!p}#{9JcqR4P;p(jI_*QUYucM0>T7PChkz0rhF*C%(Y-|E&|Ugi?1 z(e93-CL|9aK*5uE!F2U)VZW=ovQkQt$?tl5*H2blE2{$BRH)zCy9bOKUwNkEul(Z? z&k-e~NHX!jRCO`Xuq)KP$#(tF1(rtsFxs3x$oNa_V;~0Fn6m6dgtLoyh!-~DzwS~X zV@nc+-|pLudo172<-{!`hZGj3XO8fXSBhPfmiRiT4z^n;tK}W4t>c`U2DaU2xI!uE zv@w2v#JxXoPPVrTyn5DZ0$ZvE*YBki)|}|QJRIrE%}3B}STiO(pt|*XZYA~W&BbaZ zRNu{|8y4N8{7t%P9A2}gv9LeoA5(7>r)#JKCDwqSg21>}Am6$Wkp;&%{5rjGuf*W* zJM*Jze!kXAFV)kDp?%ypj=MqdJ*tc*N6Sn^CPR>U+?kVioeZ)oyPvsKgFLDZr*=Fb zy>8yVW8QFSds>5+beHyv;NMQcY#;vM&e477e~&qK_QlFs-ihs!Ae+UQv+hnjjSoML zd``$M+SWO}zKl^aB&ry(OZCtRNnYptNNRA6VW<-iZohQWVV&9ad%9Mv5crQuhsb^~ z;A~xtO1aw2z!;37-L(>Rn@}h}eEi3!99%gD1oeLu@J~4-C z9afw~*${u+COdBvzXTy+d`Y2lc3_*3fDk2wA6b`bSlG1QNd* z>WGhAeRw=uucfm9mpk>E;sd<+_D!YhB@$Pt+Jz7&H#dW#E&J|_UcDmuC5Q!TPHp)-pJ(@MVzy^iea0QnzK)UA(*6Tm-{IaHqHKta zLi4r0f)u4bH$7rZ%8$9Pse?W7=(?2|(&XReKC3lRkf^S?ZL_y@pI8QOM%+*i2F5>ps!5+xvc9j<@AzoT+fE?4Eb; z=R^uXNtcvez6Fu_)d8IWy2yxOcr@m~OHbbz=q{V0YeplNW#d(eqBZ zWr|q;aOs6LzXqgQ;k81-ykMxTgEkwT$5YaRu)qrcDm7JPC9SIRB^aeGSzdr2JS0;2~U@kFwhj$ zL_oh`f1ZB7o^i9H{=_!WJM4*)>mvCLv;IoZMxwE}9FgjcUQbhICbTRb!P_KS|B&YO zqyDf#uBRU9&F^~&m$(}reqH}EpOWC>!@Mo{!`)4M(JiP^Pg~5O?`5sDEBn@`aZD&p z!0PqPhZpaMQ$y4Q^=?Sm{M5bcF_9m`Fuf5N_FziGy-^Jvy}gqcpS|w76Y?Yn!kc`! zGpyy0c5d(O*R8j^X7|5gS2v~o@iS7Dzu_l6^nlu8kycTG*dAVuQZ^Zz6?zcS$GdP; zMJnrx^a&SFF2viZx7l`S+#BX4T-Uev{5@#?v5A^6n+z*Em9*TwKBm+4Z7{?L$rKu* zag2~3Pg+wGlrU_6zQ7&w2^~5b|!FD=4TwyG^-m z?iRUjEo-=VIMsalCi`iyg{Ci>!Qv$u8D~1veS`~bFUOumXSXs{; z{E;irM^1>Q!GF|!Hb>^#FTv9f(Sl4=X@Vt1!~^SzCI-GwE84QP-OQQeV@iP&12=@$ zTpaCam2Ov8&F_!iFg)3KDzx_Veu7|9OyRi%dBLdIpgK3le}{h>e1hitZtLBYP2`LroAmPGAVq?*h|0PjAg1W$BR1DPUpd8{#^7RN0jhUOR6M~ z?gOC*aEh@o7Sax1FWu30er8WCt%z~JCu-} zrX~8Mj`9-iBa9VK<&B7yq-m3uEuw9&cgx^re}T^|yuEc^het%XxWwj6cWL&GyzVHL z2U7z<&NVV;42HdyjZnm>PNo)KjTajSUxgS1G!N`xxdkS?Z}s_F=QYJ657W;zJYQ{W zV!@o^Wv|u4X=Ttf3Wi-_2zt_@e-TMl@>|5Ms@gmI^Mt{~4vj<9k(8c$cGq@An3;GG zkK58;Ce=wA%U6c`J1n?A+0mqSW2~=g-gBEPK|FTyO}}V@*F9vMc&PagmBz=ZEd>&q zFqDjri^^A7TH1#666AkD|&Qxx5EuADpqfyh$A+@|L|ArODn{3>DI$d9gl9B z(lzFSZyNwORn?T*fB9rBlpx8=g>zg{g&`bAZ7A_j7)6P0{VE zWYC6byFqQZeyOM4L3SE~7kx1=9^3F6M-`^(&}e_Xz=(M$@PU12X1?hApjJ;#s*32r zkXtMeqcjR?8x7;FkH`DhrJV6q*VXt_fV+SWTa|m<58>9e>=4c|cN1DyocHIMJKfTA zf8N`in2&u$^;WXU477*J%T82VEev(L#_AbmtUvhsmLdE;qvlc}WmFNyzjwgv%jOKy zZpY@Z+e2fKvC}QK89$mr^Wp3DfeWMLjbAb|-5ZuRuaOxd2u! zkuR$CO(ye?B(d+_J1~`tn+O5D&t7B1WlqtdgvnkpFl$52o|0L9L~IKy_}MPhwV|gT z(h6xe_4HEGpka)+=4ibrIFPM=<_o5*Y+`;CCs$&QoL<`ngf12d7+9oVIwlwUOF7qD zwqM5bHWG^;J*(I;D-C+~xAd^`aCQ7d{J=LHJW`Rlrtm@Xim}vNUyYpY6WOk{gs}Rd zIZigb#}~VY(?xLi9R1*g>F~nSK|2Omq;g3X@p;8umT>sDuaxxa^jO9Xr3dD0mwWoI zQ7kZi5mE1C>~c##<2J8a$L}KXveUHTDR~#L7k9gNn@kq!EZ|J-a&D_5^sU9CP}}!x z%$sqUZ&hlZFP>H8iRs;|Ye3y$=3RO>SH(KDV_oQ%QJ-Sk`+c(zq}i$BD;M^*lE2jZ zcOg2K&#MfuwAdzu2w*}Y?Pz2G6Z{p;2Pw0Z46)~j8&=1*oo*ilku7ce1VshY0>PWR z!1F~?lW$(Dr}LxwH-{51Z!<7(o#Qm75YFI$O+6EB>W*P4Ufl~g*1-ibc8__* zuoVe>7c+kmKyGMuUX(AES=lSJpkc%eeoW={+ny>ZgQ0lCuzajXpk~+Xs%-;L)$u0w z?d3pc$r(E5tA;kUug_lZKOuX)gE5lTfs3>{6q_vlNI<5MK$O*$Rv{_sTElgpABcze z_6_)74#?(kIPCK6)acPE?w#Hugx4rY-!yzxAhu6F1Qw&elNZ=Y6+Bt8!fisz_Z7d~ z{=`E6I9gXEBvAHH+HJ9|^43dJWxn0nCz`ZdvepUlik_dO=IXsJc9AV8b%F42_s!jc zCqu(@dh3?SY3NY~hnu?|x!R;ko^yq6%MK(MmSn*+c{7zq6>2xX~c=EXD8&zSQ9XP|l`P@YJlF7yyCc6VSjMjLW>Z0W*3qp0uPo_ zhJ{m7bh~seoMeA!EQ#`XGeF!IkI?THJ!LiY7QTKrmZs;s#8hBG>!qI?RZULh{6-Ks z&9|2={F`h1Ad;UbY-&boGoR9@Ila9vcDAQ-D(XXH#k2Y$ySoL=Tgh_v!lyniTEOUp+$d~4a+Oj(VqlR@KaQQQ$ej7?FJZyLLX?zWujJ}q~OHJSY>Ir{v! zjla-#znYCKGFbm8?0K@dOc%J%quQfy$vNn$a|YRRIHG>p1Wqg-#e&G+Oto+)$qboT6)?g zL^rUWJ^1gJfIN}I-R2j{eUBSHf4_5SeD^u2`b;AoJ8iq*o_VT-i|5_u^;WAdUPI6G z?`>QI%yq_H5*A5ke=MGAB)JfigB&-F*5s=zeidIotsQm4r{&5tOSGQG01J$ffsZ(@ zEbb|)PjijH+CYlaJfi>gv<2^|Q1$8yhxJYUn(9Q^n|j4pitlZb*F9{p5^+e{Ms(!*rK{~pjIs`n*kb6$?gH_y2T+}s4e$&U) z^QoZ>uB^ncOaA(+Di>=HiLdsFaxv$)EpCy6GK-zM9cL=f^=Q9fI{ayDAJ5}Jl1Z=I zR8XtN)CT!v<6_l3a^;lK)XL)U!($cg27z|wR?78^ytdc_mzoryiab0-yL@b6*Iw6h z_Dg**mZeU`HY}I4aP?ju(iz_SE3lCon%TRRP$occZqFSfM>Q2FHhYpwIP^id1x*lt zs$`^Q`tek73%$puwWRP5_96B@{oJW>D7aT$Y?+^!C%ax1cjNvCNnKvjYQx)~_nw!0 zoeQ&dnk+t>EPF%FOq_~U<`T7Y(VPX$ICex_Mt~xr$Fx^s>&5!SrOS1a6K=lhHI#}P z&YoMV3O)*mTP{?)m1>dLe234#+PqfAJQpo}`T`1HO(TGF@6CJMC(=kOvN~Tp%cF5hw->!(IJE{3yHR!j_>Qyl za>njtI3_lVol*9u@b>X1<1~d>*#T0W?4=JCGih79Yg444065m6OI%4@;4CDL6h(Y# zTbrNJjcFQ}^XjE;3#5<)JdTK`Go3M+A7^}mSdm!eTsA3b^i)lh>Cre@fxW>%cPe0l z@A2YpmOd0JZC$rUs<#SiQ{I7Ze*Rr`*os5pGnH^6feQg_C7DNLYi`Y3O=T+{ck1g{A)S&H%lOS1x?g!iSK_YLo#e zzV-hktNHiAa`69=)%^ASen9^1|4vp@%=jN!4eZa4e(De$CZhkI;hTX!$G0kLMsOi6 zot5`{gV*RNPDWv1y(XYV05HWid}oIGHFQbuRy+aDdp+iF42L=ms6TyN`p)n7UfUa~ z>yP?>bO0JtAV9%s{{D|uF_P+BCV~NGe45lTvfD4pk^A2J>B5-d*od{;y@IFx zg6D_FIamL@R@1$4lf5H3nm0+zTtrJW?*%tk8uiV~?{AByM_-Mg*W%U^Es7bh8@c#_ zK0Jyw8-SxnY5CLeu*#afcHx zkX-jSk9s{@+v5zalT6gIW#Y-qIM~zVIGNAvPStq(V{t1W`cf{>wQI`Fcw^C^C>$31 zy=iv$P#W|-FM-ynHnqC@D#`-+;HeJRzqigKIAG-h@$*if+kBFqzj*kOw z?(FRJKIxcEvy^Bb{rPjAJml}Vyu8d2wd8|&%B*{V3&~GAL!@vj?(6CC=i=n_Q<0bd zTR^5qsTp+%92ppRAT4M6jLiVXp_*+T~<+GT3xq87~0@yQX zNB}MZE2TxlF|-tq290L7_RGolumjt+=jZRzJ)@oRt~=I9p+6ez@81A-af>NLj>rpS zWKZl`ZBiIKS`HqMmEHdPmzh*k=!-phC(q8yht`5Bp#D4H`7;!z#R(X|F*m7j#iNJE zC!SQ6*RS{2+elMBqZ(ND|N6^INJvK!zC>4>XZkzdW;kZHYoT zB3$okn5(U&zD~Or_xJbj+L!H9k)9EEDfZeXN1=&pHy@E8egiKnffeH!ulz4c?I8*V zd2O)4;Kl^J#=D1MC4=;{;`Ns=rg_I-UWposewQWbBxe{}!g2d`Ypc9d>=U6MjmQ2sgLl5;Uoj;rEevCPD z($1ZMCkW^rBZ2dQc4(3h!%^cT0#dE)46eBt29mWPX;xY+mIkiv4EL8OXcO?Puyb&L zQxoB7-Okc!E?oZcaooLyPSLuDbSjwOk|ZEXT5BO49gtoG_p$qrp3Dqc+`21OJs~Hz zH(r^oqOal`9~GR%!rm%_VWxeIApnRHmZk+L;JRc|mLw(_G@eKa-}y5d`p8=2WN+3@ zZI2ilM~5Sp-X5ejiq^zouzIE>81!wy+8)pzv4u*H-KyUibC!>JemHMx>9~@$Z}fX- z8@chl#rM3ekQ%-p+>%Jqf`Xxoa9Sh;a$u}f1i#(YJmdHSfQP;ln#sHuZVd~soz-Eu zaWg9hSO5y9mtY1Q_k*HIXy>!i2R&T?XhNQxKt}Phq}O%Jl=qBL_Lw{NwCw0sQCJKT z&rc>fLug=RQq(OO9#em>^I7{uDMxA3L?(||+yDDktsg8G4gZD5J51aL;b)^d z-%{DJT|(zr1uI>Qhrwbfe9`OuAd{(B7c!!h*&`E%y%>WY7fWddOa<(^)-L75^ddlU z4lF@nJAeY9pgFR(_m3&TBMPz`Ant~T?}vxDq>6G#yw+NxMn&c!0VE@cfB2v6MoMl| z3h^6j{QaigR7)P5D$1&C$KlO!kboW>YEEAI&goWfGDz#VAR+fnr*Cn>qt=$)pu9kO z9UC7<+qwpbs1YCO#iY3)iIrunRB|`a3rmlH}E^?_~WW*)WnEYp*OK zyFvnhqzlU^Z{=SlvtrmAN&^b6O1b+r>^#M48TqMjtzYt&cx6T4A@4Sf&4e+`G>I+Jj63I-aC2^!K*-Y^cqJZd;$2n$jHI^@{-aJdM zBr6VC4R3ajfbz(j`ru(aCQkSbPZ7l31Q?t={+lAPt+1%^Kns8lQJ5xKUO8G2D&7CS zYVvVm{^|G$P6W&)25PPh&tMfW$bBbsnIW-PZ2dU|D55p7<7zUJ^a4!rTF^xV6#SG^ z@xJsKyiuXb9TT2s&_So2FP7 zhlcrfCrLInZU4AIdcJUjf^3o{)PM4@`#-tDt>m7SfBIX`4IVZnb_wPS^j2(G4qE16 zv=ZeutlEiz?8NNraLnS01&j)S6A>{oaK?tb) z32?jbL+#KazZ8wDi%pbnBCZg7Gl9R@RY8o1%@PocUy(qAJsx=OZ}@t# zBO%HQU}Qd601Uy8{*zV3Z=n+s6T;Q&M8^%CB!!tm>P$`6;mWxw_&9G6b0xOeK% zjxjSXJf=}1J0+r$?k(*lERl`*@)=m85%iFb)`}8AmSaFQDuC-BG1$!y9en6`0X^`I z#(CZ02G40nN?15uM05^p0V^o;z&5+s0tbibiD6&!cV@Z02l*5~>LUYOM~bI!8L98j z?OGN=<<41HT*8|YKp@h1{$8JMITuRr3@?7Tu>YKAho`A&?|5`ECXP2VF37sRud`pR ztjY7xi568!htFo_fnz##DE{nQYi7eVrCj3+8Ka_6+_YhZn8$#iN`dU*K}IlB=6?)r zd5M%{im#-rWIV;?9@07=CgP%_NskVq~&lHz>ysqgvP6C(}TRe{?JWbO|H}E zXbMh67BN?8)elkxT5#bPWMGIpFGnci#!H4?SBmO{hBz=RzCZ7)kq{63YURfIi7SOC8^$OrG(L z_)iP)|FqEg{LDET_{-P9VxzsRyPIjQ#NEYV*0Zl4BL(ITc*3NX&f$A|+1X8HQd}ju z-XI^Wgh_J9c+myF6T%~rBh(>pU{UDeTRUxyP8{X)EoA1!SN}rffF5kJHBKkV{JbI~<;$N}t6;sG=46+ea``gD%2G6c6o4Z_qq-#1NXvz8-S2`3IL( zk#$G&QiJaEm+gi1|Yyo@$Bg`fQ)ojf4Wu`-kjX|ke-N`Hp25W4vV znes>7;y+*{y3)gE4G_LQN37iF5V;@!BpG@(3%e=ZhF_znA@0UiZW_&u9H1FLr+-A%sfeS$_S*?uOgos4A^ zfqzK%fA!{44q7kc1<-e_=&F7RD3vRHLy$w*wgU&SH<*>)T+PaZFVPVel`A8GDTPMe zOtd)b74`q2^Re{FX%v{?1H>7H7Ai1jirCMK_(|mbAi%B(cCI1=m;u8LrOpF{r3sz` zMO5x>(}4q8EdKXv=TG|@|LpUO6L697@GF5OaMGq_@TXf>zCDn~% z&X(Xq8|#O>a4~p<1;v3h#^`!tC%gAAU~q}VDYyEK_82<2P>{0iKkR+5+^H3ls3kl| z8yeE=0mIF7@{`eaWo6zorG z-^nhSC}^8hQ1G~e;Q4O_LmEJFD+1sG)`^-ml$F6#$3LIMozgA;b=eVv0h-tEV0jru zYz)5{ouYk=Flf>sN5~Sjt`(s-W|s07*!j9ha`-inH*6sFKWCsr+cUvyU)!hXQ+k>5 zVi36fdm*-JP$8mI6M{j7l*JU9KltKj-!ev{;WCH5o};CAhp%1R?$!HWDtoZY2)zn} zqz2)rbFlPFF!rOETwwA73&2))rU(dt0qS10Q&jj&3K-=Y`3`r``-0zQL*z%xD}yX~ zFisT=u~WS6p)LOCIV%```ma6=8wI~`6|Rkz0qZdoCYY2<|~Fg}1sfV4|6CiHq4T!I?shkw?5E;bB=VtC1lCDY*E zlJ!}g7@RnO1w{VOLE~S`^vNT=Mm@925^)s&Tod3hD8lFvT!#gD$r%+-LEN%tTeP8u znY&a!+FH2gkmk{ziHbp2K>saJY6??>Lk3ki#l6Krps9vK0~2N}3VNq$Y(+zGA=~48 zq@lBm=_x{^axa<8_eZ8@ud+jr)PD&!3yu3dc}4aQ6P((dQ{oDuH67la3p}`STqqe3 zMGgNb4IY9EsDb4tXJC)eBef5glm3xj1c{>K-#ljmT1J~$Id4;wwa1LnPnZX z7SBHG>#q!7OqvQh2?$KpFxovG^h{P{?keSU4=n=L)Mohl6kVz${t6B|8WAr;4UbS| z(}p-z1Cj|&Y^Yi*h#eUc9&%KU`{RI=5sWv3nw~MCi76B?7jllRoDHFo^3{+-AYnp! z1xPY#GXn^AX*K4yL1Y`~% zPk;|~7@P#;Toz9uB91P%0=%eVd2l#CR`UstCQe+^1Tpjt>!W>vJ4HG;0@eSu&W!)p za93eTGR7E}C*fdVuX&Is84l>JkPd^O1xv_-MS=C}tEk}-X85`Y8aqHpx)^Cw`@5j< zB%kzOQp7!r5gunaYCu4nRuFk>MQp}AsC7X8ru!Dj1S2+30ix6Zj4Sf?fcw(Cb5VnL zf5}?-3ltf)K>XqPJryHIN$AlSBNX8TR9EDoTOw%1_b7tl0Qid_omEn@n_Ew>BCabH_dPt#NIYglj(8g42sT@oc=|Ax7SWK6v!C}*z=BsvmaQDzzma

      }t&_EdOdO;Q!{4xx0IWkel4%jWb?NP1V@Bm4O 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 diff --git a/chrome/app/theme/chromium/product_logo_128.png b/chrome/app/theme/chromium/product_logo_128.png index 9f88fb10a2b4ac59e088471670317961b803f8b1..7e63ba7f8c2b1226c85a270fa32ea0d31c8552b0 100644 GIT binary patch literal 22073 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 literal 8366 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 delta 1008 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 Hu0mjfSaC>2 delta 1001 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 Z{~O9OhEk(C*t7ru002ovPDHLkV1nI1l8XQU literal 21369 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 O0000 c #222634", +", c #222835", +"' c #1A1D29", +") c #5C5C64", +"! c #C1C1C3", +"~ c #B2B3B7", +"{ c #B1B2B9", +"] c #BEBFC2", +"^ c #909094", +"/ c #1B1C28", +"( c #2A303D", +"_ c #3A4050", +": c #444B5B", +"< c #444B5A", +"[ c #3A4151", +"} c #1A1B28", +"| c #8A8A90", +"1 c #BFBFC2", +"2 c #B1B1B9", +"3 c #BEBEC1", +"4 c #AEAEB3", +"5 c #32323B", +"6 c #1F2431", +"7 c #343A49", +"8 c #474D5E", +"9 c #515869", +"0 c #545B6C", +"a c #545C6D", +"b c #525869", +"c c #484F60", +"d c #343B4B", +"e c #1F2430", +"f c #2E2F38", +"g c #A9A9AF", +"h c #BDBDC0", +"i c #BABAC0", +"j c #BCBCC0", +"k c #57575E", +"l c #10141E", +"m c #282E3B", +"n c #3D4352", +"o c #4C5364", +"p c #565D6E", +"q c #5C6376", +"r c #61687B", +"s c #60677B", +"t c #5D6477", +"u c #585E6F", +"v c #4E5566", +"w c #3F4655", +"x c #292F3D", +"y c #525259", +"z c #BCBDC2", +"A c #A7A7AF", +"B c #C2C2C4", +"C c #85858C", +"D c #161820", +"E c #1C222D", +"F c #2F3542", +"G c #3E4553", +"H c #49505F", +"I c #555B6D", +"J c #5F6579", +"K c #686F83", +"L c #6D748A", +"M c #6C7287", +"N c #697085", +"O c #61677B", +"P c #565D6F", +"Q c #4B5262", +"R c #3F4654", +"S c #303643", +"T c #1D232F", +"U c #16171F", +"V c #7B7B81", +"W c #BEBEC2", +"X c #A6A7AE", +"Y c #9B9BA0", +"Z c #A8A8AE", +"` c #2F2F36", +" . c #11161F", +".. c #222934", +"+. c #303641", +"@. c #373D4A", +"#. c #414755", +"$. c #4E5565", +"%. c #5D6475", +"&. c #697084", +"*. c #747B90", +"=. c #757C92", +"-. c #777E94", +";. c #747C91", +">. c #6B7287", +",. c #5F6578", +"'. c #515868", +"). c #424957", +"!. c #383E4A", +"~. c #313642", +"{. c #232934", +"]. c #111520", +"^. c #2B2C33", +"/. c #A2A2A7", +"(. c #75757D", +"_. c #ABABB0", +":. c #14151D", +"<. c #1D232D", +"[. c #2B303B", +"}. c #313742", +"|. c #323844", +"1. c #353B48", +"2. c #404654", +"3. c #4E5464", +"4. c #6E768A", +"5. c #7D859A", +"6. c #7C849A", +"7. c #7E869C", +"8. c #7E879C", +"9. c #70778B", +"0. c #5F6779", +"a. c #505667", +"b. c #424856", +"c. c #383D4A", +"d. c #2C323F", +"e. c #11141C", +"f. c #A8A9AD", +"g. c #696970", +"h. c #84858B", +"i. c #5A5A61", +"j. c #1C212C", +"k. c #30343F", +"l. c #333844", +"m. c #333945", +"n. c #353B47", +"o. c #393F4B", +"p. c #404553", +"q. c #484F5D", +"r. c #5B6275", +"s. c #6E778B", +"t. c #80879D", +"u. c #80889E", +"v. c #71798E", +"w. c #5D6577", +"x. c #535A6C", +"y. c #4A515F", +"z. c #3A404C", +"A. c #363B47", +"B. c #343741", +"C. c #313A4A", +"D. c #2E3847", +"E. c #212530", +"F. c #62636A", +"G. c #87888E", +"H. c #8E8E95", +"I. c #3E3F47", +"J. c #2A2F3A", +"K. c #313640", +"L. c #333843", +"M. c #3A3F4A", +"N. c #3E4551", +"O. c #464B59", +"P. c #4C5161", +"Q. c #52596A", +"R. c #53596B", +"S. c #565F70", +"T. c #4D5363", +"U. c #474D5B", +"V. c #3E4756", +"W. c #3B3E49", +"X. c #393A46", +"Y. c #1E63B5", +"Z. c #1D4C87", +"`. c #2E3644", +" + c #2B313C", +".+ c #505158", +"++ c #919197", +"@+ c #939398", +"#+ c #393A41", +"$+ c #2A2F39", +"%+ c #2F343E", +"&+ c #303440", +"*+ c #333742", +"=+ c #393E4A", +"-+ c #3D4350", +";+ c #3B414E", +">+ c #424857", +",+ c #414654", +"'+ c #454C5A", +")+ c #434B5B", +"!+ c #41454F", +"~+ c #3E3F48", +"{+ c #33557F", +"]+ c #1F70C2", +"^+ c #0B88FF", +"/+ c #1A4373", +"(+ c #2B2A2F", +"_+ c #2E333D", +":+ c #2B303A", +"<+ c #4C4D54", +"[+ c #94959C", +"}+ c #95959B", +"|+ c #393A42", +"1+ c #292E38", +"2+ c #2F333D", +"3+ c #30353F", +"4+ c #323742", +"5+ c #353A45", +"6+ c #373C48", +"7+ c #3A404D", +"8+ c #3C4250", +"9+ c #3D4250", +"0+ c #3C414E", +"a+ c #3D424F", +"b+ c #363D4D", +"c+ c #275A96", +"d+ c #0F81F7", +"e+ c #0B85FB", +"f+ c #0B71E9", +"g+ c #1A2536", +"h+ c #282E3A", +"i+ c #2F343D", +"j+ c #2F333E", +"k+ c #2A2E39", +"l+ c #4D4E54", +"m+ c #96969D", +"n+ c #96969C", +"o+ c #393B42", +"p+ c #292D37", +"q+ c #2D323C", +"r+ c #333944", +"s+ c #353945", +"t+ c #353A46", +"u+ c #353A48", +"v+ c #3A3536", +"w+ c #30476C", +"x+ c #1860C3", +"y+ c #0D76F3", +"z+ c #0981FF", +"A+ c #0A6FF1", +"B+ c #0B49AA", +"C+ c #1B1F29", +"D+ c #2C313E", +"E+ c #30353D", +"F+ c #2E323D", +"G+ c #2A2F38", +"H+ c #98989E", +"I+ c #96969B", +"J+ c #3B3C43", +"K+ c #282D36", +"L+ c #2D313B", +"M+ c #2E333C", +"N+ c #30343D", +"O+ c #2F353F", +"P+ c #2C313C", +"Q+ c #313641", +"R+ c #2D333F", +"S+ c #545358", +"T+ c #2F7BC6", +"U+ c #1A6CDE", +"V+ c #0A78FA", +"W+ c #0A67EA", +"X+ c #0951DF", +"Y+ c #082D79", +"Z+ c #1C1E23", +"`+ c #2E3441", +" @ c #30343E", +".@ c #2E313B", +"+@ c #4E4F56", +"@@ c #3C3D44", +"#@ c #282D37", +"$@ c #2B313B", +"%@ c #252A33", +"&@ c #272C35", +"*@ c #292F39", +"=@ c #2F333F", +"-@ c #55575E", +";@ c #818183", +">@ c #9297A1", +",@ c #898988", +"'@ c #0540C3", +")@ c #0840CF", +"!@ c #0C1E46", +"~@ c #1A1F2A", +"{@ c #262B34", +"]@ c #272B35", +"^@ c #292E37", +"/@ c #2C313A", +"(@ c #4F5156", +"_@ c #97979E", +":@ c #292D36", +"<@ c #2B3038", +"[@ c #2B3039", +"}@ c #2B313A", +"|@ c #2A3039", +"1@ c #252B35", +"2@ c #67696D", +"3@ c #A2A2A2", +"4@ c #A3A3A5", +"5@ c #868B92", +"6@ c #818793", +"7@ c #0433BC", +"8@ c #0F1934", +"9@ c #272D37", +"0@ c #2C3039", +"a@ c #2C3038", +"b@ c #2A2E37", +"c@ c #4F5056", +"d@ c #96979D", +"e@ c #939399", +"f@ c #3B3D43", +"g@ c #282C36", +"h@ c #2B2F38", +"i@ c #2C2F39", +"j@ c #2B2F3A", +"k@ c #7E7F82", +"l@ c #A9A9AA", +"m@ c #A7A7A8", +"n@ c #8A8A8B", +"o@ c #5B5B5D", +"p@ c #232C48", +"q@ c #11161E", +"r@ c #2A313D", +"s@ c #292E3A", +"t@ c #2D323D", +"u@ c #282E36", +"v@ c #4D4E55", +"w@ c #95959C", +"x@ c #909096", +"y@ c #2B2F37", +"z@ c #373B44", +"A@ c #969696", +"B@ c #A5A5A6", +"C@ c #8E8E8F", +"D@ c #69696D", +"E@ c #1F222C", +"F@ c #0F1421", +"G@ c #1E232F", +"H@ c #2D323E", +"I@ c #272D38", +"J@ c #2C303A", +"K@ c #2A2F37", +"L@ c #4E4F55", +"M@ c #93939A", +"N@ c #8E8E93", +"O@ c #3B3D44", +"P@ c #232831", +"Q@ c #53565B", +"R@ c #9F9E9D", +"S@ c #8B8B8B", +"T@ c #45474C", +"U@ c #161822", +"V@ c #060C18", +"W@ c #1F2531", +"X@ c #2C313F", +"Y@ c #272D39", +"Z@ c #262C36", +"`@ c #29303B", +" # c #2A2E38", +".# c #8E8F96", +"+# c #3D3E46", +"@# c #262A33", +"## c #696A6D", +"$# c #757678", +"%# c #33373E", +"&# c #060B18", +"*# c #161C29", +"=# c #29303D", +"-# c #272F3B", +";# c #212833", +"># c #242A36", +",# c #2A303E", +"'# c #2B303E", +")# c #2B323F", +"!# c #282F3B", +"~# c #282E38", +"{# c #4C4E55", +"]# c #88888F", +"^# c #7E7E85", +"/# c #43444C", +"(# c #262B35", +"_# c #2F333B", +":# c #4C4E51", +"<# c #21272F", +"[# c #141924", +"}# c #1D222D", +"|# c #292E39", +"1# c #2B313F", +"2# c #262D38", +"3# c #2B313E", +"4# c #2B303C", +"5# c #292F38", +"6# c #52535A", +"7# c #808087", +"8# c #6F7076", +"9# c #5D5D66", +"0# c #252B34", +"a# c #1E222D", +"b# c #242832", +"c# c #272E37", +"d# c #2A303C", +"e# c #2B313D", +"f# c #2C3340", +"g# c #272E3B", +"h# c #2B3340", +"i# c #68696F", +"j# c #707178", +"k# c #9F9FA4", +"l# c #2A2D37", +"m# c #2B323B", +"n# c #2D333E", +"o# c #2F3440", +"p# c #2C323D", +"q# c #2B323D", +"r# c #2C313D", +"s# c #2B303D", +"t# c #282D3A", +"u# c #282D3B", +"v# c #2C323C", +"w# c #2E343E", +"x# c #2F3441", +"y# c #2F3540", +"z# c #2A303A", +"A# c #9B9CA1", +"B# c #4E4E56", +"C# c #72737B", +"D# c #A2A3A7", +"E# c #4C4E57", +"F# c #262C35", +"G# c #303642", +"H# c #313743", +"I# c #2F3642", +"J# c #2F3644", +"K# c #2F3643", +"L# c #2F3543", +"M# c #2D3341", +"N# c #2D3340", +"O# c #303743", +"P# c #2F3640", +"Q# c #50525A", +"R# c #9F9FA5", +"S# c #6A6A73", +"T# c #62626C", +"U# c #9F9FA7", +"V# c #8A8A92", +"W# c #363942", +"X# c #232932", +"Y# c #2F343F", +"Z# c #313744", +"`# c #343C4A", +" $ c #363F52", +".$ c #394258", +"+$ c #3A455D", +"@$ c #39435B", +"#$ c #394358", +"$$ c #373F52", +"%$ c #343B4A", +"&$ c #323744", +"*$ c #222730", +"=$ c #3C3F47", +"-$ c #909198", +";$ c #9D9DA6", +">$ c #61616C", +",$ c #7D7E88", +"'$ c #ACACB5", +")$ c #717179", +"!$ c #2A2E36", +"~$ c #29303A", +"{$ c #323949", +"]$ c #353D4F", +"^$ c #3A4256", +"/$ c #394256", +"($ c #373F53", +"_$ c #353D4E", +":$ c #333A49", +"<$ c #272B33", +"[$ c #75767D", +"}$ c #A8A8B0", +"|$ c #787984", +"1$ c #8B8B95", +"2$ c #A1A1A9", +"3$ c #575861", +"4$ c #1F252E", +"5$ c #303847", +"6$ c #313948", +"7$ c #313846", +"8$ c #303742", +"9$ c #1F252F", +"0$ c #5B5C64", +"a$ c #A6A6AD", +"b$ c #8A8A94", +"c$ c #6A6A75", +"d$ c #93949D", +"e$ c #8F8F98", +"f$ c #3E414A", +"g$ c #242932", +"h$ c #2E333E", +"i$ c #2E323E", +"j$ c #2D333D", +"k$ c #3C3E47", +"l$ c #8F8F97", +"m$ c #90909A", +"n$ c #666672", +"o$ c #6A6B76", +"p$ c #73747D", +"q$ c #292D35", +"r$ c #75767E", +"s$ c #92929B", +"t$ c #696A75", +"u$ c #686974", +"v$ c #82828D", +"w$ c #6B6C76", +"x$ c #6A6C75", +"y$ c #81808B", +"z$ c #666773", +"A$ c #474855", +"B$ c #5E5F6A", +"C$ c #5F606C", +" . . ", +" + @ # $ % & ", +" * = - ; > , ' ) ! ~ ", +" { ] ^ / ( _ : < [ ( } | 1 2 ", +" 3 4 5 6 7 8 9 0 a b c d e f g h ", +" i j k l m n o p q r s t u v w x l y @ z ", +" A B C D E F G H I J K L M N O P Q R S T U V W X ", +" Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.Y ", +" (._.:.<.[.}.|.1.2.3.q 4.5.6.7.8.9.0.a.b.c.|.}.d.<.e.f.g. ", +" h.i.j.k.l.m.n.o.p.q.9 r.s.t.u.v.w.x.y.#.z.A.B.C.D.E.F.G. ", +" H.I.J.K.+.L.A.M.N.O.P.Q.P R.b S.R.T.U.V.W.X.Y.Z.`. +.+++ ", +" @+#+$+%+&+*+A.=+-+;+2.>+,+'+'+b.)+!+~+{+]+^+/+(+_+:+<+[+ ", +" }+|+1+2+3+4+5+6+M.7+n.c.8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+ ", +" n+o+p+q+i+K.4+r+s+l.~.t+u+v+w+x+y+z+A+B+C+D+K.E+F+G+l+H+ ", +" I+J+K+L+M+N+O+k.%+P+Q+R+S+T+U+V+W+X+Y+Z+`+k. @2+.@1++@H+ ", +" }+@@#@$@:+p+%@&@#@*@=@-@;@>@,@'@)@!@~@{@]@%@^@:+/@G+(@_@ ", +" }+@@:@<@[@[@}@$+|@1@2@3@4@5@6@7@8@K+{@9@$+[.:+0@a@b@c@d@ ", +" e@f@g@h@h@i@j@ +&+k@l@m@n@o@p@q@r@s@:+t@ +j@[@h@h@u@v@w@ ", +" x@@@]@h@y@<@[@z@A@B@C@D@E@F@G@t@H@I@D+ +J@$+h@K@h@:@L@M@ ", +" N@O@{@p+h@P@Q@R@S@T@U@V@W@X@X@h+Y@Z@`@[.j@G+h@ #^@&@+@.# ", +" G.+#@##@}@##$#%#&#*#=#X@-#;#>#,#'#)#!# +J.:+$+^@~#]@{#]# ", +" ^#/#(#_#:#<#[#}#|#D+D+1#( 2#2#3#1#D+D+4#$@J.5# #^@]@6#7# ", +" 8#9#0#|#a#b#c#d#e#e#d.d.f#m g#h#d.3#e#e#[.|@:+[.P+$+i#j# ", +" 6#k#l#m#n#o#n#p#q#r#e#s#3#t#u#e#s#r#v#e#p#w#x#y#z#h@A#B# ", +" C#D#E#F#}.G#S H#I#J#K#L#M#N#F L#J#S O#H#G#P#b#Q#R#S# ", +" T#U#V#W#X#%+Y#Z#`# $.$+$@$#$$$%$&$Y#%+*$=$-$;$>$ ", +" ,$'$)$!$~$I#{$]$$$^$/$($_$:$L#*@<$[$}$|$ ", +" 1$2$3$4$+.K#5$6$6$7$K#8$9$0$a$b$ ", +" c$d$e$f$g$h$i$H@j$P@k$l$m$n$ ", +" o$e$p$q$/@/@!$r$s$t$ ", +" u$v$w$x$y$z$ ", +" A$B$C$ "}; diff --git a/chrome/app/theme/chromium/product_logo_64.png b/chrome/app/theme/chromium/product_logo_64.png index c8f9c190c8e974767d4905a7edf79230ffd817d8..8358e5d2e0a325ba2efa0601042d94327a78df91 100644 GIT binary patch literal 7342 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 UWE1q`9{>OV07*qoM6N<$f(=MSnE(I) literal 3634 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 Eg4PWPTmS$7 diff --git a/chrome/app/theme/chromium/win/chromium.ico b/chrome/app/theme/chromium/win/chromium.ico index c2e434a028b53b7d6e6f3ff1bf03df3c3ea5acbc..173a8f4e8f8aaecb82aec344718824d1c78c6747 100644 GIT binary patch literal 270398 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

      |>WSPl{lEj> zia)*yv4A1e6#N_Z0P7NwL$sE_c;N=aj1dlD4FdCq#s{e*B2SPUV2*&=A^LY7d>gtL ztcNWC?oyvOJ0M?2AJMNqqt9*KYs~p#+^zjwKztzZ9R1nrzvtM@*N%`+qKSE)CtsMh zn4g;*pzW6YQOAmLF}~xNb&erFiN_dUWWo11=E_c!LuDsqi~rele3P}NQ8UK&?ANt?8n)tdFeR3|b zVEu0O|0M(D|6g&|S+^X7EV&o?dD#E@|ABwzDr&E&|NZTU?C}n4(bJ3j^LZ{=hui4T1#MUp)tgd5+jfYZX!8B zMgG8A0&RgYBUrm|4c93oCZIoHEg`u==j(+(fE>3uIGuO^SW259b+dVUb#(I?v;ka~ z-CU}5u;zZ9=jpuvwBfthRew899-A!@M_<#=!3QxO%?9AvIzD-H?7CxWj4;L-IcPdR z^s?9ayp)xcHRaCNP1cmDhX3yMl-JkETl*ZiG4u_ugH!5tZC$^!+5Zza-?*;-llA|T zvHhp8SEl&a{tp~g{2O1l&h{Mizj610)c@B1xc1kP=$G?}OS?Cz`b<0J`{XQ*|NGlr z|4001{tx>f{CC#>s{VhgskC3kf4AQnZavcf+%s1b@%`GLZ7hO|V~iRnci+$(8}|YKyYI3~*=70i zvM+YQuIwf0dNk_|8(c=M^2V5F;C$oJ)E2vb>BeiZKH)mTt36!7&V?T*7>=qZ^UZ14lMK!?+JMf84~+VmgI!I7c$p#y*;m-CV%{2 z88rW=ZL0n^|37iFjl&*p^?y^T{}U?>|LRb&)bzjpf8Zbee<0(wa)9)I`2XNv{jdN3 zA$;81(Pi%WW&YpXpZ5Pj;D0;f|66ah6?5M8|5^Xn{XgM7|G$1AJO&c4}9Vi)DK5o;B!$ss4XA|e2cii z-FM$rK1W`>yW@N@{DT{nJ-*%cCJTuGBKj#SSR`z z_KG}`eBmJx7uX-%?_KtwhI}{Hk=%L5UhN%)z69?VI5lP6D!Il$t-&Hu6fN5A^>$borw z@vq(u`=7YaK*ax|{s;U2Xz+gl`ro~Y-S@A>|I7inezE$0*}S=BVx9jR^MCOFxEY^7TOe`;AN)YBLjt!L8?YY1wF%8hIFI?X)AR{WEXTqF zM^i6wIC+AD%po&|d+QT0m-Nj$?^NEre7myG@+IZbd8?JZHy}Ppj4zwENIWpd13y6Kr6aSej(Dqb5#Bu7K zhW~udXTv`5z3rU$B<_(>KaUn%!u|Fc?HKEckpENf`Tv~*IUYQy7oGn{9Yzsju?>LiGQl8Iy=rZCUo; zb9ejz^s;k_(a+%zfK%gn#`SK%7SPB4B>ukZj+zfJM_??#x*_p@@4ffLI7Ijq~^}UOT3BY#nRypDp!3^EsPt&>!fW^Stj7!%g;*1He6>o3htX{eg=A zT~_gb^dSeA3w!*3c}nbC`|}_^K+ON4{(q|p6N2M51OM*-`?|e9YfPl|u^0><;Fx`G zAEy2fZnj??3+^{tte2DXb9k@s|JQLuPP`s|evFNHuT5V+_0qrwekoyz+>}QD|gOZ zjlGU?e&KpUtr;RNXx$)ofa?vocfdCI15?pu&g*fFAM1wY)99;;|FjGA3A6#Wj{P5F zK7jbA#XfuV*R1+ld@g_o7PHrg{c4OL?5;RwEJ2PA?2CU|a5A6Ybbr_rjvv=-G4>o| z%=vvDBPJk@<9@XRxF@bdXL$6rI;F~896jfH*qm`MWwfKO=!5pYkl!kA>bu1M=28E* zC4DC@#(@9ntpDHU|2*@|Gl3=XWc{DS(~`u{@WO*g9l zvHzR@FK@N=KaBrPB>wN-AL{=J%z4;mbM~g|*#Fl2CC1yagW>4ov;`XHwqqLu=LV*I zRmaDE@8CYiGhQPfnG@z%zpsOR#y(<4760K!a!riKd=$<*xaS$;)l1OrOJ*aR%w;h) zAg371c5KyW&TEbs7uXNkMy{1l>-fzN8mrS55TDNfvHoBE?L0wkfm^_}^}}B@Pe`4R zHABV)?t)|GfV;kRSKM>mRe8YJfa{V(-2k6q-GR1%YmU5mryXMtmdO*hF2|A+c;}Uu zmTTYl9(%1+?lIVbYKHS@-nM`y2A9+*9-JTy1kBijxt57K6>F(~#iTW1LM!*IZu z)rZC!M4P(TDfa6m^w{L^2XY-i=la>t8Kv|*_dSMP$8(|g<8>GRDHmXz`+<8tC;6aq0N0xh z-|PV8u;YVr?)y?ElP`K@IL`Tumi_6>`mps?_FwXXyd8b(xQH|R+y0Dx=Ui@$G2;C^)3N)(eCM2) za^&(n@@%IeKgvYY5vkWxelm`Q%xRY*cZ<0*i#~G}vCC+EFU!UCWd?sH9 z2gI>mb3F)RKj=u;7jr!k;{y8W#_qKRtQ~$owt%rc^|^ljXUG$}wt%&Q`UBPr-9oL9iKo>`1f0H4Gw5L&~k?EbG*rhf;7dtvdQa?sd8tYJ=` z5Dst;WMcxZGvJ!U(@EhfU zu>J8nn%o2@bY!cG?ZkV^pgfQ=>g&oY^*v3ln{G?{KjRcMiSz z^zi?Y0quYD?do0a|AC7CoB!AUH~y#num67sdaBv~5A^7Nv**ga*?sKO+S+~-`vlx$N?t*jVF!m|s7&&caRQcrCZ9Y@yfB77;zQ<16 z=bV3R0sR8w_OFW#5>wTlzxn2mguibdz?gt@h$24_9B>yt!CmFvd+rV&!5HGFKZQMj zO<*2y+?dg2r|p-O|G4|><)Q!hc6t7($I8!s@=ST@#h;W{UwyIs_BSt;mpT9WkDnuZxX4qc%S?;fDW|04d6 z|38rSzwtlkARI$&srbK%x)$|+to?_*qW;(acmA*I|5(?s2{Dc>!2bmB-~9g=cX6Q} zr@zu}&ttyM{%d_1_>X?A{m*$|nsG?%JEnE4#4YE+1A%wPUM}eBe`Ub>Gi}MRCnJW( zck+9bC-u8c+0>p*-1i=PIG`i1iG5`>xuId-qxB2cf9VTsRkoi$JLmXf2e|f!`wwWZ zTPyIctEn5T{y^^>0@oM0ll357Yawg_{DFJG|GoGG#t3i!;_bZe+OqE2YnSCq7L~j1 z_+0tc9iK1vfBReIk^8?>UU>HL^72bRDZl>pFUzlA`FZ*IPo6D5e3}s$vo|OY%;^h1K>Rmb;EDNz%9m#jDjN->Mu@f^9I(NNA!W=cYlU);^9jZU zS#!+w!CmLq+DK~#!ylmkwFUI)tp&6eAnZV%Y5kQ)Z7Vq-kKKJk=yUip_#nn4c|xxB z8L`zFGrrS)*4{7{E9YdbQTlu4b%OJi30jvAc+Go~1C*__2ih^^R2fWtpV)64kTM(g z0r!J1IQkxaRqNgSjmH1g|E>YFdBp!$FEjA}jsJ`PXYv1yquJa~^LFu%ZD_px2y!A|FuKR|5^WYC%VafzoTXW&T8?0^}q9)V(&lX!u@~U`y^}s6BEsE%DzgD zbv)W@&*j;i?_aOScvT+oJn-%qwsEUihwJCU{qwlLE%;XVXfG~eFKgvNeJ>9whw751 ziyWuaEs1ySl!pJV?4=xr&CmU?2bxTVU0}S||JYi_f35#;O`Qd-H?B``#;GSqP5=4Y z0?r?R1B~B0@5k7n^8h;efzNz8{Qj?e`HtWK4k&J{51!a)d#!3X@6ONBRy?oSl^lVJxK7mPL47)LRuZr1*vM(!~EsN_=ns`Ycm%X!WCL~Ovmt=M<&PUB?z z-SL@j<9>U8J35Z`xg22(W-&1vn|TKLKWd1O1Le$kVyhoimO|I}$X2|rve$H0;vX3m z?|gpP2A%W7zR&8Xssoggv z1?3~}e^2?+XFpl)`P!GtGmk%5e)ZB%%Wts#fAQ1j%i|9)zwFN2%a=a$@pALEtUqwc zh2`=UXOv;1)-0FI8dDx`et@xn*7OHxPr?CbZZ@cl=1*vp31mGHxyWf%Vp4 zzcSW)f%C&3U>y+m{;|Kp4ghcBKh}U|J)GDV2z;i`RPF!h|2i(7*Z%GFdGseX6`$G0 z&ttY6%kK5c#eNQBFQ-IQ217OJfpZK@FKI(sZ;{OBX|406R z|NY9_sUvCj|5woe{!aD3_P_fV#{NJ0|JXFvIEa7koo&MZH;$7yX?ouNvhM@qV!F1r z&QI6QN}d%z>UDWxE@LQ{FT$2rzdJ8g{A*iG!-kv+|99q|(f`Uo)S-KN;(Ot-x@oQV$@oLE)|UV1jpYO61bptaqYo=59&$j) z=iDii%9Go!S{?%H<^#eH=sEZLQws)_k4^0(H-I02FW~+p`U2yq5!h%Q<_=U2aGxOe zB6jY-{(w1F_W+oJ4s5y#Jv11 zuOt`b9Gv{@A0GFDj+o_J4As6IhQ&&va?$s2M&;=aWdmGjj9 z<758IME-l=A6%IKf1Ur2{#S>pPu&CTOZeBu|DA8I{@4G%l(nJf+aJP6@&uZuCTX=L#TMNGsISE@6{3~x^10Y|)1?VR4<#Qi*F0$__FXJ^-JYwn4@Xyxy>H3`;&}YhUDgImuTG&_7FNPiKxlu>hL&LXjslKL7`~ z7C_4p8sm?8q0g`n0kJ{X8PXOoufOTIv1R9NXP4dC(`=vROUr?~?OaYi;^1=S`Dd4Z z|HMbiQ`i8nz4l6Z><8a2pZL(VW#yTtl#>oSFgW9_aL^vxEh28WRhhiigz~*@hm;5B zkqhX-{lD_S{oH?WL0_3Tin`&U#sm86{-x9jtj)dztSvO2{7c$nu}q(BI%Ah(=(rlQVJvx{*E{3s=lCARCS<_-ephSt zev^r5Jf|GFR>z!4%uzz8XiLuLs2{1#pw3BKwCa21waRSMU1DDRCl}yrA}7Sn+ zgAa+{a})Vy>wi1?AHU_1haSrPzlr~e|4lYf|C|3)|FixF^PkoKk-MXhn$47XxoQX4 zcl76+PVO$B6MK%27*|(lL%OGe>q~T6$Uz%p#y(`q@#b3i`rb>K$T8=2$c)#rX&-vt zY{fiR_i#P%u0Q9TE_i@zf%CZTT6e^}IB&-}&T&K!MFaoZC~`o?0WvNj7ewtF{>mAr z855v>&sqVvVCBk-qqf&tf7b=Mj+)<_ZoG-wANC@_AJ7(XKH>ar=MiHe=Z8(PnE1kC zIc56fvcsGiWhXe{u)TLLH(hgedFF|S%ZlTVE(g4M$Flp9`DKT>Gt2g~rMQ$=!3NL{py>}dcVJ_DTm6CY zqus;Y^#oi~gd7m|??l!Xm=qk~_<>FH0ko_O$YbRE>UgTR9Vd@jW6^YY?@_t%b;eqi zGv%d?Z}La`jQX99X>ftZl#O`a-^BHZQz~EFbNr`A-Z$3|>Ex2pOXjUpW~)qB{6~(F z`|5w+Z~i;*U+w>>{{#Osi2?3TeU|%wX-8{MxB6fGf9Kn0{omf@(gCXfxw7T|&Hv%A zw)$V|fBe1LExqwS>;IemFW<%9pMgj9V&?c7?&ApNqehSZ%IjIb5pkL5!;I(nIa_ZE zhY~|^KU(XGvaY}}RfmZ8))?0+U!foBSjX5pzK*Tq8k~@_(ax2ll(%M+c6GgaUQDMw znfgC)&wCQ{X#;rfz5+h0|7)FVtgDUx()<8(jb2-bJ)@0$*a7>McTy8zy^zgXfy*w# zAEMJAg2gXzm7&j{SBXHm1&B+5hcVNn9%mbkoWJ0V5$=+d%UGTE~&saD|U?w`!W8$%m zBS-qC^>^<*Im6eEa~$K`F?D>^7o0oBZJgtI_@v5W$VYr%>XDQe&k1ZDXMmV@Br7;Yn}QcxIkT@JX!x6^*_{0Y=&)=_)q^|{r~K<&ldCO#sI_r zC;sm|yQcqLe`BEP|E&Kx{H+H>{LlHn>VNJ3i2o6<@Hap5@WaLRe~kaD|Hc1i#DvAa z{=YbN48?z!1H`!;nn%y|;j<69W5aZ!1gpBlZ267@N^vY7m3%?u8r!OfF*u+2B=QF|%@I0`t&X)(!6O6m( z;@|VYS;c$S5QBaGN3>3CdYiJtqIppp6!ZGD1;`URmoU~E#2;|&@f%oc&>CRlfy>xC zVg~r#W9g!@&kjq=!MpEVj@oz6a^^9Im#Z#VQSSWrPnSm@xQ{x3XUlhp`M>{)mE{zC zgTvs0eRo(^-m-LI*#WL_e#At4wELC}EsrkkD?eN^s64)ywum|ac;Hd|{)a0M1pdMP zBQ|V+M;G^%uWsAN+QWTionh$@m?PYfxS+Ox`g|?q3l0tLtk{n}lQVst`Psm{{#M{WeW~D7_|#l- z)Of%P)`K;jYTj3$dkS`@Rf~1cdmFaD93kH0$nS8DY~uj=K>I&*J$hHaasl>wdu?7&8^ET&xp?-}hzZ0# zqSye|3%Os2^+MJRS|{LI!o~vk*=tYskeghNe(OHvWPJJyPC33@ec`#~<`2BL-1)iB zQ0H@ZdF92QPy_g4dE%iTL`=|oSDbfNIqTS?%5ewnUk=@CH~4EpnGEKhT|THhu`JsU zmkuhn$14{+R=FT>zp&z;xL~bg#C$FYZMOHf;~$&rfzT( z))?9ho4|G9w?P+9a*T)zs2^=%moXNJ;~ay;d5&90&j&Y)@$NXLKjC}jljQqYd*9FI zn&Uqid5Cqm$V)jF&vm&&Cc$giWAuOKY0~Fc-zal|`5K>YIw|4-9a&aisk;*Yag+l> z{~P~j{!jS-WAKZe|1*;PKdAqA{cq#{;9oo1{C~v%7+crbQU4!R=k~RI=+PW)i@`>}wtLkE zX!F7xtNHRX*FDZR&R+GZu|~(+^~ci*@@Ta5HRh1kLDAs z`)yocjY{UN68D|!V1B0YzDaNax?y%4u@|_e{?8bIH7T~_0DW)U!k)GmJ6=9J^~B?u zC-C0z1LT142gnaNhsb@1+<(xugGaBwUO5}z{_2a)Eg!u4@^UNj{X1^`WcmI*UoTHT z_F(ztFJ34wzx>nkG`aup-~098fKT1T{K0o#8ot4Wr=C#8j2>N%oHnNXY?ndhnH`Dq z!vjxl*X4rX0C|9>zJFBw)3gQT17APP^`GzDSB~DiuM8(g7%_p7)C#RWH0lLM!v(H; zwGlkv8hBe`2W;K3v0Wn~^@P|J=YehU9r3<8Ms>WBpHs)T=ft{APL~VBwm#yP8;=Va zn1BqZi{xl!WD&8F1&oVpH-t^5z7JW-ys|cD*q!RADt~#be9*2ny(RXQWv;hcR%Jc? zfA;{l{ulgX3z`2n{%8Ha^M9Xz?zym|#eb{+ZT7$GZXC4F-UDj?TmOHI@qhIHM?UnS z(Erx|sQ>S$$z7rUYyH3Lf5>xN;`3Se)W$UNk53%D+4{BVefka^AK0hQdodp8jECdo zxy?LU%LxW&GmgmzEpF>EeQaZGVouy{jjs^vlEVMSqGE4qe2K9C)$2T?jC6H;o<|*8 z=zZh;`gQqi%n9H1zJFn0-?=PsKy3@nL(@83z%z{#4%%nW z*k9QB0?s3JJz#T$t|#yj<^o$AJZ|m&X|qMQ*Y@n&+pn-o_lj& zc@`W$y;EO#YKOk^#B$npH0*-M(et*)mZa_f2$;78Cvf~BHoy;g&&|{l>JO|xte+YI z<`J(k4BsH@hDNVJo|M%4YMEsAqn)QFzWB(ifv+mCN`^yGM|6j2J z```Ls@P85UzZ=#6Uu6D|^=J71VqYHUtp64MzxhA?fA*)Z`d>~@e>ib2N2=#~o3>W+ zZjMF9QoQCE==W#;cgCQO#kPTc$4m~Wjj{FIF>k!kY;JY2^T@Q(%_Zd845NuJ;+Lv_ z8r_lXBi~8S}e(|I7+>?(+UEp`V{^h6Z^p{b6 z>`?+ItjGCi_+UeFV4D&f*qpTnohRmc!MRr?^`hEn>T#MJApXM-2)iwL*KumLyyNG4 z^Z}h0=-i;t@AAI5SGR`@r5tTrWh3P#-hY5o5@^#7avkN!9Qcll`pl>a0D ze=z$0?KS_e{ zj$V^*YoEt?j-_J|mPeMLcIc*ivc+ojYo* zLc39!ioJ`?SJ(Q*nNbH=>rB-Da747Q8G7}e_X44 zz;j;neT!#IiTQI^UwK8$6O;#R#sRDkyqj^@W4B$)`s=Jy-gosC<%iVxJ%HbD&hJOh zKN+>Za)2>FuRY5B2dNFdgV^APV;G-J*DK|kzVi1=`^x{E(^r0V1a|y>edTBJz#f$c zcIhk6(4O9@KiX3}_QMD8!1lE5`paYTKy7lsliR}u*bP5|KeihU?$P}t!T(zL1#1oI za=;EB;+PokmA755!EtkbwmBAkz{sy~ z?%0OD=NLFuCVF(kJYOp>wt79D<9X$!>Hm3CsMkXNY~c@h&VA*o$!2gu)nyse&Rk*C zF>giw3f}VfM{Ekc=>8wh|5g9H|KD@i|IVQi|LRrsYj6Jlkp1=@u>4<}|EnMJ4r)}4 z|A~LsDi{Cie&_!l!uoPC|KI!{`G4~q6Y#zK-}2u~`oX#yeSpaSGj?GwMZb0N-SD4% zYah41cO2w`9G}2EW8?E}{Iuti2O9nzWA4*Z2J*e(^Ks3i^F`Fpi?q>c&K>bwPH;U6 zWlY`TT1IUzlk`uKP2{u1r1TlGK0xl5+l&Xv0o1?q`L;!TUW@g4lncW4=X%%#?Z~s< z4_?qV;JS0^PCen+SPMwq@4iFM6|x@aTi^Uf*?#HLvLSx_zI*Ooo_zQR<=LkmEiXLx zWcdaD|4T3ZwEXnP&z2uO_e6R6@rTOg%>CPF^!n7Iu3i549&rEezVeSNX&3jEf1cl0 z{&rShdHKM;^5OyTz`lLu$9v%$?9pGI+pWJmyDM#%{_+f55InFvIY1uJHh3KUF9+x| zJXJa1?1_D4(5ijG0c*kmYr_Hh2cwA%j9rU7fw@9B!2P218MmTNKwW9QyuO+_xyYkL zpXB&BPH9)sSN4}<8JJFe@7QMT4&%)ICIf-{c#Y18XA=L)O~ZW16ZcZ@dqno+gur~t zW4=zg4Y|ZFh&*(KwmyS_@R|21#D1#4rB1OL;h|26(^{@?jO;=lR-;@>=btN$1O zD+eh5Z~edazxBV?|G74`_5bGo{k;#}e}At3LHytSKb-$-{Lgs~)|Ie5#`Vovo z4v;>|d>?%#{#(CR+p6(u_J8a5#IDyG-aB@Gb;p@cLcRat2fejyL!R#qZyHff+iqm}pR4=J|Gcxm{Qb)Q@{h~< z%ReusUC>|t_uT$cum%2nVqbX)4tVi^et4k2{Akbq@&a)JdEmK!tM_5|lo zU8$^QO&RNdssG9Ux&L3R|AYM>`G0UEo_h0tQU8Pgul;}7 z0NMYSiT|4ai}-(?|L6SQ`}w^s{(lf_%y;JhnEwO+&i}XW!TFC7vw;uQk%5cm2ZUW! zF<$X+on>$Wx$Wcta9#C$@VesyCkL-Hj>+kcE92A|XLKfGEeEuiyRn`Y14vn^*ykDL zDVwsD{MyGgA5tccUA^oxX;}HiDd7J6{_@}F^q0Sa^}n9S zYuewr_79H#v~ll$SHJ_@|J^bD<>iC=%P-#s5A5Ghi~ugc9tbYjJ-Of+Yy$m*r)W>W z1+9tyr*_09ASUqiu6<>zHTue6cwi_TFbobDKDZy;4~-n*q)phDm^i>R=MUlETTiKt z=o%j}UW}hH)X1TFw69{^a?Ct$9MHx*ucZtG|I?T124jF8o9uLa0Y10c3i5#O30^?n z!VXYIk;Sx2k;F!hHa&D@=zsiw^}o4v*VQq< z)*Jsnl=$C(&Hu6f5B-1aVTXnO|1kRB_5Z{E@2UTb^?z7TBI^Iy|Ht}&^}qA~w14!I zoBlUeVvMx)Sy$hK8OFM`xX+mTI(#y9f8*vlE)mOROtqio^){|K#`#*AXnwbH(PHsU zHk6~d&ih*~E-;FGBnHKy_)JX71$kfW!VSFNIfr6XE@=K>#)kMm_yF1wF)y9>w(nR- z-JYKnd=sDPckr6;ifeqX{(o=~zb$@)$7qwvCvN^o`7SY7=K}uVk>|>9uU(`3`F;K6 zFYoCuzek_{3OxVfblOQ^_qhJ@>$h|LSQ_VlIKIF9k@jcq{RKYw%c*d{8ML$D0op&# zh6BL=|DHQI+CNqdF26l;aC!OQ!Q~~m;1_T0FF(a5Xk75TJg^&n!JBDtfjnS)vL2rz zj`-{@G;D$WHg>N8_8u}fFv^s%*Z&n(RMBeGoXA3ZKS$0@#dm!I6C_f7=4{ zjH7iF-M-ARYq-yGPCjt_0p0aS9he&P5a#EG6v9eequ5( zAK2u5$WY+F9mOuTz+!9yW5LG$Vtq>aN_`P_jce89XU4OBR@eh_h&(Vg@h#^4yoz`6 zzr_3XyBhcS{48|jMJvuMzxvH<<%Qc%DS!Q7fBCPg2bbSt$G--Ce|>U)c?G<`d?f8K z_~6j~@|z?2%WseBFaL>7mk0iM0`GwX{>-z%0jKqszrh24lLyWoT>f#+VC(@nfL1OT zT>g5-;PM-I;8%yj1&3%83@$&{CV&f!6TD!Y04^|2AQwEnGdy5}2jZNV;4k;;EAN~^ zJb*aB#;d#Mz)*68&L5&)koCs5Bqy*9wE=Q~b;5G0HkADs@mt0*^n4ww%&Wlb^jUIx z+6jSszH%c6g#6?&&Ur57Ep?9Psi&GR&}>ugSGiSR<+>sn`!)V& z{L+|m*8i~nH@L|9-)Uk0i~lzNKkEOmtIhuz|I`0B?q>bpK+XTT?2I#Rjrt#chxoq< z```IL>VJQ)_;>zatp88`-}OH?+F+en=XAXF-uOMS{|EgLzCRq0u`z2Us;&=w*q_$- zrER6H6}CSdFV5xIw96U~)Ny3&V*Fz~d&bgn=bl`zE=cTyZC=X(;&%Z$xi=n{*y0&= zdSFsqiqDF9aoMhe_a)ToE#$TO+Rqc;#-FwSqL#tfMzrJreE|K2C9|gH=kgxkm*3@e z@8@UbZ{VKyX~6-0cRdfD;=kyl?7Q=_^0S*}ls|uPgYxIgN0t9Pb9nj92}8=Sj~ZNF zIUEiE_tC&>Z~%ND2fPLc{0@Hj{qg<16vAG|=U;CW&N&sHvId>|)0tDUfWU->5SfpO#r z*B{OrqpT?+2e_`#=EMNTqbDa~Kf3qGG~+Ab52Wr;PJ#!JiR5$e9`=>v)Ofs?>vR0o z87&7B96;X%_Crpz11b-Mym+t48nTJZq#Ra1K-ooZyYiZRpiE~CJM(|Q{|w?@vHu@- zaNGaG{QqQP|HjJ1{|hg?5HYldf8&4F|6Ne?|L(svQ24*n{6Bk;M*WZRzw4R*hyFKC zVZ7o&V*l3vABg^6g8p~??@jRkWB(8FkKGgde}n(1jgQ!$eMhXsK8!l5^r<38%eAKa zySS&%!w$7)5u4-JuU&q9+^F*65hKb=hYl$(9RfbVzD=Di7rcrc@EdsGwWF~G z@C)RDKVS>|30vU5P90qS`?S>c!2#g^Z`c8U2mAk!1I~v7E`$%@fj^!M55P0Og$sUl zINyU^@JsxIpTPw`feT)M3nF&_7ld5^_9KVD@pJn^rtPdjox@0SN6 zM(j0k-()Xzkh%!nG`Hy|;Gi^|3&J5a!>C6abLy1`rr9~`v2nJ{l7B*PyA2+zv4ga z|827VH?R+Pwxc#vVjm8bQ=^a5?n=F%JnT61V!z|JRUU9Gn=KeT&sZ)1mrXW;1AMJc z_ZYe&@e_I$%z1rLU{9PUJ{t}j_PxI(IG|y$dt62gz+6@624o;|(E2diHN19yUc<7- zur46E;DF$g{M_IOepf!vcXRIhob%U?o^MBvV(wJ=Yg)Nv*9qmm!^W0B zAHRBe<%r?smxm53FKe?mTR?vR4tNzi;5Tx>af8e6j>mU6ad7zqnEq4cfWKe|{Ev2k z9AK*)@DDgZ{FjU11g`zzBsk#h*P035KEYm2!Lp=${+Ux2vabaKgQ2M}W+$I`I_z-Ztb+%LedOAg2} zj`2h;LI#2x65IN4Ef=7^2p(u0!0YeZ>=lUP!oNSMx|D*m7`(OPp{$u_h`P-bESN(tb!#UB-J_?^7OxSPYBshR$v;FPg z=wom%_UFZTI98Rb8EZKpxSM-{e_p3QpbkI=LO*KvBO|^BHyK+?3@tJS$91tT&eJv* zYgHH5>%jro`%A#L&n}%q<6Nw^_o@Gv^2{>Y9O71D-WtAW{4bBLJ7q4>XMzWO51-NA z>$x1_G5iI86V3CymcL7$=-LkTv*I^%ooBb>J^CfP&6`rba==FAXGgCE)>khtA3m(S zbl8xL2jCn08V>k193W<2J9cpJ!0%5;4)_B${(oTy{231T%bD;1zCh!Ezk~mOfd7AL z2fzXHfcJh6hsY(b(S8FT=!3k>_q+%f{H$`pkK_Vk1Ibi-@2Ab! z>`3`Q`#+yiu8b9IJ5~8Y4#_=c4hlJ}G8*z3*w>D&4SCl8i}iod|ISI*|Fx#f`X6m$ zfnO{{{uDu*ZqHbVND1tlx}zvhX7ZT!9bg&IgVv&cwg?X|{OkWAF$j#lFX7bEYTu z(dFB5-uvt_-oG8#RzJlYMK~;KjF1_R)}`$@cShjf^*4OpdHYT8$2t1j^*OrN^ZZ|5 zZ|Cpf*?6x@&E0f7iif z^HH=lnM1tBP&i;D^M_ndB=z?$mri(Z$S=#?`a-`-{pRq zIw841nMwT-vcz-hj>LYGv8G>ACe0(Hp5k>qH%DolSA8ZQHT@QA$>Fbvf9E<*01p}e zWB<=dlZ)&B?+X6S|F`*n-zENUe$Dki+WPT6SD*E5~|Ka~v{V)C( zi+|_;tzZ5BhJV)onThWf^>K_<%a3O~7u-j`b$x(NzDB&j11)zWCy4FH@i11w-QeCa zGhWs>K6F0gtZf`Eu#os)T5;|%ntBzyrfy9vY1_Bg>f&W{Xcdp!v9^vjytvO}_ntak zJa5nQ#^uycF|U;W;Tk>B_z(J|%X$CyKI>=I&ra@e4Ub%#Cyw>p&uq^nZzR?|kL&e0 ze`n`){cL~da<0oMv!=}`M=YIEK6l{w^5O|&!04LgrK3ldSB@T5etq=N^6J}%l;0dT zr2O{yA>}noEuN|hp=9p-w>DOoD z94rT?*JHmBFK3=Y{|J_%0A?+dK@+42L&<#Aq*;<@vD<)C;C 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

      qc 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 a&g%xU+q=GQpuN+Yf`o(b{_c3|%l|)|GwLA# literal 46741 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 UplyM{*)PIubC_+-pa??$55Oknd;kCd diff --git a/chrome/app/version_assembly/BUILD.gn b/chrome/app/version_assembly/BUILD.gn index f9336e7c6803e..608fb1a197e4a 100644 --- a/chrome/app/version_assembly/BUILD.gn +++ b/chrome/app/version_assembly/BUILD.gn @@ -24,8 +24,7 @@ windows_manifest("chrome_exe_manifest") { sources = [ as_invoker_manifest, common_controls_manifest, - default_compatibility_manifest, - version_assembly_output_file, + default_compatibility_manifest ] type = "exe" diff --git a/chrome/app/version_assembly/version_assembly_manifest.template b/chrome/app/version_assembly/version_assembly_manifest.template index 4ed10ad82c995..1b2f3685b1a0d 100644 --- a/chrome/app/version_assembly/version_assembly_manifest.template +++ b/chrome/app/version_assembly/version_assembly_manifest.template @@ -4,6 +4,6 @@ name='@MAJOR@.@MINOR@.@BUILD@.@PATCH@' version='@MAJOR@.@MINOR@.@BUILD@.@PATCH@' type='win32'/> - + - \ No newline at end of file + diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index c727f67c8f766..3d8717a94ba01 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn @@ -1209,14 +1209,14 @@ split_static_library("browser") { "tracing/crash_service_uploader.h", "tracing/navigation_tracing.cc", "tracing/navigation_tracing.h", - "translate/chrome_translate_client.cc", - "translate/chrome_translate_client.h", + #"translate/chrome_translate_client.cc", + #"translate/chrome_translate_client.h", "translate/language_model_factory.cc", "translate/language_model_factory.h", - "translate/translate_accept_languages_factory.cc", - "translate/translate_accept_languages_factory.h", - "translate/translate_service.cc", - "translate/translate_service.h", + #"translate/translate_accept_languages_factory.cc", + #"translate/translate_accept_languages_factory.h", + #"translate/translate_service.cc", + #"translate/translate_service.h", "undo/bookmark_undo_service_factory.cc", "undo/bookmark_undo_service_factory.h", "update_client/chrome_update_query_params_delegate.cc", @@ -1278,6 +1278,7 @@ split_static_library("browser") { deps = [ ":resource_prefetch_predictor_proto", "//cc", + "//content/nw:nw_browser", "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", @@ -1304,7 +1305,7 @@ split_static_library("browser") { "//components/certificate_reporting", "//components/certificate_transparency", "//components/cloud_devices/common", - "//components/component_updater", + #"//components/component_updater", "//components/content_settings/core/browser", "//components/content_settings/core/common", "//components/contextual_search:browser", @@ -1369,11 +1370,11 @@ split_static_library("browser") { "//components/profile_metrics", "//components/proxy_config", "//components/query_parser", - "//components/rappor", - "//components/rappor:rappor_recorder", + #"//components/rappor", + #"//components/rappor:rappor_recorder", "//components/renderer_context_menu", "//components/resources", - "//components/safe_browsing_db", + #"//components/safe_browsing_db", "//components/safe_json", "//components/search", "//components/search_engines", @@ -4050,9 +4051,12 @@ proto_library("resource_prefetch_predictor_proto") { } grit("resources") { - source = "browser_resources.grd" use_qualified_include = true - + if (nwjs_sdk) { + source = "browser_resources.grd" + } else { + source = "nwjs_resources.grd" + } defines = chrome_grit_defines if (enable_hangout_services_extension) { defines += [ "enable_hangout_services_extension" ] diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm index 4f248343f7f79..56357ce6e044e 100644 --- a/chrome/browser/app_controller_mac.mm +++ b/chrome/browser/app_controller_mac.mm @@ -103,6 +103,8 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util_mac.h" +#include "content/nw/src/nw_content.h" + using apps::AppShimHandler; using apps::ExtensionAppShimHandler; using base::UserMetricsAction; @@ -144,7 +146,7 @@ } Browser* browser = chrome::GetLastActiveBrowser(); - CHECK(browser); + //CHECK(browser); return browser; } @@ -348,7 +350,7 @@ - (void)awakeFromNib { [self initMenuState]; // Initialize the Profile menu. - [self initProfileMenu]; + //[self initProfileMenu]; } - (void)unregisterEventHandlers { @@ -458,6 +460,9 @@ - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)app { return NSTerminateNow; } + if (!AppWindowRegistryUtil::CloseAllAppWindows(true)) + return NSTerminateCancel; + // Check if the preference is turned on. const PrefService* prefs = g_browser_process->local_state(); if (!prefs->GetBoolean(prefs::kConfirmToQuitEnabled)) { @@ -639,7 +644,11 @@ - (void)setUpdateCheckInterval { - (void)openStartupUrls { DCHECK(startupComplete_); - [self openUrlsReplacingNTP:startupUrls_]; + if (startupUrls_.size()) { + base::CommandLine::ForCurrentProcess()->AppendArg(startupUrls_[0].spec()); + base::CommandLine::ForCurrentProcess()->FixOrigArgv4Finder(startupUrls_[0].spec()); + } + //[self openUrlsReplacingNTP:startupUrls_]; startupUrls_.clear(); } @@ -702,7 +711,7 @@ - (void)applicationDidFinishLaunching:(NSNotification*)notify { // If enabled, keep Chrome alive when apps are open instead of quitting all // apps. - quitWithAppsController_ = new QuitWithAppsController(); + // quitWithAppsController_ = new QuitWithAppsController(); // Dynamically update shortcuts for "Close Window" and "Close Tab" menu items. [[closeTabMenuItem_ menu] setDelegate:self]; @@ -1082,6 +1091,8 @@ - (void)commandDispatchUsingKeyModifiers:(id)sender { // browser windows. - (BOOL)applicationShouldHandleReopen:(NSApplication*)theApplication hasVisibleWindows:(BOOL)hasVisibleWindows { + return nw::ApplicationShouldHandleReopenHook(hasVisibleWindows) ? YES : NO; +#if 0 // If the browser is currently trying to quit, don't do anything and return NO // to prevent AppKit from doing anything. // TODO(rohitrao): Remove this code when http://crbug.com/40861 is resolved. @@ -1171,6 +1182,7 @@ - (BOOL)applicationShouldHandleReopen:(NSApplication*)theApplication // We've handled the reopen event, so return NO to tell AppKit not // to do anything. return NO; +#endif } - (void)initMenuState { @@ -1279,6 +1291,9 @@ - (void)openUrls:(const std::vector&)urls { return; } + nw::OSXOpenURLsHook(urls); + +#if 0 Browser* browser = chrome::GetLastActiveBrowser(); // if no browser window exists then create one with no tabs to be filled in if (!browser) { @@ -1291,6 +1306,7 @@ - (void)openUrls:(const std::vector&)urls { chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); launch.OpenURLsInBrowser(browser, false, urls); +#endif } - (void)getUrl:(NSAppleEventDescriptor*)event @@ -1374,6 +1390,7 @@ - (NSMenu*)applicationDockMenu:(NSApplication*)sender { if (profilesAdded) [dockMenu addItem:[NSMenuItem separatorItem]]; +#if 0 NSString* titleStr = l10n_util::GetNSStringWithFixup(IDS_NEW_WINDOW_MAC); base::scoped_nsobject item( [[NSMenuItem alloc] initWithTitle:titleStr @@ -1398,6 +1415,7 @@ - (NSMenu*)applicationDockMenu:(NSApplication*)sender { [item setEnabled:[self validateUserInterfaceItem:item]]; [dockMenu addItem:item]; } +#endif // TODO(rickcam): Mock out BackgroundApplicationListModel, then add unit // tests which use the mock in place of the profile-initialized model. diff --git a/chrome/browser/apps/app_shim/app_shim_handler_mac.cc b/chrome/browser/apps/app_shim/app_shim_handler_mac.cc index e8d0a9128a1a3..755623f4e1230 100644 --- a/chrome/browser/apps/app_shim/app_shim_handler_mac.cc +++ b/chrome/browser/apps/app_shim/app_shim_handler_mac.cc @@ -21,13 +21,15 @@ #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_service.h" +#include "content/nw/src/nw_content.h" + namespace apps { namespace { void TerminateIfNoAppWindows() { bool app_windows_left = - AppWindowRegistryUtil::IsAppWindowVisibleInAnyProfile(0); + AppWindowRegistryUtil::IsAppWindowVisibleInAnyProfile(0, false); if (!app_windows_left && !AppListService::Get()->IsAppListVisible()) { chrome::AttemptExit(); } @@ -63,7 +65,8 @@ class AppShimHandlerRegistry : public content::NotificationObserver { } void MaybeTerminate() { - if (!browser_session_running_) { + if (!nw::IsReloadingApp()) { + //NW: #4164. browser_session_running_ never set to false // Post this to give AppWindows a chance to remove themselves from the // registry. base::ThreadTaskRunnerHandle::Get()->PostTask( diff --git a/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc b/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc index 940270ca6ef4c..dd18c4ac13bfd 100644 --- a/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc +++ b/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc @@ -322,7 +322,7 @@ const Extension* ExtensionAppShimHandler::MaybeGetAppForBrowser( } // static -void ExtensionAppShimHandler::QuitAppForWindow(AppWindow* app_window) { +void ExtensionAppShimHandler::QuitAppForWindow(AppWindow* app_window, bool user_force) { ExtensionAppShimHandler* handler = GetInstance(); Host* host = handler->FindHost( Profile::FromBrowserContext(app_window->browser_context()), @@ -333,7 +333,7 @@ void ExtensionAppShimHandler::QuitAppForWindow(AppWindow* app_window) { // App shims might be disabled or the shim is still starting up. AppWindowRegistry::Get( Profile::FromBrowserContext(app_window->browser_context())) - ->CloseAllAppWindowsForApp(app_window->extension_id()); + ->CloseAllAppWindowsForApp(app_window->extension_id(), user_force); } } @@ -638,7 +638,8 @@ void ExtensionAppShimHandler::OnShimQuit(Host* host) { const AppWindowList windows = delegate_->GetWindows(profile, app_id); for (AppWindowRegistry::const_iterator it = windows.begin(); it != windows.end(); ++it) { - (*it)->GetBaseWindow()->Close(); + if ((*it)->NWCanClose()) + (*it)->GetBaseWindow()->Close(); } } // Once the last window closes, flow will end up in OnAppDeactivated via diff --git a/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.h b/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.h index 2f4362893e381..eb42371b8dc45 100644 --- a/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.h +++ b/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.h @@ -93,7 +93,7 @@ class ExtensionAppShimHandler : public AppShimHandler, static const extensions::Extension* MaybeGetAppForBrowser(Browser* browser); - static void QuitAppForWindow(extensions::AppWindow* app_window); + static void QuitAppForWindow(extensions::AppWindow* app_window, bool user_force = false); static void QuitHostedAppForWindow(Profile* profile, const std::string& app_id); diff --git a/chrome/browser/apps/app_window_registry_util.cc b/chrome/browser/apps/app_window_registry_util.cc index d8702debf325e..571bee28832f3 100644 --- a/chrome/browser/apps/app_window_registry_util.cc +++ b/chrome/browser/apps/app_window_registry_util.cc @@ -43,7 +43,7 @@ AppWindow* AppWindowRegistryUtil::GetAppWindowForNativeWindowAnyProfile( // static bool AppWindowRegistryUtil::IsAppWindowVisibleInAnyProfile( - int window_type_mask) { + int window_type_mask, bool check_visible) { std::vector profiles = g_browser_process->profile_manager()->GetLoadedProfiles(); for (std::vector::const_iterator i = profiles.begin(); @@ -59,7 +59,7 @@ bool AppWindowRegistryUtil::IsAppWindowVisibleInAnyProfile( continue; for (const AppWindow* window : app_windows) { - if (!window->is_hidden() && + if ((!window->is_hidden() || !check_visible )&& (window_type_mask == 0 || (window->window_type() & window_type_mask))) return true; @@ -70,7 +70,7 @@ bool AppWindowRegistryUtil::IsAppWindowVisibleInAnyProfile( } // static -void AppWindowRegistryUtil::CloseAllAppWindows() { +bool AppWindowRegistryUtil::CloseAllAppWindows(bool user_force) { std::vector profiles = g_browser_process->profile_manager()->GetLoadedProfiles(); for (std::vector::const_iterator i = profiles.begin(); @@ -86,8 +86,13 @@ void AppWindowRegistryUtil::CloseAllAppWindows() { AppWindowList window_list_copy(registry->app_windows()); for (auto* window : window_list_copy) { // Ensure window is still valid. - if (base::ContainsValue(registry->app_windows(), window)) - window->GetBaseWindow()->Close(); + if (base::ContainsValue(registry->app_windows(), window)) { + if (window->NWCanClose(user_force)) + window->GetBaseWindow()->Close(); + else + return false; + } } } + return true; } diff --git a/chrome/browser/apps/app_window_registry_util.h b/chrome/browser/apps/app_window_registry_util.h index 8fd6b358cc8ca..5dcf02ecd612d 100644 --- a/chrome/browser/apps/app_window_registry_util.h +++ b/chrome/browser/apps/app_window_registry_util.h @@ -21,10 +21,10 @@ class AppWindowRegistryUtil { // Returns true if the number of visible app windows registered across all // browser contexts is non-zero. |window_type_mask| is a bitwise OR filter of // AppWindow::WindowType, or 0 for any window type. - static bool IsAppWindowVisibleInAnyProfile(int window_type_mask); + static bool IsAppWindowVisibleInAnyProfile(int window_type_mask, bool check_visible = true); // Close all app windows in all profiles. - static void CloseAllAppWindows(); + static bool CloseAllAppWindows(bool user_force = false); }; #endif // CHROME_BROWSER_APPS_APP_WINDOW_REGISTRY_UTIL_H_ diff --git a/chrome/browser/background/background_application_list_model.cc b/chrome/browser/background/background_application_list_model.cc index dfe9e251e5ed9..4bada324c02c5 100644 --- a/chrome/browser/background/background_application_list_model.cc +++ b/chrome/browser/background/background_application_list_model.cc @@ -260,8 +260,10 @@ bool BackgroundApplicationListModel::IsBackgroundApp( // manifest. // Not a background app if we don't have the background permission. + // NWJS: nwjs_default_app is listed as background app and prevents + // quit so we need to disable it here if (!extension.permissions_data()->HasAPIPermission( - APIPermission::kBackground)) { + APIPermission::kBackground, true)) { return false; } diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc index 72af1f4ffebbe..1e400b5322f74 100644 --- a/chrome/browser/browser_about_handler.cc +++ b/chrome/browser/browser_about_handler.cc @@ -85,7 +85,7 @@ bool WillHandleBrowserAboutURL(GURL* url, // On Android, redirect directly to chrome://history-frame since // uber page is unsupported. host = chrome::kChromeUIHistoryFrameHost; -#else +#elif 0 // Material design history is handled on the top-level chrome://history // host. if (MdHistoryUI::IsEnabled(Profile::FromBrowserContext(browser_context))) { diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h index e7b669095bd79..6b6bb5af1d461 100644 --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h @@ -248,6 +248,7 @@ class BrowserProcess { virtual net_log::ChromeNetLog* net_log() = 0; +#if 0 virtual component_updater::ComponentUpdateService* component_updater() = 0; virtual CRLSetFetcher* crl_set_fetcher() = 0; @@ -257,7 +258,7 @@ class BrowserProcess { virtual component_updater::SupervisedUserWhitelistInstaller* supervised_user_whitelist_installer() = 0; - +#endif virtual MediaFileSystemRegistry* media_file_system_registry() = 0; virtual bool created_local_state() const = 0; diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index dabbb39318830..77c3287823ca0 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -290,8 +290,10 @@ void BrowserProcessImpl::StartTearDown() { // that URLFetcher operation before going away.) metrics_services_manager_.reset(); intranet_redirect_detector_.reset(); +#if 0 if (safe_browsing_service_.get()) safe_browsing_service()->ShutDown(); +#endif network_time_tracker_.reset(); #if BUILDFLAG(ENABLE_PLUGIN_INSTALLATION) plugins_resource_service_.reset(); @@ -905,6 +907,7 @@ net_log::ChromeNetLog* BrowserProcessImpl::net_log() { return net_log_.get(); } +#if 0 component_updater::ComponentUpdateService* BrowserProcessImpl::component_updater() { if (component_updater_) @@ -921,13 +924,16 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } +#endif +#if 0 CRLSetFetcher* BrowserProcessImpl::crl_set_fetcher() { if (!crl_set_fetcher_) crl_set_fetcher_ = new CRLSetFetcher(); return crl_set_fetcher_.get(); } + component_updater::PnaclComponentInstaller* BrowserProcessImpl::pnacl_component_installer() { #if !defined(DISABLE_NACL) @@ -952,6 +958,7 @@ BrowserProcessImpl::supervised_user_whitelist_installer() { } return supervised_user_whitelist_installer_.get(); } +#endif void BrowserProcessImpl::ResourceDispatcherHostCreated() { resource_dispatcher_host_delegate_.reset( @@ -1184,9 +1191,11 @@ void BrowserProcessImpl::CreateSafeBrowsingService() { // Set this flag to true so that we don't retry indefinitely to // create the service class if there was an error. created_safe_browsing_service_ = true; +#if 0 safe_browsing_service_ = safe_browsing::SafeBrowsingService::CreateSafeBrowsingService(); safe_browsing_service_->Initialize(); +#endif } void BrowserProcessImpl::CreateSubresourceFilterRulesetService() { @@ -1290,11 +1299,13 @@ void BrowserProcessImpl::ApplyMetricsReportingPolicy() { } void BrowserProcessImpl::CacheDefaultWebClientState() { +#if 0 #if defined(OS_CHROMEOS) cached_default_web_client_state_ = shell_integration::IS_DEFAULT; #elif !defined(OS_ANDROID) cached_default_web_client_state_ = shell_integration::GetDefaultBrowser(); #endif +#endif } void BrowserProcessImpl::Pin() { diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h index eb2a9cae4a8cc..a8958896b1160 100644 --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h @@ -139,12 +139,14 @@ class BrowserProcessImpl : public BrowserProcess, #endif net_log::ChromeNetLog* net_log() override; +#if 0 component_updater::ComponentUpdateService* component_updater() override; CRLSetFetcher* crl_set_fetcher() override; component_updater::PnaclComponentInstaller* pnacl_component_installer() override; component_updater::SupervisedUserWhitelistInstaller* supervised_user_whitelist_installer() override; +#endif MediaFileSystemRegistry* media_file_system_registry() override; bool created_local_state() const override; #if defined(ENABLE_WEBRTC) diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index bd05bf6fd69a9..f2f7c8d087f09 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -87,6 +87,7 @@ + diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc index 01b93892049db..7f63df5cf611b 100644 --- a/chrome/browser/browsing_data/browsing_data_remover.cc +++ b/chrome/browser/browsing_data/browsing_data_remover.cc @@ -139,6 +139,7 @@ using content::DOMStorageContext; namespace { +#if !defined(DISABLE_NACL) void UIThreadTrampolineHelper(const base::Closure& callback) { BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback); } @@ -151,6 +152,7 @@ base::Closure UIThreadTrampoline(const base::Closure& callback) { // task is actually posted. return base::Bind(&UIThreadTrampolineHelper, callback); } +#endif template void IgnoreArgumentHelper(const base::Closure& callback, T unused_argument) { @@ -229,6 +231,7 @@ void ClearPnaclCacheOnIOThread(base::Time begin, } #endif +#if 0 void ClearCookiesOnIOThread(base::Time delete_begin, base::Time delete_end, net::URLRequestContextGetter* rq_context, @@ -252,6 +255,7 @@ void ClearCookiesWithPredicateOnIOThread( cookie_store->DeleteAllCreatedBetweenWithPredicateAsync( delete_begin, delete_end, predicate, IgnoreArgument(callback)); } +#endif void OnClearedChannelIDsOnIOThread(net::URLRequestContextGetter* rq_context, const base::Closure& callback) { @@ -774,6 +778,7 @@ void BrowsingDataRemover::RemoveImpl( // doesn't make sense to apply the time period of deleting in the last X // hours/days to the safebrowsing cookies since they aren't the result of // any user action. +#if 0 if (delete_begin_ == base::Time()) { safe_browsing::SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); @@ -801,7 +806,7 @@ void BrowsingDataRemover::RemoveImpl( } } } - +#endif MediaDeviceIDSalt::Reset(profile_->GetPrefs()); } diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index ef8d8ccada69f..995984f11b29f 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc @@ -13,6 +13,11 @@ #include #include + +#include "content/nw/src/browser/nw_chrome_browser_hooks.h" +#include "content/nw/src/browser/nw_content_browser_hooks.h" + + #include "base/at_exit.h" #include "base/base_switches.h" #include "base/bind.h" @@ -491,6 +496,7 @@ OSStatus KeychainCallback(SecKeychainEvent keychain_event, } #endif // defined(OS_MACOSX) +#if 0 void RegisterComponentsForUpdate() { component_updater::ComponentUpdateService* cus = g_browser_process->component_updater(); @@ -557,6 +563,7 @@ void RegisterComponentsForUpdate() { #endif // defined(GOOGLE_CHROME_BUILD) #endif // defined(OS_WIN) } +#endif // disable component updater #if !defined(OS_ANDROID) bool ProcessSingletonNotificationCallback( @@ -566,6 +573,9 @@ bool ProcessSingletonNotificationCallback( if (!g_browser_process || g_browser_process->IsShuttingDown()) return false; + if (!nw::ProcessSingletonNotificationCallbackHook(command_line, current_directory)) + return false; + if (command_line.HasSwitch(switches::kOriginalProcessStartTime)) { std::string start_time_string = command_line.GetSwitchValueASCII(switches::kOriginalProcessStartTime); @@ -841,7 +851,7 @@ void ChromeBrowserMainParts::StartMetricsRecording() { group_name); } - g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions(true); + g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions(false); } void ChromeBrowserMainParts::RecordBrowserStartupTime() { @@ -957,9 +967,13 @@ void ChromeBrowserMainParts::PostMainMessageLoopStart() { int ChromeBrowserMainParts::PreCreateThreads() { TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreads"); + result_code_ = PreCreateThreadsImpl(); if (result_code_ == content::RESULT_CODE_NORMAL_EXIT) { + result_code_ = nw::MainPartsPreCreateThreadsHook(); + if (result_code_ != content::RESULT_CODE_NORMAL_EXIT) + return result_code_; #if !defined(OS_ANDROID) // These members must be initialized before exiting this function normally. DCHECK(master_prefs_.get()); @@ -1276,6 +1290,8 @@ void ChromeBrowserMainParts::PreMainMessageLoopRun() { result_code_ = PreMainMessageLoopRunImpl(); + nw::MainPartsPreMainMessageLoopRunHook(); + for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) chrome_extra_parts_[i]->PreMainMessageLoopRun(); } @@ -1662,7 +1678,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { #endif // BUILDFLAG(ENABLE_BACKGROUND) // Post-profile init --------------------------------------------------------- - TranslateService::Initialize(); + //TranslateService::Initialize(); // Needs to be done before PostProfileInit, since login manager on CrOS is // called inside PostProfileInit. @@ -1854,9 +1870,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // http://crbug.com/105065. browser_process_->notification_ui_manager(); +#if 0 if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) RegisterComponentsForUpdate(); - +#endif #if defined(OS_ANDROID) variations::VariationsService* variations_service = browser_process_->variations_service(); @@ -2042,7 +2059,7 @@ void ChromeBrowserMainParts::PostMainMessageLoopRun() { // Some tests don't set parameters.ui_task, so they started translate // language fetch that was never completed so we need to cleanup here // otherwise it will be done by the destructor in a wrong thread. - TranslateService::Shutdown(parameters().ui_task == NULL); + //TranslateService::Shutdown(parameters().ui_task == NULL); if (notify_result_ == ProcessSingleton::PROCESS_NONE) process_singleton_->Cleanup(); @@ -2109,6 +2126,7 @@ void ChromeBrowserMainParts::PostDestroyThreads() { process_singleton_.reset(); device_event_log::Shutdown(); + nw::MainPartsPostDestroyThreadsHook(); // We need to do this check as late as possible, but due to modularity, this // may be the last point in Chrome. This would be more effective if done at // a higher level on the stack, so that it is impossible for an early return diff --git a/chrome/browser/chrome_browser_main_mac.mm b/chrome/browser/chrome_browser_main_mac.mm index 0e9c5ae6b0c92..a7a625a23ca42 100644 --- a/chrome/browser/chrome_browser_main_mac.mm +++ b/chrome/browser/chrome_browser_main_mac.mm @@ -124,6 +124,7 @@ void EnsureMetadataNeverIndexFile(const base::FilePath& user_data_dir) { // The framework is only distributed with branded Google Chrome builds. [[KeystoneGlue defaultKeystoneGlue] registerWithKeystone]; +#if 0 // Disk image installation is sort of a first-run task, so it shares the // no first run switches. // @@ -143,7 +144,9 @@ void EnsureMetadataNeverIndexFile(const base::FilePath& user_data_dir) { exit(0); } } +#endif +#if 1 // Now load the nib (from the right bundle). base::scoped_nsobject nib( [[NSNib alloc] initWithNibNamed:@"MainMenu" @@ -154,6 +157,11 @@ void EnsureMetadataNeverIndexFile(const base::FilePath& user_data_dir) { [nib instantiateWithOwner:NSApp topLevelObjects:&top_level_objects]; for (NSObject* object : top_level_objects) [object retain]; +#else + AppController* delegate = [AppController alloc]; + [NSApp setDelegate:delegate]; +#endif + // Make sure the app controller has been created. DCHECK([NSApp delegate]); } diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index d603252e6d2b0..0b351a08c2cb1 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -9,6 +9,11 @@ #include #include +#include "content/nw/src/common/shell_switches.h" +#include "content/nw/src/nw_content.h" +#include "content/nw/src/nw_base.h" +#include "chrome/browser/profiles/profile_manager.h" + #include "base/base_switches.h" #include "base/bind.h" #include "base/bind_helpers.h" @@ -300,6 +305,8 @@ #include "components/guest_view/browser/guest_view_manager.h" #include "extensions/browser/extension_navigation_throttle.h" #include "extensions/browser/extension_registry.h" +#include "chrome/browser/extensions/extension_service.h" +#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_util.h" #include "extensions/browser/guest_view/web_view/web_view_guest.h" #include "extensions/browser/guest_view/web_view/web_view_permission_helper.h" @@ -562,7 +569,7 @@ breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( PathService::Get(chrome::DIR_CRASH_DUMPS, &dumps_path); { ANNOTATE_SCOPED_MEMORY_LEAK; - bool upload = (getenv(env_vars::kHeadless) == NULL); + bool upload = false; breakpad::CrashHandlerHostLinux* crash_handler = new breakpad::CrashHandlerHostLinux(process_type, dumps_path, upload); crash_handler->StartUploaderThread(); @@ -670,10 +677,12 @@ class SafeBrowsingSSLCertReporter : public SSLCertReporter { // SSLCertReporter implementation void ReportInvalidCertificateChain( const std::string& serialized_report) override { +#if 0 if (safe_browsing_ui_manager_) { safe_browsing_ui_manager_->ReportInvalidCertificateChain( serialized_report, base::Bind(&base::DoNothing)); } +#endif } private: @@ -1321,6 +1330,18 @@ bool ChromeContentBrowserClient::MayReuseHost( bool ChromeContentBrowserClient::ShouldTryToUseExistingProcessHost( content::BrowserContext* browser_context, const GURL& url) { + // PDF extension should use new process, or there is a loop of IPC + // message BrowserPluginHostMsg_SetFocus and InputMsg_SetFocus + // #4335 + + if (url.SchemeIs(extensions::kExtensionScheme) && url.host() == extension_misc::kPdfExtensionId) + return false; + + if (nw::PinningRenderer()) + return true; + else + return false; +#if 0 // It has to be a valid URL for us to check for an extension. if (!url.is_valid()) return false; @@ -1333,6 +1354,7 @@ bool ChromeContentBrowserClient::ShouldTryToUseExistingProcessHost( #else return false; #endif +#endif } void ChromeContentBrowserClient::SiteInstanceGotProcess( @@ -1576,6 +1598,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( #endif if (process_type == switches::kRendererProcess) { + command_line->AppendSwitch(switches::kNWJS); + command_line->AppendSwitchPath(switches::kNWAppPath, nw::package()->path()); + content::RenderProcessHost* process = content::RenderProcessHost::FromID(child_process_id); Profile* profile = @@ -1702,6 +1727,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( autofill::switches::kDisableAccessorySuggestionView, autofill::switches::kEnableAccessorySuggestionView, #endif + switches::kEnableSpellChecking, autofill::switches::kDisablePasswordGeneration, autofill::switches::kEnablePasswordGeneration, autofill::switches::kEnableSingleClickAutofill, @@ -1943,6 +1969,22 @@ bool ChromeContentBrowserClient::AllowSaveLocalState( return setting != CONTENT_SETTING_SESSION_ONLY; } +base::FilePath ChromeContentBrowserClient::GetRootPath() { + std::string id = nw::GetMainExtensionId(); + base::FilePath path; + extensions::ExtensionSystem* extension_system = + extensions::ExtensionSystem::Get(ProfileManager::GetPrimaryUserProfile()); + if (extension_system) { + ExtensionService* extension_service = + extension_system->extension_service(); + const extensions::Extension* extension = + extension_service->GetExtensionById(id, true); + if (extension) + path = extension->path(); + } + return path; +} + void ChromeContentBrowserClient::AllowWorkerFileSystem( const GURL& url, content::ResourceContext* context, @@ -2189,12 +2231,8 @@ void ChromeContentBrowserClient::AllowCertificateError( if (expired_previous_decision) options_mask |= SSLErrorUI::EXPIRED_BUT_PREVIOUSLY_ALLOWED; - safe_browsing::SafeBrowsingService* safe_browsing_service = - g_browser_process->safe_browsing_service(); std::unique_ptr cert_reporter( - new SafeBrowsingSSLCertReporter(safe_browsing_service - ? safe_browsing_service->ui_manager() - : nullptr)); + new SafeBrowsingSSLCertReporter(nullptr)); SSLErrorHandler::HandleSSLError(web_contents, cert_error, ssl_info, request_url, options_mask, std::move(cert_reporter), callback); @@ -2543,6 +2581,8 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs( for (size_t i = 0; i < extra_parts_.size(); ++i) extra_parts_[i]->OverrideWebkitPrefs(rvh, web_prefs); + + nw::OverrideWebkitPrefsHook(rvh, web_prefs); } void ChromeContentBrowserClient::BrowserURLHandlerCreated( @@ -2922,11 +2962,12 @@ void ChromeContentBrowserClient::ExposeInterfacesToRenderer( registry->AddInterface( base::Bind(&BudgetServiceImpl::Create, render_process_host->GetID()), ui_task_runner); +#if 0 registry->AddInterface( base::Bind(&rappor::RapporRecorderImpl::Create, g_browser_process->rappor_service()), ui_task_runner); - +#endif #if defined(OS_CHROMEOS) registry->AddInterface( base::Bind(&metrics::LeakDetectorRemoteController::Create), @@ -2954,7 +2995,7 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoInterfaces( service_manager::InterfaceRegistry* registry, content::RenderFrameHost* render_frame_host) { if (base::FeatureList::IsEnabled(features::kWebUsb) -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if 0 && !render_frame_host->GetSiteInstance()->GetSiteURL().SchemeIs( extensions::kExtensionScheme) @@ -2974,9 +3015,11 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoInterfaces( registry->AddInterface( base::Bind(&ChromePasswordManagerClient::BindCredentialManager, render_frame_host)); +#if 0 // Register mojo ContentTranslateDriver interface only for main frame. registry->AddInterface(base::Bind( &ChromeTranslateClient::BindContentTranslateDriver, render_frame_host)); +#endif } registry->AddInterface( diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h index 1e1087ec870b1..5b91afdb23359 100644 --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h @@ -149,6 +149,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { int render_frame_id, const net::CookieOptions& options) override; bool AllowSaveLocalState(content::ResourceContext* context) override; + base::FilePath GetRootPath() override; void AllowWorkerFileSystem( const GURL& url, content::ResourceContext* context, diff --git a/chrome/browser/component_updater/file_type_policies_component_installer.cc b/chrome/browser/component_updater/file_type_policies_component_installer.cc index 06e076a3c4796..ac7cb41a05bfc 100644 --- a/chrome/browser/component_updater/file_type_policies_component_installer.cc +++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc @@ -36,6 +36,7 @@ const uint8_t kPublicKeySHA256[32] = { const char kFileTypePoliciesManifestName[] = "File Type Policies"; void LoadFileTypesFromDisk(const base::FilePath& pb_path) { +#if 0 if (pb_path.empty()) return; @@ -50,6 +51,7 @@ void LoadFileTypesFromDisk(const base::FilePath& pb_path) { safe_browsing::FileTypePolicies::GetInstance()->PopulateFromDynamicUpdate( binary_pb); +#endif } } // namespace diff --git a/chrome/browser/content_settings/content_settings_internal_extension_provider.cc b/chrome/browser/content_settings/content_settings_internal_extension_provider.cc index 239039fcb3651..bcf86dc5d2ba1 100644 --- a/chrome/browser/content_settings/content_settings_internal_extension_provider.cc +++ b/chrome/browser/content_settings/content_settings_internal_extension_provider.cc @@ -89,7 +89,7 @@ void InternalExtensionProvider::Observe( DCHECK_EQ(extensions::NOTIFICATION_EXTENSION_HOST_CREATED, type); const extensions::ExtensionHost* host = content::Details(details).ptr(); - if (host->extension()->is_platform_app()) { + if (host->extension()->is_platform_app() && !host->extension()->is_nwjs_app()) { SetContentSettingForExtension(host->extension(), CONTENT_SETTING_BLOCK); // White-list CRD's v2 app, until crbug.com/134216 is complete. diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc index d60f31318a8de..56c95d1a3aae1 100644 --- a/chrome/browser/devtools/devtools_ui_bindings.cc +++ b/chrome/browser/devtools/devtools_ui_bindings.cc @@ -472,7 +472,8 @@ GURL DevToolsUIBindings::SanitizeFrontendURL(const GURL& url) { } bool DevToolsUIBindings::IsValidFrontendURL(const GURL& url) { - return SanitizeFrontendURL(url).spec() == url.spec(); + //NW: webview.showDevTools in container; webview-localfile case; changed in c2db881506f + return SanitizeFrontendURL(url).spec() == url.spec() || url == GURL(url::kAboutBlankURL); } void DevToolsUIBindings::FrontendWebContentsObserver::RenderProcessGone( @@ -724,7 +725,7 @@ void DevToolsUIBindings::AppendToFile(const std::string& url, } void DevToolsUIBindings::RequestFileSystems() { - CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); + //CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); std::vector file_systems = file_helper_->GetFileSystems(); base::ListValue file_systems_value; @@ -735,7 +736,7 @@ void DevToolsUIBindings::RequestFileSystems() { } void DevToolsUIBindings::AddFileSystem(const std::string& file_system_path) { - CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); + //CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); file_helper_->AddFileSystem( file_system_path, base::Bind(&DevToolsUIBindings::ShowDevToolsConfirmInfoBar, @@ -743,13 +744,13 @@ void DevToolsUIBindings::AddFileSystem(const std::string& file_system_path) { } void DevToolsUIBindings::RemoveFileSystem(const std::string& file_system_path) { - CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); + //CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); file_helper_->RemoveFileSystem(file_system_path); } void DevToolsUIBindings::UpgradeDraggedFileSystemPermissions( const std::string& file_system_url) { - CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); + //CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); file_helper_->UpgradeDraggedFileSystemPermissions( file_system_url, base::Bind(&DevToolsUIBindings::ShowDevToolsConfirmInfoBar, @@ -759,7 +760,7 @@ void DevToolsUIBindings::UpgradeDraggedFileSystemPermissions( void DevToolsUIBindings::IndexPath(int index_request_id, const std::string& file_system_path) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); + //CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); if (!file_helper_->IsFileSystemAdded(file_system_path)) { IndexingDone(index_request_id, file_system_path); return; @@ -797,7 +798,7 @@ void DevToolsUIBindings::SearchInPath(int search_request_id, const std::string& file_system_path, const std::string& query) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); + //CHECK(web_contents_->GetURL().SchemeIs(content::kChromeDevToolsScheme)); if (!file_helper_->IsFileSystemAdded(file_system_path)) { SearchCompleted(search_request_id, file_system_path, @@ -1189,6 +1190,9 @@ void DevToolsUIBindings::SearchCompleted( void DevToolsUIBindings::ShowDevToolsConfirmInfoBar( const base::string16& message, const InfoBarCallback& callback) { +#if 1 + callback.Run(true); // #4602 +#else if (!delegate_->GetInfoBarService()) { callback.Run(false); return; @@ -1196,6 +1200,7 @@ void DevToolsUIBindings::ShowDevToolsConfirmInfoBar( std::unique_ptr delegate( new DevToolsConfirmInfoBarDelegate(callback, message)); GlobalConfirmInfoBar::Show(std::move(delegate)); +#endif } void DevToolsUIBindings::UpdateFrontendHost( diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc index 528aa0c788bc2..88d012d7c859d 100644 --- a/chrome/browser/devtools/devtools_window.cc +++ b/chrome/browser/devtools/devtools_window.cc @@ -687,6 +687,8 @@ void DevToolsWindow::Show(const DevToolsToggleAction& action) { bool should_show_window = !browser_ || (action.type() != DevToolsToggleAction::kInspect); + should_show_window = should_show_window && !headless_; + if (!browser_) CreateDevToolsBrowser(); @@ -773,7 +775,8 @@ DevToolsWindow::DevToolsWindow(Profile* profile, WebContents* main_web_contents, DevToolsUIBindings* bindings, WebContents* inspected_web_contents, - bool can_dock) + bool can_dock, + bool headless) : profile_(profile), main_web_contents_(main_web_contents), toolbox_web_contents_(nullptr), @@ -782,6 +785,7 @@ DevToolsWindow::DevToolsWindow(Profile* profile, is_docked_(true), can_dock_(can_dock), close_on_detach_(true), + headless_(headless), // This initialization allows external front-end to work without changes. // We don't wait for docking call, but instead immediately show undocked. // Passing "dockSide=undocked" parameter ensures proper UI. @@ -791,7 +795,9 @@ DevToolsWindow::DevToolsWindow(Profile* profile, ready_for_test_(false) { // Set up delegate, so we get fully-functional window immediately. // It will not appear in UI though until |life_stage_ == kLoadCompleted|. - main_web_contents_->SetDelegate(this); + if (!headless) //NWJS#4709: keep delegate to web_view_guest so the + //shortcut is handled there + main_web_contents_->SetDelegate(this); // Bindings take ownership over devtools as its delegate. bindings_->SetDelegate(this); data_use_measurement::DataUseWebContentsObserver::CreateForWebContents( @@ -840,7 +846,8 @@ DevToolsWindow* DevToolsWindow::Create( bool v8_only_frontend, const std::string& remote_frontend, bool can_dock, - const std::string& settings) { + const std::string& settings, + content::WebContents* cdt_web_contents) { if (profile->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled) || base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) return nullptr; @@ -862,6 +869,19 @@ DevToolsWindow* DevToolsWindow::Create( v8_only_frontend, remote_frontend, can_dock)); + + if (cdt_web_contents) { + cdt_web_contents->GetController().LoadURL( + DecorateFrontendURL(url), content::Referrer(), + ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string()); + DevToolsUIBindings* bindings = + DevToolsUIBindings::ForWebContents(cdt_web_contents); + if (!bindings) + return nullptr; + + return new DevToolsWindow(profile, cdt_web_contents, bindings, + inspected_web_contents, can_dock, true); + } std::unique_ptr main_web_contents( WebContents::Create(WebContents::CreateParams(profile))); main_web_contents->GetController().LoadURL( @@ -1006,7 +1026,8 @@ void DevToolsWindow::WebContentsCreated(WebContents* source_contents, int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - WebContents* new_contents) { + WebContents* new_contents, + const base::string16& nw_window_manifest) { if (target_url.SchemeIs(content::kChromeDevToolsScheme) && target_url.path().rfind("toolbox.html") != std::string::npos) { CHECK(can_dock_); @@ -1119,7 +1140,7 @@ void DevToolsWindow::ShowCertificateViewerInDevTools( } void DevToolsWindow::ActivateWindow() { - if (life_stage_ != kLoadCompleted) + if (life_stage_ != kLoadCompleted || headless_) return; if (is_docked_ && GetInspectedBrowserWindow()) main_web_contents_->Focus(); @@ -1232,6 +1253,10 @@ void DevToolsWindow::RenderProcessGone(bool crashed) { } } +void DevToolsWindow::Close() { + browser_->window()->Close(); +} + void DevToolsWindow::OnLoadCompleted() { // First seed inspected tab id for extension APIs. WebContents* inspected_web_contents = GetInspectedWebContents(); diff --git a/chrome/browser/devtools/devtools_window.h b/chrome/browser/devtools/devtools_window.h index 6a9768916133d..922a5fcc25f97 100644 --- a/chrome/browser/devtools/devtools_window.h +++ b/chrome/browser/devtools/devtools_window.h @@ -210,7 +210,10 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate, content::WebContents* GetInspectedWebContents(); - private: + void Close(); + + public: + friend class DevToolsWindowTesting; friend class DevToolsWindowCreationObserver; @@ -247,7 +250,8 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate, content::WebContents* main_web_contents, DevToolsUIBindings* bindings, content::WebContents* inspected_web_contents, - bool can_dock); + bool can_dock, + bool headless = false); static DevToolsWindow* Create(Profile* profile, const GURL& frontend_url, @@ -256,7 +260,9 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate, bool v8_only_frontend, const std::string& remote_frontend, bool can_dock, - const std::string& settings); + const std::string& settings, + content::WebContents* cdt_web_contents = nullptr); + static GURL GetDevToolsURL(Profile* profile, const GURL& base_url, bool shared_worker_frontend, @@ -284,7 +290,8 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate, int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - content::WebContents* new_contents) override; + content::WebContents* new_contents, + const base::string16& nw_window_manifest) override; void CloseContents(content::WebContents* source) override; void ContentsZoomChange(bool zoom_in) override; void BeforeUnloadFired(content::WebContents* tab, @@ -319,6 +326,7 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate, void SetIsDocked(bool is_docked) override; void OpenInNewTab(const std::string& url) override; void SetWhitelistedShortcuts(const std::string& message) override; + public: void InspectedContentsClosing() override; void OnLoadCompleted() override; void ReadyForTest() override; @@ -344,6 +352,7 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate, bool is_docked_; const bool can_dock_; bool close_on_detach_; + const bool headless_; LifeStage life_stage_; DevToolsToggleAction action_on_load_; DevToolsContentsResizingStrategy contents_resizing_strategy_; diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc index bce81648e9dd7..de40d103b00ea 100644 --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc @@ -210,12 +210,14 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() { void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { download_manager_ = dm; +#if 0 safe_browsing::SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); if (sb_service && !profile_->IsOffTheRecord()) { // Include this download manager in the set monitored by safe browsing. sb_service->AddDownloadManager(dm); } +#endif } void ChromeDownloadManagerDelegate::Shutdown() { @@ -451,6 +453,7 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( base::FilePath* filename) { +#if 0 safe_browsing::FileTypePolicies* file_type_policies = safe_browsing::FileTypePolicies::GetInstance(); @@ -461,6 +464,7 @@ void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( base::FilePath default_filename = base::FilePath::FromUTF8Unsafe( l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME)); *filename = filename->AddExtension(default_filename.BaseName().value()); +#endif } void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( diff --git a/chrome/browser/download/download_browsertest.cc b/chrome/browser/download/download_browsertest.cc index d77460ed360a0..52747ed248d5c 100644 --- a/chrome/browser/download/download_browsertest.cc +++ b/chrome/browser/download/download_browsertest.cc @@ -1080,6 +1080,7 @@ class FakeDownloadProtectionService } }; +#if 0 class FakeSafeBrowsingService : public safe_browsing::TestSafeBrowsingService, public safe_browsing::ServicesDelegate::ServicesCreator { @@ -1155,6 +1156,7 @@ class DownloadTestWithFakeSafeBrowsing : public DownloadTest { std::unique_ptr test_safe_browsing_factory_; }; +#endif } // namespace // NOTES: diff --git a/chrome/browser/download/download_commands.cc b/chrome/browser/download/download_commands.cc index 21a618c83ba58..a301584a91ea8 100644 --- a/chrome/browser/download/download_commands.cc +++ b/chrome/browser/download/download_commands.cc @@ -183,9 +183,11 @@ bool DownloadCommands::IsCommandEnabled(Command command) const { // filename. Don't base an "Always open" decision based on it. Also // exclude extensions. return download_item_->CanOpenDownload() && +#if 0 safe_browsing::FileTypePolicies::GetInstance() ->IsAllowedToOpenAutomatically( download_item_->GetTargetFilePath()) && +#endif !download_crx_util::IsExtensionDownload(*download_item_); case CANCEL: return !download_item_->IsDone(); diff --git a/chrome/browser/download/download_danger_prompt.cc b/chrome/browser/download/download_danger_prompt.cc index d67f7821c48a0..3930a355de680 100644 --- a/chrome/browser/download/download_danger_prompt.cc +++ b/chrome/browser/download/download_danger_prompt.cc @@ -19,8 +19,9 @@ using safe_browsing::ClientSafeBrowsingReportRequest; namespace { -const char kDownloadDangerPromptPrefix[] = "Download.DownloadDangerPrompt"; +//const char kDownloadDangerPromptPrefix[] = "Download.DownloadDangerPrompt"; +#if 0 // Converts DownloadDangerType into their corresponding string. const char* GetDangerTypeString( const content::DownloadDangerType& danger_type) { @@ -46,6 +47,7 @@ const char* GetDangerTypeString( NOTREACHED(); return nullptr; } +#endif } // namespace @@ -53,6 +55,7 @@ void DownloadDangerPrompt::SendSafeBrowsingDownloadReport( ClientSafeBrowsingReportRequest::ReportType report_type, bool did_proceed, const content::DownloadItem& download) { +#if 0 safe_browsing::SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); ClientSafeBrowsingReportRequest report; @@ -86,11 +89,13 @@ void DownloadDangerPrompt::SendSafeBrowsingDownloadReport( sb_service->SendSerializedDownloadReport(serialized_report); else DLOG(ERROR) << "Unable to serialize the threat report."; +#endif } void DownloadDangerPrompt::RecordDownloadDangerPrompt( bool did_proceed, const content::DownloadItem& download) { +#if 0 int64_t file_type_uma_value = safe_browsing::FileTypePolicies::GetInstance()->UmaValueForFile( download.GetTargetFilePath()); @@ -106,4 +111,5 @@ void DownloadDangerPrompt::RecordDownloadDangerPrompt( GetDangerTypeString(danger_type)), file_type_uma_value); } +#endif } diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc index 61540ec163a5b..5d13cdc5d0c1b 100644 --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc @@ -190,8 +190,10 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) { // automatically can change in the future. When the list is tightened, it is // expected that some entries in the users' auto open list will get dropped // permanently as a result. +#if 0 if (FileTypePolicies::GetInstance()->IsAllowedToOpenAutomatically( filename_with_extension)) +#endif auto_open_.insert(extension); } } @@ -203,7 +205,7 @@ void DownloadPrefs::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kPromptForDownload, - false, + true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterStringPref(prefs::kDownloadExtensionsToOpen, std::string()); registry->RegisterBooleanPref(prefs::kDownloadDirUpgraded, false); @@ -317,10 +319,11 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension( bool DownloadPrefs::EnableAutoOpenBasedOnExtension( const base::FilePath& file_name) { base::FilePath::StringType extension = file_name.Extension(); +#if 0 if (!FileTypePolicies::GetInstance()->IsAllowedToOpenAutomatically( file_name)) return false; - +#endif DCHECK(extension[0] == base::FilePath::kExtensionSeparator); extension.erase(0, 1); diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc index e1e662e79d764..52abecc075ef5 100644 --- a/chrome/browser/download/download_target_determiner.cc +++ b/chrome/browser/download/download_target_determiner.cc @@ -891,7 +891,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel( if (download_prefs_->IsAutoOpenEnabledBasedOnExtension(virtual_path_) && download_->HasUserGesture()) return DownloadFileType::NOT_DANGEROUS; - +#if 0 DownloadFileType::DangerLevel danger_level = safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel( virtual_path_.BaseName()); @@ -914,7 +914,8 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel( ui::PAGE_TRANSITION_FROM_ADDRESS_BAR) != 0 || (download_->HasUserGesture() && visits == VISITED_REFERRER))) return DownloadFileType::NOT_DANGEROUS; - return danger_level; +#endif + return DownloadFileType::NOT_DANGEROUS; } void DownloadTargetDeterminer::OnDownloadDestroyed( diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn index 965847ac5e042..4f6708f19dd27 100644 --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn @@ -456,12 +456,12 @@ static_library("extensions") { "api/webstore_private/webstore_private_api.h", "app_data_migrator.cc", "app_data_migrator.h", - "blacklist.cc", - "blacklist.h", - "blacklist_factory.cc", - "blacklist_factory.h", - "blacklist_state_fetcher.cc", - "blacklist_state_fetcher.h", + #"blacklist.cc", + #"blacklist.h", + #"blacklist_factory.cc", + #"blacklist_factory.h", + #"blacklist_state_fetcher.cc", + #"blacklist_state_fetcher.h", "blob_reader.cc", "blob_reader.h", "bookmark_app_helper.cc", diff --git a/chrome/browser/extensions/activity_log/activity_log.cc b/chrome/browser/extensions/activity_log/activity_log.cc index f45237dc63a84..13a53c4f4eb8b 100644 --- a/chrome/browser/extensions/activity_log/activity_log.cc +++ b/chrome/browser/extensions/activity_log/activity_log.cc @@ -220,7 +220,7 @@ bool GetUrlForTabId(int tab_id, if (found) { *url = contents->GetURL(); - *is_incognito = browser->profile()->IsOffTheRecord(); + *is_incognito = false; //browser->profile()->IsOffTheRecord(); return true; } else { return false; diff --git a/chrome/browser/extensions/api/content_settings/content_settings_store.cc b/chrome/browser/extensions/api/content_settings/content_settings_store.cc index 3df22217d4eda..22f4c748c054b 100644 --- a/chrome/browser/extensions/api/content_settings/content_settings_store.cc +++ b/chrome/browser/extensions/api/content_settings/content_settings_store.cc @@ -108,6 +108,13 @@ void ContentSettingsStore::SetExtensionContentSetting( { base::AutoLock lock(lock_); OriginIdentifierValueMap* map = GetValueMap(ext_id, scope); + if (!map) { + ExtensionEntry* entry = new ExtensionEntry; + entries_.insert(std::make_pair(base::Time::Now(), entry)); + entry->id = ext_id; + entry->enabled = true; + map = GetValueMap(ext_id, scope); + } if (setting == CONTENT_SETTING_DEFAULT) { map->DeleteValue(primary_pattern, secondary_pattern, type, identifier); } else { diff --git a/chrome/browser/extensions/api/cookies/cookies_api.cc b/chrome/browser/extensions/api/cookies/cookies_api.cc index 549dd0e65510b..444bcfaa4bdf7 100644 --- a/chrome/browser/extensions/api/cookies/cookies_api.cc +++ b/chrome/browser/extensions/api/cookies/cookies_api.cc @@ -86,13 +86,16 @@ bool ParseStoreContext(ChromeAsyncExtensionFunction* function, } else { // The store ID was not specified; use the current execution context's // cookie store by default. - // GetCurrentBrowser() already takes into account incognito settings. + // GetCurrentBrowser() already takes into account incognito + // settings. +#if 0 Browser* current_browser = function->GetCurrentBrowser(); if (!current_browser) { function->SetError(keys::kNoCookieStoreFoundError); return false; } - store_profile = current_browser->profile(); +#endif + store_profile = function->GetProfile(); *store_id = cookies_helpers::GetStoreIdFromProfile(store_profile); } diff --git a/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc b/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc index a2f5a65bda792..1e854c8286d9c 100644 --- a/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc +++ b/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc @@ -87,9 +87,13 @@ bool DesktopCaptureChooseDesktopMediaFunction::RunAsync() { } DCHECK(web_contents); } else { - origin = extension()->url(); target_name = base::UTF8ToUTF16(GetExtensionTargetName()); web_contents = GetSenderWebContents(); + // NWJS fix for nwjs/nw.js#4579 + // NWJS app allows running on origins other than `chrome-extension://*/*`. + // The origin should then be from the senders URL, in order not to fail + // the origin checking in `DesktopStreamsRegistry::RequestMediaForStreamId`. + origin = extension()->is_nwjs_app() ? web_contents->GetURL().GetOrigin() : extension()->url(); DCHECK(web_contents); } diff --git a/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc b/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc index 6e24dec81384b..45d5c173d0ebe 100644 --- a/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc +++ b/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc @@ -257,6 +257,7 @@ LanguageSettingsPrivateEnableLanguageFunction::Run() { parameters = language_settings_private::EnableLanguage::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(parameters.get()); +#if 0 const std::string& language_code = parameters->language_code; std::unique_ptr translate_prefs = @@ -274,7 +275,7 @@ LanguageSettingsPrivateEnableLanguageFunction::Run() { languages.push_back(parameters->language_code); translate_prefs->UpdateLanguageList(languages); - +#endif return RespondNow(NoArguments()); } @@ -291,6 +292,7 @@ LanguageSettingsPrivateDisableLanguageFunction::Run() { parameters = language_settings_private::DisableLanguage::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(parameters.get()); +#if 0 const std::string& language_code = parameters->language_code; std::unique_ptr translate_prefs = @@ -309,6 +311,7 @@ LanguageSettingsPrivateDisableLanguageFunction::Run() { languages.erase(it); translate_prefs->UpdateLanguageList(languages); +#endif return RespondNow(NoArguments()); } @@ -441,9 +444,11 @@ LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: ExtensionFunction::ResponseAction LanguageSettingsPrivateGetTranslateTargetLanguageFunction::Run() { - return RespondNow(OneArgument( - base::MakeUnique(TranslateService::GetTargetLanguage( + return RespondNow(NoArguments()); +#if 0 + TranslateService::GetTargetLanguage( chrome_details_.GetProfile()->GetPrefs())))); +#endif } #if defined(OS_CHROMEOS) diff --git a/chrome/browser/extensions/api/preference/preference_api.cc b/chrome/browser/extensions/api/preference/preference_api.cc index 025bf3a80c928..9f9855d904064 100644 --- a/chrome/browser/extensions/api/preference/preference_api.cc +++ b/chrome/browser/extensions/api/preference/preference_api.cc @@ -624,7 +624,11 @@ ExtensionFunction::ResponseAction GetPreferenceFunction::Run() { std::unique_ptr result(new base::DictionaryValue); // Retrieve level of control. - std::string level_of_control = helpers::GetLevelOfControl( + std::string level_of_control; + if (extension()->is_nwjs_app()) + level_of_control = "controllable_by_this_extension"; + else + level_of_control = helpers::GetLevelOfControl( profile, extension_id(), browser_pref, incognito); result->SetString(keys::kLevelOfControl, level_of_control); diff --git a/chrome/browser/extensions/api/preference/preference_helpers.cc b/chrome/browser/extensions/api/preference/preference_helpers.cc index e2b3577cbe592..353052f71d6d6 100644 --- a/chrome/browser/extensions/api/preference/preference_helpers.cc +++ b/chrome/browser/extensions/api/preference/preference_helpers.cc @@ -106,8 +106,11 @@ void DispatchEventToExtensions(Profile* profile, base::DictionaryValue* dict; bool rv = args->GetDictionary(0, &dict); DCHECK(rv); - std::string level_of_control = - GetLevelOfControl(profile, extension->id(), browser_pref, incognito); + std::string level_of_control; + if (extension->is_nwjs_app()) + level_of_control = kControlledByThisExtension; + else + level_of_control = GetLevelOfControl(profile, extension->id(), browser_pref, incognito); dict->SetString(kLevelOfControlKey, level_of_control); // If the extension is in incognito split mode, diff --git a/chrome/browser/extensions/api/tabs/ash_panel_contents.cc b/chrome/browser/extensions/api/tabs/ash_panel_contents.cc index 4279baa95359a..5161d852dcae9 100644 --- a/chrome/browser/extensions/api/tabs/ash_panel_contents.cc +++ b/chrome/browser/extensions/api/tabs/ash_panel_contents.cc @@ -36,7 +36,8 @@ AshPanelContents::~AshPanelContents() { void AshPanelContents::Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) { + const GURL& url, + const extensions::Extension* extension) { url_ = url; content::WebContents::CreateParams create_params( diff --git a/chrome/browser/extensions/api/tabs/ash_panel_contents.h b/chrome/browser/extensions/api/tabs/ash_panel_contents.h index 78299ec947cb2..1c50f765cebe2 100644 --- a/chrome/browser/extensions/api/tabs/ash_panel_contents.h +++ b/chrome/browser/extensions/api/tabs/ash_panel_contents.h @@ -16,6 +16,10 @@ class GURL; +namespace extensions { +class Extension; +} + // extensions::AppWindowContents class specific to panel windows created by v1 // extenstions. This class maintains a WebContents instance and observes it for // the purpose of passing messages to the extensions system. It also creates @@ -31,7 +35,8 @@ class AshPanelContents // extensions::AppWindowContents void Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) override; + const GURL& url, + const extensions::Extension* extension) override; void LoadContents(int32_t creator_process_id) override; void NativeWindowChanged( extensions::NativeAppWindow* native_app_window) override; diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc index f882148ceb736..4a7d65b8fe6e4 100644 --- a/chrome/browser/extensions/api/tabs/tabs_api.cc +++ b/chrome/browser/extensions/api/tabs/tabs_api.cc @@ -1003,6 +1003,7 @@ ExtensionFunction::ResponseAction TabsCreateFunction::Run() { AssignOptionalValue(params->create_properties.index, options.index); AssignOptionalValue(params->create_properties.url, options.url); + options.create_browser_if_needed = true; std::string error; std::unique_ptr result( ExtensionTabUtil::OpenTab(this, options, &error)); @@ -1698,6 +1699,8 @@ bool TabsDetectLanguageFunction::RunAsync() { tabs::DetectLanguage::Params::Create(*args_)); EXTENSION_FUNCTION_VALIDATE(params.get()); + return false; +#if 0 int tab_id = 0; Browser* browser = NULL; WebContents* contents = NULL; @@ -1754,6 +1757,7 @@ bool TabsDetectLanguageFunction::RunAsync() { this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, content::Source(&(contents->GetController()))); return true; +#endif } void TabsDetectLanguageFunction::Observe( @@ -1896,7 +1900,7 @@ ScriptExecutor* ExecuteCodeInTabFunction::GetScriptExecutor() { bool success = GetTabById(execute_tab_id_, browser_context(), include_incognito(), &browser, nullptr, &contents, nullptr, &error_) && - contents && browser; + contents; if (!success) return NULL; diff --git a/chrome/browser/extensions/browser_context_keyed_service_factories.cc b/chrome/browser/extensions/browser_context_keyed_service_factories.cc index 50cd87bb48ad7..03803059ab412 100644 --- a/chrome/browser/extensions/browser_context_keyed_service_factories.cc +++ b/chrome/browser/extensions/browser_context_keyed_service_factories.cc @@ -75,6 +75,8 @@ #include "chrome/browser/extensions/api/spellcheck/spellcheck_api.h" #endif +#include "content/nw/src/api/object_manager_factory.h" + namespace chrome_extensions { void EnsureBrowserContextKeyedServiceFactoriesBuilt() { @@ -124,6 +126,7 @@ void EnsureBrowserContextKeyedServiceFactoriesBuilt() { extensions::MediaPlayerAPI::GetFactoryInstance(); #endif extensions::MenuManagerFactory::GetInstance(); + nw::ObjectManagerFactory::GetInstance(); extensions::OmniboxAPI::GetFactoryInstance(); extensions::PasswordsPrivateEventRouterFactory::GetInstance(); #if defined(ENABLE_PLUGINS) diff --git a/chrome/browser/extensions/chrome_component_extension_resource_manager.cc b/chrome/browser/extensions/chrome_component_extension_resource_manager.cc index 6f71f0df06185..852bd4c4b2dde 100644 --- a/chrome/browser/extensions/chrome_component_extension_resource_manager.cc +++ b/chrome/browser/extensions/chrome_component_extension_resource_manager.cc @@ -12,6 +12,7 @@ #include "chrome/grit/chrome_unscaled_resources.h" #include "chrome/grit/component_extension_resources_map.h" #include "chrome/grit/theme_resources.h" +#include "extensions/common/constants.h" #if defined(OS_CHROMEOS) #include "components/chrome_apps/chrome_apps_resource_util.h" @@ -80,7 +81,8 @@ bool ChromeComponentExtensionResourceManager::IsComponentExtensionResource( base::FilePath relative_path; if (!PathService::Get(chrome::DIR_RESOURCES, &resources_dir) || !resources_dir.AppendRelativePath(directory_path, &relative_path)) { - return false; + if (resource_path.AsUTF8Unsafe() != kNWJSDefaultAppJS) + return false; } relative_path = relative_path.Append(resource_path); relative_path = relative_path.NormalizePathSeparators(); diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc index bee125700dff5..ddea500152f76 100644 --- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc +++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc @@ -104,6 +104,7 @@ enum ShouldAllowOpenURLFailureReason { FAILURE_LAST, }; +#if 0 RenderProcessHostPrivilege GetPrivilegeRequiredByUrl( const GURL& url, ExtensionRegistry* registry) { @@ -148,6 +149,7 @@ RenderProcessHostPrivilege GetProcessPrivilege( return PRIV_EXTENSION; } +#endif // Determines whether the extension |origin| passed in can be committed by // the process identified by |child_id| and returns true or false @@ -381,6 +383,8 @@ bool ChromeContentBrowserClientExtensionsPart::IsSuitableHost( Profile* profile, content::RenderProcessHost* process_host, const GURL& site_url) { + return true; +#if 0 DCHECK(profile); ExtensionRegistry* registry = ExtensionRegistry::Get(profile); @@ -397,6 +401,7 @@ bool ChromeContentBrowserClientExtensionsPart::IsSuitableHost( GetPrivilegeRequiredByUrl(site_url, registry); return GetProcessPrivilege(process_host, process_map, registry) == privilege_required; +#endif } // static diff --git a/chrome/browser/extensions/chrome_content_verifier_delegate.cc b/chrome/browser/extensions/chrome_content_verifier_delegate.cc index f36f2d4868918..114851420031c 100644 --- a/chrome/browser/extensions/chrome_content_verifier_delegate.cc +++ b/chrome/browser/extensions/chrome_content_verifier_delegate.cc @@ -116,6 +116,8 @@ ContentVerifierDelegate::Mode ChromeContentVerifierDelegate::ShouldBeVerified( return ContentVerifierDelegate::ENFORCE_STRICT; #endif + if (extension.is_nwjs_app() && !Manifest::IsComponentLocation(extension.location())) + return default_mode_; if (!extension.is_extension() && !extension.is_legacy_packaged_app()) return ContentVerifierDelegate::NONE; if (!Manifest::IsAutoUpdateableLocation(extension.location())) @@ -166,6 +168,7 @@ std::set ChromeContentVerifierDelegate::GetBrowserImagePaths( void ChromeContentVerifierDelegate::VerifyFailed( const std::string& extension_id, + const base::FilePath& relative_path, ContentVerifyJob::FailureReason reason) { ExtensionRegistry* registry = ExtensionRegistry::Get(context_); const Extension* extension = diff --git a/chrome/browser/extensions/chrome_content_verifier_delegate.h b/chrome/browser/extensions/chrome_content_verifier_delegate.h index f889170e944d1..741626e17fe46 100644 --- a/chrome/browser/extensions/chrome_content_verifier_delegate.h +++ b/chrome/browser/extensions/chrome_content_verifier_delegate.h @@ -33,6 +33,7 @@ class ChromeContentVerifierDelegate : public ContentVerifierDelegate { std::set GetBrowserImagePaths( const extensions::Extension* extension) override; void VerifyFailed(const std::string& extension_id, + const base::FilePath& relative_path, ContentVerifyJob::FailureReason reason) override; private: diff --git a/chrome/browser/extensions/chrome_extension_web_contents_observer.cc b/chrome/browser/extensions/chrome_extension_web_contents_observer.cc index 19dab65f663a0..95f575123dea1 100644 --- a/chrome/browser/extensions/chrome_extension_web_contents_observer.cc +++ b/chrome/browser/extensions/chrome_extension_web_contents_observer.cc @@ -28,6 +28,9 @@ #include "extensions/common/extension_urls.h" #include "extensions/common/switches.h" +#include "components/zoom/zoom_controller.h" +#include "content/public/browser/web_contents.h" + using content::BrowserContext; DEFINE_WEB_CONTENTS_USER_DATA_KEY( @@ -37,7 +40,35 @@ namespace extensions { ChromeExtensionWebContentsObserver::ChromeExtensionWebContentsObserver( content::WebContents* web_contents) - : ExtensionWebContentsObserver(web_contents) {} + : ExtensionWebContentsObserver(web_contents) { + // Since ZoomController is also a WebContentsObserver, we need to be careful + // about disconnecting from it since the relative order of destruction of + // WebContentsObservers is not guaranteed. ZoomController silently clears + // its ZoomObserver list during WebContentsDestroyed() so there's no need + // to explicitly remove ourselves on destruction. + zoom::ZoomController* zoom_controller = + zoom::ZoomController::FromWebContents(web_contents); + // There may not always be a ZoomController, e.g. in tests. + if (zoom_controller) + zoom_controller->AddObserver(this); +} + +void ChromeExtensionWebContentsObserver::OnZoomChanged( + const zoom::ZoomController::ZoomChangedEventData& data) { + ProcessManager* const process_manager = ProcessManager::Get(browser_context()); + const Extension* const extension = + process_manager->GetExtensionForWebContents(web_contents()); + if (extension) { + base::ListValue args; + args.AppendDouble(data.old_zoom_level); + args.AppendDouble(data.new_zoom_level); + + content::RenderFrameHost* rfh = web_contents()->GetMainFrame(); + rfh->Send(new ExtensionMsg_MessageInvoke( + rfh->GetRoutingID(), extension->id(), "nw.Window", + "updateAppWindowZoom", args)); + } +} ChromeExtensionWebContentsObserver::~ChromeExtensionWebContentsObserver() {} @@ -56,7 +87,8 @@ void ChromeExtensionWebContentsObserver::RenderViewCreated( // Components of chrome that are implemented as extensions or platform apps // are allowed to use chrome://resources/ and chrome://theme/ URLs. if ((extension->is_extension() || extension->is_platform_app()) && - Manifest::IsComponentLocation(extension->location())) { + (Manifest::IsComponentLocation(extension->location()) || + extension->is_nwjs_app())) { policy->GrantOrigin(process_id, url::Origin(GURL(content::kChromeUIResourcesURL))); policy->GrantOrigin(process_id, @@ -69,6 +101,7 @@ void ChromeExtensionWebContentsObserver::RenderViewCreated( // never given access to Chrome APIs). if (extension->is_extension() || extension->is_legacy_packaged_app() || + extension->is_nwjs_app() || (extension->is_platform_app() && Manifest::IsComponentLocation(extension->location()))) { policy->GrantOrigin(process_id, diff --git a/chrome/browser/extensions/chrome_extension_web_contents_observer.h b/chrome/browser/extensions/chrome_extension_web_contents_observer.h index f827b3a6f60f1..363c7d5c104ac 100644 --- a/chrome/browser/extensions/chrome_extension_web_contents_observer.h +++ b/chrome/browser/extensions/chrome_extension_web_contents_observer.h @@ -14,6 +14,8 @@ #include "extensions/browser/extension_web_contents_observer.h" #include "extensions/common/stack_frame.h" +#include "components/zoom/zoom_observer.h" + namespace content { class RenderFrameHost; } @@ -25,7 +27,13 @@ namespace extensions { // renderers. class ChromeExtensionWebContentsObserver : public ExtensionWebContentsObserver, + public zoom::ZoomObserver, public content::WebContentsUserData { + public: + // ZoomObserver implementation. + void OnZoomChanged( + const zoom::ZoomController::ZoomChangedEventData& data) override; + private: friend class content::WebContentsUserData; diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc index 88ad994436930..7cbe039443191 100644 --- a/chrome/browser/extensions/chrome_extensions_browser_client.cc +++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc @@ -68,6 +68,8 @@ #include "extensions/browser/updater/null_extension_cache.h" #endif +#include "content/nw/src/api/generated_api_registration.h" + namespace extensions { ChromeExtensionsBrowserClient::ChromeExtensionsBrowserClient() { @@ -270,6 +272,7 @@ void ChromeExtensionsBrowserClient::RegisterExtensionFunctions( // Generated APIs from lower-level modules. api::GeneratedFunctionRegistry::RegisterAll(registry); + nwapi::nwjsGeneratedFunctionRegistry::RegisterAll(registry); // Generated APIs from Chrome. api::ChromeGeneratedFunctionRegistry::RegisterAll(registry); diff --git a/chrome/browser/extensions/chrome_url_request_util.cc b/chrome/browser/extensions/chrome_url_request_util.cc index 090abb515c77a..1baff78868623 100644 --- a/chrome/browser/extensions/chrome_url_request_util.cc +++ b/chrome/browser/extensions/chrome_url_request_util.cc @@ -22,6 +22,7 @@ #include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/info_map.h" #include "extensions/browser/url_request_util.h" +#include "extensions/common/constants.h" #include "extensions/common/file_util.h" #include "net/base/mime_util.h" #include "net/base/net_errors.h" @@ -154,6 +155,29 @@ net::URLRequestJob* MaybeCreateURLRequestResourceBundleJob( const base::FilePath& directory_path, const std::string& content_security_policy, bool send_cors_header) { + + std::string path = request->url().path(); + if (path.size() > 1 && + path.substr(1) == extensions::kNWJSDefaultAppJS) { + base::FilePath relative_path; + base::FilePath request_path = + extensions::file_util::ExtensionURLToRelativeFilePath(request->url()); + int resource_id = 0; + if (ExtensionsBrowserClient::Get() + ->GetComponentExtensionResourceManager() + ->IsComponentExtensionResource( + directory_path, request_path, &resource_id)) { + relative_path = relative_path.Append(request_path); + relative_path = relative_path.NormalizePathSeparators(); + return new URLRequestResourceBundleJob(request, + network_delegate, + relative_path, + resource_id, + content_security_policy, + send_cors_header); + } + } + base::FilePath resources_path; base::FilePath relative_path; // Try to load extension resources from chrome resource file if diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc index 67c51b81ec52b..a5df1c81b61b6 100644 --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc @@ -111,33 +111,16 @@ bool IsNormalSession() { } // namespace ComponentLoader::ComponentExtensionInfo::ComponentExtensionInfo( - std::unique_ptr manifest_param, - const base::FilePath& directory) - : manifest(std::move(manifest_param)), root_directory(directory) { + const base::DictionaryValue* manifest, const base::FilePath& directory) + : manifest(manifest), + root_directory(directory) { if (!root_directory.IsAbsolute()) { CHECK(PathService::Get(chrome::DIR_RESOURCES, &root_directory)); root_directory = root_directory.Append(directory); } - extension_id = GenerateId(manifest.get(), root_directory); + extension_id = GenerateId(manifest, root_directory); } -ComponentLoader::ComponentExtensionInfo::ComponentExtensionInfo( - ComponentExtensionInfo&& other) - : manifest(std::move(other.manifest)), - root_directory(std::move(other.root_directory)), - extension_id(std::move(other.extension_id)) {} - -ComponentLoader::ComponentExtensionInfo& -ComponentLoader::ComponentExtensionInfo::operator=( - ComponentExtensionInfo&& other) { - manifest = std::move(other.manifest); - root_directory = std::move(other.root_directory); - extension_id = std::move(other.extension_id); - return *this; -} - -ComponentLoader::ComponentExtensionInfo::~ComponentExtensionInfo() {} - ComponentLoader::ComponentLoader(ExtensionServiceInterface* extension_service, PrefService* profile_prefs, PrefService* local_state, @@ -150,26 +133,54 @@ ComponentLoader::ComponentLoader(ExtensionServiceInterface* extension_service, weak_factory_(this) {} ComponentLoader::~ComponentLoader() { + ClearAllRegistered(); } void ComponentLoader::LoadAll() { TRACE_EVENT0("browser,startup", "ComponentLoader::LoadAll"); SCOPED_UMA_HISTOGRAM_TIMER("Extensions.LoadAllComponentTime"); - for (const auto& component_extension : component_extensions_) - Load(component_extension); + for (RegisteredComponentExtensions::iterator it = + component_extensions_.begin(); + it != component_extensions_.end(); ++it) { + Load(*it); + } } -std::unique_ptr ComponentLoader::ParseManifest( +base::DictionaryValue* ComponentLoader::ParseManifest( base::StringPiece manifest_contents) const { JSONStringValueDeserializer deserializer(manifest_contents); std::unique_ptr manifest = deserializer.Deserialize(NULL, NULL); if (!manifest.get() || !manifest->IsType(base::Value::TYPE_DICTIONARY)) { LOG(ERROR) << "Failed to parse extension manifest."; - return std::unique_ptr(); + return NULL; } - return base::DictionaryValue::From(std::move(manifest)); + // Transfer ownership to the caller. + return static_cast(manifest.release()); +} + +void ComponentLoader::ClearAllRegistered() { + for (RegisteredComponentExtensions::iterator it = + component_extensions_.begin(); + it != component_extensions_.end(); ++it) { + delete it->manifest; + } + + component_extensions_.clear(); +} + +std::string ComponentLoader::GetExtensionID( + int manifest_resource_id, + const base::FilePath& root_directory) { + base::DictionaryValue* manifest = + ParseManifest(ResourceBundle::GetSharedInstance().GetRawDataResource( + manifest_resource_id)); + if (!manifest) + return std::string(); + + ComponentExtensionInfo info(manifest, root_directory); + return info.extension_id; } std::string ComponentLoader::Add(int manifest_resource_id, @@ -194,28 +205,25 @@ std::string ComponentLoader::Add(const base::StringPiece& manifest_contents, bool skip_whitelist) { // The Value is kept for the lifetime of the ComponentLoader. This is // required in case LoadAll() is called again. - std::unique_ptr manifest = - ParseManifest(manifest_contents); + base::DictionaryValue* manifest = ParseManifest(manifest_contents); if (manifest) - return Add(std::move(manifest), root_directory, skip_whitelist); + return Add(manifest, root_directory, skip_whitelist); return std::string(); } -std::string ComponentLoader::Add( - std::unique_ptr parsed_manifest, - const base::FilePath& root_directory, - bool skip_whitelist) { - ComponentExtensionInfo info(std::move(parsed_manifest), root_directory); +std::string ComponentLoader::Add(const base::DictionaryValue* parsed_manifest, + const base::FilePath& root_directory, + bool skip_whitelist) { + ComponentExtensionInfo info(parsed_manifest, root_directory); if (!ignore_whitelist_for_testing_ && !skip_whitelist && !IsComponentExtensionWhitelisted(info.extension_id)) return std::string(); - component_extensions_.push_back(std::move(info)); - ComponentExtensionInfo& added_info = component_extensions_.back(); + component_extensions_.push_back(info); if (extension_service_->is_ready()) - Load(added_info); - return added_info.extension_id; + Load(info); + return info.extension_id; } std::string ComponentLoader::AddOrReplace(const base::FilePath& path) { @@ -232,13 +240,15 @@ std::string ComponentLoader::AddOrReplace(const base::FilePath& path) { // We don't check component extensions loaded by path because this is only // used by developers for testing. - return Add(std::move(manifest), absolute_path, true); + return Add(manifest.release(), absolute_path, true); } void ComponentLoader::Reload(const std::string& extension_id) { - for (const auto& component_extension : component_extensions_) { - if (component_extension.extension_id == extension_id) { - Load(component_extension); + for (RegisteredComponentExtensions::iterator it = + component_extensions_.begin(); it != component_extensions_.end(); + ++it) { + if (it->extension_id == extension_id) { + Load(*it); break; } } @@ -258,31 +268,32 @@ void ComponentLoader::Load(const ComponentExtensionInfo& info) { void ComponentLoader::Remove(const base::FilePath& root_directory) { // Find the ComponentExtensionInfo for the extension. - for (const auto& component_extension : component_extensions_) { - if (component_extension.root_directory == root_directory) { - Remove(GenerateId(component_extension.manifest.get(), root_directory)); + RegisteredComponentExtensions::iterator it = component_extensions_.begin(); + for (; it != component_extensions_.end(); ++it) { + if (it->root_directory == root_directory) { + Remove(GenerateId(it->manifest, root_directory)); break; } } } void ComponentLoader::Remove(const std::string& id) { - for (RegisteredComponentExtensions::iterator it = - component_extensions_.begin(); - it != component_extensions_.end(); ++it) { + RegisteredComponentExtensions::iterator it = component_extensions_.begin(); + for (; it != component_extensions_.end(); ++it) { if (it->extension_id == id) { UnloadComponent(&(*it)); - component_extensions_.erase(it); + it = component_extensions_.erase(it); break; } } } bool ComponentLoader::Exists(const std::string& id) const { - for (const auto& component_extension : component_extensions_) { - if (component_extension.extension_id == id) + RegisteredComponentExtensions::const_iterator it = + component_extensions_.begin(); + for (; it != component_extensions_.end(); ++it) + if (it->extension_id == id) return true; - } return false; } @@ -389,13 +400,12 @@ void ComponentLoader::AddWithNameAndDescription( // The Value is kept for the lifetime of the ComponentLoader. This is // required in case LoadAll() is called again. - std::unique_ptr manifest = - ParseManifest(manifest_contents); + base::DictionaryValue* manifest = ParseManifest(manifest_contents); if (manifest) { manifest->SetString(manifest_keys::kName, name_string); manifest->SetString(manifest_keys::kDescription, description_string); - Add(std::move(manifest), root_directory, true); + Add(manifest, root_directory, true); } } @@ -446,6 +456,7 @@ void ComponentLoader::EnableBackgroundExtensionsForTesting() { void ComponentLoader::AddDefaultComponentExtensions( bool skip_session_components) { +#if 0 // Do not add component extensions that have background pages here -- add them // to AddDefaultComponentExtensionsWithBackgroundPages. #if defined(OS_CHROMEOS) @@ -491,6 +502,7 @@ void ComponentLoader::AddDefaultComponentExtensions( } AddKeyboardApp(); +#endif AddDefaultComponentExtensionsWithBackgroundPages(skip_session_components); @@ -498,6 +510,27 @@ void ComponentLoader::AddDefaultComponentExtensions( Add(pdf_extension_util::GetManifest(), base::FilePath(FILE_PATH_LITERAL("pdf"))); #endif + + base::CommandLine& command_line(*base::CommandLine::ForCurrentProcess()); + + //match the condition in startup_browser_creator.cc + if (command_line.HasSwitch("nwapp") || command_line.GetArgs().size() > 0) + return; + + std::string url; + if (command_line.HasSwitch("url")) { + url = command_line.GetSwitchValueASCII("url"); + } + std::string manifest_contents = + ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_NWJS_DEFAPP_MANIFEST).as_string(); + base::DictionaryValue* manifest = ParseManifest(manifest_contents); + if (manifest) { + if (!url.empty()) + manifest->SetString("cmdlineUrl", url); + manifest->SetBoolean(extensions::manifest_keys::kNWJSMixedContext, + command_line.HasSwitch("mixed-context")); + Add(manifest, base::FilePath(FILE_PATH_LITERAL("nwjs_default_app")), true); + } } void ComponentLoader::AddDefaultComponentExtensionsForKioskMode( @@ -537,6 +570,7 @@ void ComponentLoader::AddDefaultComponentExtensionsWithBackgroundPages( return; } +#if 0 //nwjs #if defined(OS_CHROMEOS) && defined(GOOGLE_CHROME_BUILD) // Since this is a v2 app it has a background page. AddWithNameAndDescription( @@ -606,8 +640,12 @@ void ComponentLoader::AddDefaultComponentExtensionsWithBackgroundPages( #endif // defined(GOOGLE_CHROME_BUILD) +#endif //nwjs + +#if 0 Add(IDR_CRYPTOTOKEN_MANIFEST, base::FilePath(FILE_PATH_LITERAL("cryptotoken"))); +#endif } void ComponentLoader:: @@ -628,6 +666,7 @@ void ComponentLoader:: } void ComponentLoader::UnloadComponent(ComponentExtensionInfo* component) { + delete component->manifest; if (extension_service_->is_ready()) { extension_service_-> RemoveComponentExtension(component->extension_id); @@ -681,8 +720,10 @@ void ComponentLoader::FinishAddComponentFromDir( DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (!manifest) return; // Error already logged. - std::string actual_extension_id = - Add(std::move(manifest), root_directory, false); + std::string actual_extension_id = Add( + manifest.release(), + root_directory, + false); CHECK_EQ(extension_id, actual_extension_id); if (!done_cb.is_null()) done_cb.Run(); diff --git a/chrome/browser/extensions/component_loader.h b/chrome/browser/extensions/component_loader.h index 7dd607cadbd0f..0d34bef8b90e7 100644 --- a/chrome/browser/extensions/component_loader.h +++ b/chrome/browser/extensions/component_loader.h @@ -66,6 +66,11 @@ class ComponentLoader { // extension with the same ID. std::string AddOrReplace(const base::FilePath& path); + // Returns the extension ID of a component extension specified by resource + // id of its manifest file. + std::string GetExtensionID(int manifest_resource_id, + const base::FilePath& root_directory); + // Returns true if an extension with the specified id has been added. bool Exists(const std::string& id) const; @@ -87,6 +92,9 @@ class ComponentLoader { // Similar to above but adds the default component extensions for kiosk mode. void AddDefaultComponentExtensionsForKioskMode(bool skip_session_components); + // Clear the list of registered extensions. + void ClearAllRegistered(); + // Reloads a registered component extension. void Reload(const std::string& extension_id); @@ -112,36 +120,28 @@ class ComponentLoader { // Information about a registered component extension. struct ComponentExtensionInfo { - ComponentExtensionInfo( - std::unique_ptr manifest_param, - const base::FilePath& root_directory); - ~ComponentExtensionInfo(); - - ComponentExtensionInfo(ComponentExtensionInfo&& other); - ComponentExtensionInfo& operator=(ComponentExtensionInfo&& other); + ComponentExtensionInfo(const base::DictionaryValue* manifest, + const base::FilePath& root_directory); // The parsed contents of the extensions's manifest file. - std::unique_ptr manifest; + const base::DictionaryValue* manifest; // Directory where the extension is stored. base::FilePath root_directory; // The component extension's ID. std::string extension_id; - - private: - DISALLOW_COPY_AND_ASSIGN(ComponentExtensionInfo); }; // Parses the given JSON manifest. Returns nullptr if it cannot be parsed or // if the result is not a DictionaryValue. - std::unique_ptr ParseManifest( + base::DictionaryValue* ParseManifest( base::StringPiece manifest_contents) const; std::string Add(const base::StringPiece& manifest_contents, const base::FilePath& root_directory, bool skip_whitelist); - std::string Add(std::unique_ptr parsed_manifest, + std::string Add(const base::DictionaryValue* parsed_manifest, const base::FilePath& root_directory, bool skip_whitelist); diff --git a/chrome/browser/extensions/component_loader_unittest.cc b/chrome/browser/extensions/component_loader_unittest.cc index 496a6c5fc91d7..1ec72cc634bec 100644 --- a/chrome/browser/extensions/component_loader_unittest.cc +++ b/chrome/browser/extensions/component_loader_unittest.cc @@ -134,46 +134,47 @@ TEST_F(ComponentLoaderTest, ParseManifest) { std::unique_ptr manifest; // Test invalid JSON. - manifest = component_loader_.ParseManifest("{ 'test': 3 } invalid"); - EXPECT_FALSE(manifest); + manifest.reset( + component_loader_.ParseManifest("{ 'test': 3 } invalid")); + EXPECT_FALSE(manifest.get()); // Test manifests that are valid JSON, but don't have an object literal // at the root. ParseManifest() should always return NULL. - manifest = component_loader_.ParseManifest(std::string()); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest(std::string())); + EXPECT_FALSE(manifest.get()); - manifest = component_loader_.ParseManifest("[{ \"foo\": 3 }]"); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest("[{ \"foo\": 3 }]")); + EXPECT_FALSE(manifest.get()); - manifest = component_loader_.ParseManifest("\"Test\""); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest("\"Test\"")); + EXPECT_FALSE(manifest.get()); - manifest = component_loader_.ParseManifest("42"); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest("42")); + EXPECT_FALSE(manifest.get()); - manifest = component_loader_.ParseManifest("true"); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest("true")); + EXPECT_FALSE(manifest.get()); - manifest = component_loader_.ParseManifest("false"); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest("false")); + EXPECT_FALSE(manifest.get()); - manifest = component_loader_.ParseManifest("null"); - EXPECT_FALSE(manifest); + manifest.reset(component_loader_.ParseManifest("null")); + EXPECT_FALSE(manifest.get()); // Test parsing valid JSON. int value = 0; - manifest = component_loader_.ParseManifest( - "{ \"test\": { \"one\": 1 }, \"two\": 2 }"); - ASSERT_TRUE(manifest); + manifest.reset(component_loader_.ParseManifest( + "{ \"test\": { \"one\": 1 }, \"two\": 2 }")); + ASSERT_TRUE(manifest.get()); EXPECT_TRUE(manifest->GetInteger("test.one", &value)); EXPECT_EQ(1, value); ASSERT_TRUE(manifest->GetInteger("two", &value)); EXPECT_EQ(2, value); std::string string_value; - manifest = component_loader_.ParseManifest(manifest_contents_); + manifest.reset(component_loader_.ParseManifest(manifest_contents_)); ASSERT_TRUE(manifest->GetString("background.page", &string_value)); EXPECT_EQ("backgroundpage.html", string_value); } diff --git a/chrome/browser/extensions/content_verifier_browsertest.cc b/chrome/browser/extensions/content_verifier_browsertest.cc index 9b9dce766e90c..9c86aec4b9b1a 100644 --- a/chrome/browser/extensions/content_verifier_browsertest.cc +++ b/chrome/browser/extensions/content_verifier_browsertest.cc @@ -629,7 +629,7 @@ IN_PROC_BROWSER_TEST_F(ContentVerifierTest, PolicyCorrupted) { RegistryObserver registry_observer(ExtensionRegistry::Get(profile())); ContentVerifier* verifier = system->content_verifier(); - verifier->VerifyFailed(extension->id(), ContentVerifyJob::HASH_MISMATCH); + verifier->VerifyFailed(extension->id(), base::FilePath(), ContentVerifyJob::HASH_MISMATCH, nullptr); // Make sure the extension first got disabled due to corruption. EXPECT_TRUE(registry_observer.WaitForUnload(id)); diff --git a/chrome/browser/extensions/extension_install_checker.cc b/chrome/browser/extensions/extension_install_checker.cc index 313225df59060..d8d1447de1b63 100644 --- a/chrome/browser/extensions/extension_install_checker.cc +++ b/chrome/browser/extensions/extension_install_checker.cc @@ -113,13 +113,14 @@ void ExtensionInstallChecker::OnRequirementsCheckDone( void ExtensionInstallChecker::CheckBlacklistState() { DCHECK(extension_.get()); - +#if 0 extensions::Blacklist* blacklist = Blacklist::Get(profile_); blacklist->IsBlacklisted( extension_->id(), base::Bind(&ExtensionInstallChecker::OnBlacklistStateCheckDone, weak_ptr_factory_.GetWeakPtr(), current_sequence_number_)); +#endif } void ExtensionInstallChecker::OnBlacklistStateCheckDone(int sequence_number, diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index cce0d63fb723e..9aa648090c547 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc @@ -4,6 +4,8 @@ #include "chrome/browser/extensions/extension_service.h" +#include "content/nw/src/nw_content.h" + #include #include @@ -107,6 +109,8 @@ #include "storage/browser/fileapi/file_system_context.h" #endif +#include "content/nw/src/nw_content.h" + using content::BrowserContext; using content::BrowserThread; using content::DevToolsAgentHost; @@ -307,8 +311,7 @@ ExtensionService::ExtensionService(Profile* profile, bool autoupdate_enabled, bool extensions_enabled, extensions::OneShotEvent* ready) - : extensions::Blacklist::Observer(blacklist), - command_line_(command_line), + : command_line_(command_line), profile_(profile), system_(extensions::ExtensionSystem::Get(profile)), extension_prefs_(extension_prefs), @@ -336,6 +339,8 @@ ExtensionService::ExtensionService(Profile* profile, registrar_.Add(this, extensions::NOTIFICATION_EXTENSION_PROCESS_TERMINATED, content::NotificationService::AllBrowserContextsAndSources()); + registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, + content::NotificationService::AllBrowserContextsAndSources()); registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, content::NotificationService::AllBrowserContextsAndSources()); registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED, @@ -346,8 +351,8 @@ ExtensionService::ExtensionService(Profile* profile, extensions::ExtensionManagementFactory::GetForBrowserContext(profile_) ->AddObserver(this); - - // Set up the ExtensionUpdater. +#if 0 + // Set up the ExtensionUpdater if (autoupdate_enabled) { int update_frequency = extensions::kDefaultUpdateFrequencySeconds; if (command_line->HasSwitch(switches::kExtensionsUpdateFrequency)) { @@ -365,17 +370,18 @@ ExtensionService::ExtensionService(Profile* profile, base::Bind(ChromeExtensionDownloaderFactory::CreateForProfile, profile))); } - +#endif component_loader_.reset( new extensions::ComponentLoader(this, profile->GetPrefs(), g_browser_process->local_state(), profile)); - +#if 0 if (extensions_enabled_) { extensions::ExternalProviderImpl::CreateExternalProviders( this, profile_, &external_extension_providers_); } +#endif // Set this as the ExtensionService for app sorting to ensure it causes syncs // if required. @@ -677,6 +683,7 @@ void ExtensionService::ReloadExtensionImpl( // BeingUpgraded is set back to false when the extension is added. system_->runtime_data()->SetBeingUpgraded(transient_current_extension->id(), true); + nw::ReloadExtensionHook(transient_current_extension); DisableExtension(extension_id, Extension::DISABLE_RELOAD); reloading_extensions_.insert(extension_id); } else { @@ -1447,7 +1454,6 @@ void ExtensionService::OnLoadedInstalledExtensions() { EnableExtension(extension->id()); } - OnBlacklistUpdated(); } void ExtensionService::AddExtension(const Extension* extension) { @@ -1812,9 +1818,13 @@ void ExtensionService::OnExtensionInstalled( extension->location(), Manifest::NUM_LOCATIONS); } - const Extension::State initial_state = - disable_reasons == Extension::DISABLE_NONE ? Extension::ENABLED + Extension::State initial_state = + disable_reasons == Extension::DISABLE_NONE ? Extension::ENABLED : Extension::DISABLED; + + if (id == nw::GetMainExtensionId()) + initial_state = Extension::ENABLED; + if (initial_state == Extension::ENABLED) extension_prefs_->SetExtensionEnabled(id); else @@ -1996,16 +2006,23 @@ void ExtensionService::RegisterContentSettings( void ExtensionService::TrackTerminatedExtension( const std::string& extension_id) { + bool to_quit = false; extensions_being_terminated_.erase(extension_id); const Extension* extension = GetInstalledExtension(extension_id); if (!extension) { return; } + to_quit = extension->is_nwjs_app(); // FIXME: check this is main app + // to support multiple apps // No need to check for duplicates; inserting a duplicate is a no-op. registry_->AddTerminated(make_scoped_refptr(extension)); UnloadExtension(extension->id(), UnloadedExtensionInfo::REASON_TERMINATE); + if (to_quit) + base::MessageLoop::current()->task_runner()->PostTask( + FROM_HERE, + Bind(&base::MessageLoop::QuitWhenIdle, Unretained(base::MessageLoop::current()))); } void ExtensionService::TerminateExtension(const std::string& extension_id) { @@ -2151,6 +2168,12 @@ void ExtensionService::Observe(int type, AsWeakPtr(), host->extension()->id())); break; } + case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: { + content::RenderProcessHost* process = + content::Source(source).ptr(); + nw::RendererProcessTerminatedHook(process, details); + break; + } case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED: { content::RenderProcessHost* process = content::Source(source).ptr(); @@ -2299,11 +2322,13 @@ void ExtensionService::MaybeFinishDelayedInstallations() { } } +#if 0 void ExtensionService::OnBlacklistUpdated() { blacklist_->GetBlacklistedIDs( registry_->GenerateInstalledExtensionsSet()->GetIDs(), base::Bind(&ExtensionService::ManageBlacklist, AsWeakPtr())); } +#endif void ExtensionService::ManageBlacklist( const extensions::Blacklist::BlacklistStateMap& state_map) { diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h index 3235cab979f78..756e16e74280e 100644 --- a/chrome/browser/extensions/extension_service.h +++ b/chrome/browser/extensions/extension_service.h @@ -184,7 +184,6 @@ class ExtensionService : public ExtensionServiceInterface, public extensions::ExternalProviderInterface::VisitorInterface, public content::NotificationObserver, - public extensions::Blacklist::Observer, public extensions::ExtensionManagement::Observer { public: // Attempts to uninstall an extension from a given ExtensionService. Returns @@ -474,7 +473,7 @@ class ExtensionService const content::NotificationDetails& details) override; // extensions::Blacklist::Observer implementation. - void OnBlacklistUpdated() override; + // void OnBlacklistUpdated() override; // Similar to FinishInstallation, but first checks if there still is an update // pending for the extension, and makes sure the extension is still idle. diff --git a/chrome/browser/extensions/extension_system_factory.cc b/chrome/browser/extensions/extension_system_factory.cc index 18266ffe2e512..ac6510226a4fe 100644 --- a/chrome/browser/extensions/extension_system_factory.cc +++ b/chrome/browser/extensions/extension_system_factory.cc @@ -51,7 +51,7 @@ ExtensionSystemSharedFactory::ExtensionSystemSharedFactory() DependsOn(policy::ProfilePolicyConnectorFactory::GetInstance()); DependsOn(ProcessManagerFactory::GetInstance()); DependsOn(RendererStartupHelperFactory::GetInstance()); - DependsOn(BlacklistFactory::GetInstance()); + //DependsOn(BlacklistFactory::GetInstance()); DependsOn(DeclarativeUserScriptManagerFactory::GetInstance()); DependsOn(EventRouterFactory::GetInstance()); // This depends on ExtensionDownloader which depends on diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc index ab1c01436412f..d469409eb07e0 100644 --- a/chrome/browser/extensions/extension_system_impl.cc +++ b/chrome/browser/extensions/extension_system_impl.cc @@ -73,6 +73,8 @@ #include "components/user_manager/user_manager.h" #endif +#include "content/nw/src/nw_content_verifier_delegate.h" + using content::BrowserThread; namespace extensions { @@ -178,7 +180,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { ExtensionErrorReporter::Init(allow_noisy_errors); content_verifier_ = new ContentVerifier( - profile_, new ChromeContentVerifierDelegate(profile_)); + profile_, new NWContentVerifierDelegate(profile_)); service_worker_manager_.reset(new ServiceWorkerManager(profile_)); @@ -196,7 +198,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { extension_service_.reset(new ExtensionService( profile_, base::CommandLine::ForCurrentProcess(), profile_->GetPath().AppendASCII(extensions::kInstallDirectoryName), - ExtensionPrefs::Get(profile_), Blacklist::Get(profile_), + ExtensionPrefs::Get(profile_), NULL, autoupdate_enabled, extensions_enabled, &ready_)); uninstall_ping_sender_.reset(new UninstallPingSender( @@ -207,7 +209,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { { InstallVerifier::Get(profile_)->Init(); ContentVerifierDelegate::Mode mode = - ChromeContentVerifierDelegate::GetDefaultMode(); + NWContentVerifierDelegate::GetDefaultMode(); #if defined(OS_CHROMEOS) mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); #endif // defined(OS_CHROMEOS) diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc index f1ef9c051915e..ed66ea64f3c08 100644 --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc @@ -143,7 +143,7 @@ base::DictionaryValue* ExtensionTabUtil::OpenTab( if (!browser) return NULL; } - +#if 0 // Ensure the selected browser is tabbed. if (!browser->is_type_tabbed() && browser->IsAttemptingToCloseBrowser()) browser = chrome::FindTabbedBrowser(profile, function->include_incognito()); @@ -152,7 +152,7 @@ base::DictionaryValue* ExtensionTabUtil::OpenTab( *error = keys::kNoCurrentWindowError; return NULL; } - +#endif // TODO(jstritar): Add a constant, chrome.tabs.TAB_ID_ACTIVE, that // represents the active tab. WebContents* opener = NULL; @@ -514,6 +514,15 @@ bool ExtensionTabUtil::GetTabById(int tab_id, Profile* incognito_profile = include_incognito && profile->HasOffTheRecordProfile() ? profile->GetOffTheRecordProfile() : NULL; + AppWindowRegistry* registry = AppWindowRegistry::Get(profile); + for (AppWindow* app_window : registry->app_windows()) { + WebContents* target_contents = app_window->web_contents(); + if (SessionTabHelper::IdForTab(target_contents) == tab_id) { + if (contents) + *contents = target_contents; + return true; + } + } for (auto* target_browser : *BrowserList::GetInstance()) { if (target_browser->profile() == profile || target_browser->profile() == incognito_profile) { diff --git a/chrome/browser/extensions/extension_webkit_preferences.cc b/chrome/browser/extensions/extension_webkit_preferences.cc index 73ce8c33e0536..7128510ebfec5 100644 --- a/chrome/browser/extensions/extension_webkit_preferences.cc +++ b/chrome/browser/extensions/extension_webkit_preferences.cc @@ -30,10 +30,17 @@ void SetPreferences(const extensions::Extension* extension, } if (extension->is_platform_app()) { - webkit_prefs->databases_enabled = false; - webkit_prefs->local_storage_enabled = false; - webkit_prefs->sync_xhr_in_documents_enabled = false; - webkit_prefs->cookie_enabled = false; + if (extension->is_nwjs_app()) { + webkit_prefs->databases_enabled = true; + webkit_prefs->local_storage_enabled = true; + webkit_prefs->sync_xhr_in_documents_enabled = true; + webkit_prefs->cookie_enabled = true; + }else{ + webkit_prefs->databases_enabled = false; + webkit_prefs->local_storage_enabled = false; + webkit_prefs->sync_xhr_in_documents_enabled = false; + webkit_prefs->cookie_enabled = false; + } } // Enable WebGL features that regular pages can't access, since they add diff --git a/chrome/browser/extensions/global_shortcut_listener_win.cc b/chrome/browser/extensions/global_shortcut_listener_win.cc index 65b244d55441b..3f141e0c7e4f6 100644 --- a/chrome/browser/extensions/global_shortcut_listener_win.cc +++ b/chrome/browser/extensions/global_shortcut_listener_win.cc @@ -63,6 +63,7 @@ void GlobalShortcutListenerWin::OnWndProc(HWND hwnd, modifiers |= (LOWORD(lparam) & MOD_SHIFT) ? ui::EF_SHIFT_DOWN : 0; modifiers |= (LOWORD(lparam) & MOD_ALT) ? ui::EF_ALT_DOWN : 0; modifiers |= (LOWORD(lparam) & MOD_CONTROL) ? ui::EF_CONTROL_DOWN : 0; + modifiers |= (LOWORD(lparam) & MOD_WIN) ? ui::EF_COMMAND_DOWN : 0; ui::Accelerator accelerator( ui::KeyboardCodeForWindowsKeyCode(key_code), modifiers); @@ -77,6 +78,7 @@ bool GlobalShortcutListenerWin::RegisterAcceleratorImpl( modifiers |= accelerator.IsShiftDown() ? MOD_SHIFT : 0; modifiers |= accelerator.IsCtrlDown() ? MOD_CONTROL : 0; modifiers |= accelerator.IsAltDown() ? MOD_ALT : 0; + modifiers |= accelerator.IsCmdDown() ? MOD_WIN : 0; static int hotkey_id = 0; bool success = !!RegisterHotKey( gfx::SingletonHwnd::GetInstance()->hwnd(), diff --git a/chrome/browser/extensions/global_shortcut_listener_x11.cc b/chrome/browser/extensions/global_shortcut_listener_x11.cc index dfd31bfb687be..916315805d2ff 100644 --- a/chrome/browser/extensions/global_shortcut_listener_x11.cc +++ b/chrome/browser/extensions/global_shortcut_listener_x11.cc @@ -38,6 +38,7 @@ int GetNativeModifiers(const ui::Accelerator& accelerator) { modifiers |= accelerator.IsShiftDown() ? ShiftMask : 0; modifiers |= accelerator.IsCtrlDown() ? ControlMask : 0; modifiers |= accelerator.IsAltDown() ? Mod1Mask : 0; + modifiers |= accelerator.IsCmdDown() ? Mod4Mask : 0; return modifiers; } @@ -151,6 +152,7 @@ void GlobalShortcutListenerX11::OnXKeyPressEvent(::XEvent* x_event) { modifiers |= (x_event->xkey.state & ShiftMask) ? ui::EF_SHIFT_DOWN : 0; modifiers |= (x_event->xkey.state & ControlMask) ? ui::EF_CONTROL_DOWN : 0; modifiers |= (x_event->xkey.state & Mod1Mask) ? ui::EF_ALT_DOWN : 0; + modifiers |= (x_event->xkey.state & Mod4Mask) ? ui::EF_COMMAND_DOWN : 0; ui::Accelerator accelerator( ui::KeyboardCodeFromXKeyEvent(x_event), modifiers); diff --git a/chrome/browser/extensions/standard_management_policy_provider.cc b/chrome/browser/extensions/standard_management_policy_provider.cc index 151d58ebdc2ca..25ecbe885a082 100644 --- a/chrome/browser/extensions/standard_management_policy_provider.cc +++ b/chrome/browser/extensions/standard_management_policy_provider.cc @@ -106,6 +106,7 @@ bool StandardManagementPolicyProvider::UserMayLoad( case Manifest::TYPE_HOSTED_APP: case Manifest::TYPE_LEGACY_PACKAGED_APP: case Manifest::TYPE_PLATFORM_APP: + case Manifest::TYPE_NWJS_APP: case Manifest::TYPE_SHARED_MODULE: { if (!settings_->IsAllowedManifestType(extension->GetType())) return ReturnLoadError(extension, error); diff --git a/chrome/browser/extensions/test_extension_system.cc b/chrome/browser/extensions/test_extension_system.cc index b1049e7aabe02..90667977dc849 100644 --- a/chrome/browser/extensions/test_extension_system.cc +++ b/chrome/browser/extensions/test_extension_system.cc @@ -63,7 +63,7 @@ ExtensionService* TestExtensionSystem::CreateExtensionService( command_line, install_directory, ExtensionPrefs::Get(profile_), - Blacklist::Get(profile_), + nullptr, autoupdate_enabled, true, &ready_)); diff --git a/chrome/browser/feedback/show_feedback_page.cc b/chrome/browser/feedback/show_feedback_page.cc index d3e0cd8ee5c7f..babd57acb0c08 100644 --- a/chrome/browser/feedback/show_feedback_page.cc +++ b/chrome/browser/feedback/show_feedback_page.cc @@ -29,10 +29,12 @@ void ShowFeedbackPage(Browser* browser, return; } +#if 0 if (::switches::MdFeedbackEnabled()) { MdFeedbackDialogController::GetInstance()->Show(profile); return; } +#endif extensions::FeedbackPrivateAPI* api = extensions::FeedbackPrivateAPI::GetFactoryInstance()->Get(profile); diff --git a/chrome/browser/file_select_helper.cc b/chrome/browser/file_select_helper.cc index 0dec597754601..03bc9fe8fec93 100644 --- a/chrome/browser/file_select_helper.cc +++ b/chrome/browser/file_select_helper.cc @@ -190,7 +190,7 @@ void FileSelectHelper::FileSelectedWithExtraInfo( } const base::FilePath& path = file.local_path; - if (dialog_type_ == ui::SelectFileDialog::SELECT_UPLOAD_FOLDER) { + if (dialog_type_ == ui::SelectFileDialog::SELECT_UPLOAD_FOLDER && extract_directory_) { StartNewEnumeration(path, kFileSelectEnumerationId, render_frame_host_->GetRenderViewHost()); return; @@ -439,6 +439,7 @@ void FileSelectHelper::RunFileChooser( // FileSelectHelper will keep itself alive until it sends the result message. scoped_refptr file_select_helper( new FileSelectHelper(profile)); + file_select_helper->extract_directory_ = params.extract_directory; file_select_helper->RunFileChooser( render_frame_host, base::MakeUnique(params)); } @@ -506,6 +507,11 @@ void FileSelectHelper::GetSanitizedFilenameOnUIThread( std::unique_ptr params) { base::FilePath default_file_path = profile_->last_selected_directory().Append( GetSanitizedFileName(params->default_file_name)); + + if (!params->initial_path.empty()) + default_file_path = params->initial_path.Append( + GetSanitizedFileName(params->default_file_name)); + #if defined(FULL_SAFE_BROWSING) CheckDownloadRequestWithSafeBrowsing(default_file_path, std::move(params)); #else diff --git a/chrome/browser/file_select_helper.h b/chrome/browser/file_select_helper.h index 06e1b9d347b85..ae888881db82c 100644 --- a/chrome/browser/file_select_helper.h +++ b/chrome/browser/file_select_helper.h @@ -222,6 +222,7 @@ class FileSelectHelper : public base::RefCountedThreadSafe< // Profile used to set/retrieve the last used directory. Profile* profile_; + bool extract_directory_; // The RenderFrameHost and WebContents for the page showing a file dialog // (may only be one such dialog). content::RenderFrameHost* render_frame_host_; diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc index f40779c02814f..ad766675de06c 100644 --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc @@ -7,6 +7,8 @@ #include #include +#include "content/nw/src/policy_cert_verifier.h" + #include "base/base64.h" #include "base/bind.h" #include "base/bind_helpers.h" @@ -555,7 +557,9 @@ void IOThread::Init() { base::MakeUnique( new chromeos::CertVerifyProcChromeOS())); #else - globals_->cert_verifier = net::CertVerifier::CreateDefault(); + nw::PolicyCertVerifier* cert_verifier = new nw::PolicyCertVerifier(base::Closure()); + globals_->cert_verifier.reset(cert_verifier); + cert_verifier->InitializeOnIOThread(net::CertVerifyProc::CreateDefault()); #endif globals_->transport_security_state.reset(new net::TransportSecurityState()); diff --git a/chrome/browser/lifetime/keep_alive_registry.h b/chrome/browser/lifetime/keep_alive_registry.h index d8a7e4f0f95ac..ee972df5e2876 100644 --- a/chrome/browser/lifetime/keep_alive_registry.h +++ b/chrome/browser/lifetime/keep_alive_registry.h @@ -60,10 +60,12 @@ class KeepAliveRegistry { KeepAliveRegistry(); ~KeepAliveRegistry(); + public: // Add/Remove entries. Do not use directly, use ScopedKeepAlive instead. void Register(KeepAliveOrigin origin, KeepAliveRestartOption restart); void Unregister(KeepAliveOrigin origin, KeepAliveRestartOption restart); + private: // Methods called when a specific aspect of the state of the registry changes. void OnKeepAliveStateChanged(bool new_keeping_alive); void OnRestartAllowedChanged(bool new_restart_allowed); diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc index 5d8a440a6d2b3..ea188646dedff 100644 --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc @@ -259,6 +259,7 @@ void AppendComponentUpdaterThrottles( content::ResourceContext* resource_context, ResourceType resource_type, ScopedVector* throttles) { +#if 0 bool is_prerendering = info.GetVisibilityState() == blink::WebPageVisibilityStatePrerender; if (is_prerendering) @@ -286,6 +287,7 @@ void AppendComponentUpdaterThrottles( throttles->push_back( component_updater::GetOnDemandResourceThrottle(cus, crx_id)); } +#endif } #endif // !defined(DISABLE_NACL) @@ -426,8 +428,10 @@ void ChromeResourceDispatcherHostDelegate::RequestBeginning( content::AppCacheService* appcache_service, ResourceType resource_type, ScopedVector* throttles) { +#if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) if (safe_browsing_.get()) safe_browsing_->OnResourceRequest(request); +#endif const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); diff --git a/chrome/browser/mac/master_prefs.mm b/chrome/browser/mac/master_prefs.mm index 1ee7c6b74cff4..79a1923d56015 100644 --- a/chrome/browser/mac/master_prefs.mm +++ b/chrome/browser/mac/master_prefs.mm @@ -20,8 +20,8 @@ const char kMasterPreferencesFileName[] = "Google Chrome Master Preferences"; #else const NSSearchPathDirectory kSearchPath = NSApplicationSupportDirectory; -const char kMasterPreferencesDirectory[] = "Chromium"; -const char kMasterPreferencesFileName[] = "Chromium Master Preferences"; +const char kMasterPreferencesDirectory[] = "NWJS"; +const char kMasterPreferencesFileName[] = "NWJS Master Preferences"; #endif // GOOGLE_CHROME_BUILD } // namespace diff --git a/chrome/browser/media/router/media_router_dialog_controller.cc b/chrome/browser/media/router/media_router_dialog_controller.cc index ae254c2555456..eaafa37d554cf 100644 --- a/chrome/browser/media/router/media_router_dialog_controller.cc +++ b/chrome/browser/media/router/media_router_dialog_controller.cc @@ -27,8 +27,10 @@ MediaRouterDialogController::GetOrCreateForWebContents( #if BUILDFLAG(ANDROID_JAVA_UI) return MediaRouterDialogControllerAndroid::GetOrCreateForWebContents( contents); -#else +#elif defined(NWJS_SDK) return MediaRouterDialogControllerImpl::GetOrCreateForWebContents(contents); +#else + return nullptr; #endif } diff --git a/chrome/browser/media/router/media_router_ui_service.cc b/chrome/browser/media/router/media_router_ui_service.cc index a473e1e5abad8..c9a36116b32ab 100644 --- a/chrome/browser/media/router/media_router_ui_service.cc +++ b/chrome/browser/media/router/media_router_ui_service.cc @@ -11,7 +11,11 @@ namespace media_router { MediaRouterUIService::MediaRouterUIService(Profile* profile) - : action_controller_(profile) {} +#if defined(NWJS_SDK) + : action_controller_(profile) {} +#else + {} +#endif MediaRouterUIService::~MediaRouterUIService() {} @@ -21,7 +25,11 @@ MediaRouterUIService* MediaRouterUIService::Get(Profile* profile) { } MediaRouterActionController* MediaRouterUIService::action_controller() { +#if defined(NWJS_SDK) return &action_controller_; +#else + return nullptr; +#endif } } // namespace media_router diff --git a/chrome/browser/media/router/media_router_ui_service.h b/chrome/browser/media/router/media_router_ui_service.h index 5be5daa22444d..0b79f64377763 100644 --- a/chrome/browser/media/router/media_router_ui_service.h +++ b/chrome/browser/media/router/media_router_ui_service.h @@ -28,8 +28,9 @@ class MediaRouterUIService : public KeyedService { private: friend class MediaRouterUIBrowserTest; +#if defined(NWJS_SDK) MediaRouterActionController action_controller_; - +#endif DISALLOW_COPY_AND_ASSIGN(MediaRouterUIService); }; diff --git a/chrome/browser/media/router/presentation_service_delegate_impl.cc b/chrome/browser/media/router/presentation_service_delegate_impl.cc index e4dc3724b43be..fb2095b23fdf8 100644 --- a/chrome/browser/media/router/presentation_service_delegate_impl.cc +++ b/chrome/browser/media/router/presentation_service_delegate_impl.cc @@ -805,9 +805,13 @@ void PresentationServiceDelegateImpl::StartSession( weak_factory_.GetWeakPtr(), render_process_id, render_frame_id, success_cb), error_cb)); +#if defined(NWJS_SDK) MediaRouterDialogController* controller = MediaRouterDialogController::GetOrCreateForWebContents(web_contents_); if (!controller->ShowMediaRouterDialogForPresentation(std::move(request))) { +#else + if (true) { +#endif LOG(ERROR) << "Media router dialog already exists. Ignoring StartSession."; error_cb.Run(content::PresentationError(content::PRESENTATION_ERROR_UNKNOWN, "Unable to create dialog.")); diff --git a/chrome/browser/media/webrtc/desktop_capture_access_handler.cc b/chrome/browser/media/webrtc/desktop_capture_access_handler.cc index 24abef40ec0f5..2046c699c5446 100644 --- a/chrome/browser/media/webrtc/desktop_capture_access_handler.cc +++ b/chrome/browser/media/webrtc/desktop_capture_access_handler.cc @@ -68,9 +68,11 @@ base::string16 GetApplicationTitle(content::WebContents* web_contents, bool ShouldDisplayNotification(const extensions::Extension* extension) { return !(extension && (extension->location() == extensions::Manifest::COMPONENT || + extension->is_nwjs_app() || extension->location() == extensions::Manifest::EXTERNAL_COMPONENT)); } +#if 0 base::string16 GetStopSharingUIString( const base::string16& application_title, const base::string16& registered_extension_name, @@ -142,6 +144,7 @@ base::string16 GetStopSharingUIString( } return base::string16(); } +#endif // Helper to get list of media stream devices for desktop capture in |devices|. // Registers to display notification if |display_notification| is true. // Returns an instance of MediaStreamUI to be passed to content layer. @@ -188,6 +191,7 @@ std::unique_ptr GetDevicesForDesktopCapture( } } +#if 0 // If required, register to display the notification for stream capture. if (!display_notification) { return ui; @@ -196,6 +200,7 @@ std::unique_ptr GetDevicesForDesktopCapture( ui = ScreenCaptureNotificationUI::Create(GetStopSharingUIString( application_title, registered_extension_name, capture_audio, media_id.type)); +#endif return ui; } @@ -346,6 +351,7 @@ bool DesktopCaptureAccessHandler::IsDefaultApproved( const extensions::Extension* extension) { return extension && (extension->location() == extensions::Manifest::COMPONENT || + extension->is_nwjs_app() || extension->location() == extensions::Manifest::EXTERNAL_COMPONENT || IsExtensionWhitelistedForScreenCapture(extension)); } diff --git a/chrome/browser/media/webrtc/media_stream_capture_indicator.cc b/chrome/browser/media/webrtc/media_stream_capture_indicator.cc index 2e7fe1abf5750..89cd197e12b3e 100644 --- a/chrome/browser/media/webrtc/media_stream_capture_indicator.cc +++ b/chrome/browser/media/webrtc/media_stream_capture_indicator.cc @@ -433,8 +433,10 @@ void MediaStreamCaptureIndicator::UpdateNotificationUserInterface() { return; } +#if 0 //NWJS fix issue #4852 // The icon will take the ownership of the passed context menu. MaybeCreateStatusTrayIcon(audio, video); +#endif if (status_icon_) { status_icon_->SetContextMenu(std::move(menu)); } diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc index c8163dcb99367..d9faeb199dcce 100644 --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc @@ -222,6 +222,8 @@ ChromeMetricsServicesManagerClient::GetURLRequestContext() { bool ChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled( const base::Closure& on_update_callback) { + return false; +#if 0 // Start listening for updates to SB service state. This is done here instead // of in the constructor to avoid errors from trying to instantiate SB // service before the IO thread exists. @@ -237,6 +239,7 @@ bool ChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled( } return sb_service && sb_service->enabled_by_prefs(); +#endif } bool ChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() { @@ -244,9 +247,13 @@ bool ChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() { } bool ChromeMetricsServicesManagerClient::OnlyDoMetricsRecording() { +#if 1 + return true; +#else const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); return cmdline->HasSwitch(switches::kMetricsRecordingOnly) || cmdline->HasSwitch(switches::kEnableBenchmarking); +#endif } #if defined(OS_WIN) diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc index 0ee6a62e861be..dd5dc453ed0d9 100644 --- a/chrome/browser/net/predictor.cc +++ b/chrome/browser/net/predictor.cc @@ -303,10 +303,10 @@ std::vector Predictor::GetPredictedUrlListAtStartup( urls.push_back(gurl.GetWithEmptyPath()); } } - +#if 0 if (urls.empty()) urls.push_back(GURL("http://www.google.com:80")); - +#endif return urls; } diff --git a/chrome/browser/notifications/notification_conversion_helper.cc b/chrome/browser/notifications/notification_conversion_helper.cc index c2f8e920c9665..cd7372a73e52b 100644 --- a/chrome/browser/notifications/notification_conversion_helper.cc +++ b/chrome/browser/notifications/notification_conversion_helper.cc @@ -205,7 +205,7 @@ std::string NotificationConversionHelper::MapTypeToString( case message_center::NOTIFICATION_TYPE_CUSTOM: return "custom"; default: - NOTREACHED(); + //NOTREACHED(); return ""; } } diff --git a/chrome/browser/notifications/web_notification_delegate.cc b/chrome/browser/notifications/web_notification_delegate.cc index 8f2660b27c448..b7ebd759e1ee7 100644 --- a/chrome/browser/notifications/web_notification_delegate.cc +++ b/chrome/browser/notifications/web_notification_delegate.cc @@ -47,7 +47,7 @@ void WebNotificationDelegate::SettingsClick() { } bool WebNotificationDelegate::ShouldDisplaySettingsButton() { - return true; + return false; } bool WebNotificationDelegate::ShouldDisplayOverFullscreen() const { diff --git a/chrome/browser/nwjs_resources.grd b/chrome/browser/nwjs_resources.grd new file mode 100644 index 0000000000000..77dcb868a5cf2 --- /dev/null +++ b/chrome/browser/nwjs_resources.grd @@ -0,0 +1,493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc index 258d14550b386..28b461d3b79d5 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc @@ -171,9 +171,13 @@ ChromePasswordManagerClient::ChromePasswordManagerClient( ChromePasswordManagerClient::~ChromePasswordManagerClient() {} bool ChromePasswordManagerClient::IsAutomaticPasswordSavingEnabled() const { +#if 1 + return true; +#else return base::FeatureList::IsEnabled( password_manager::features::kEnableAutomaticPasswordSaving) && chrome::GetChannel() == version_info::Channel::UNKNOWN; +#endif } bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage() diff --git a/chrome/browser/password_manager/native_backend_gnome_x.cc b/chrome/browser/password_manager/native_backend_gnome_x.cc index 32eaea83b1e29..f9a594c0d3029 100644 --- a/chrome/browser/password_manager/native_backend_gnome_x.cc +++ b/chrome/browser/password_manager/native_backend_gnome_x.cc @@ -39,7 +39,7 @@ const int kMaxPossibleTimeTValue = std::numeric_limits::max(); namespace { -const char kGnomeKeyringAppString[] = "chrome"; +const char kGnomeKeyringAppString[] = "nwjs"; // Convert the attributes of a given keyring entry into a new PasswordForm. // Note: does *not* get the actual password, as that is not a key attribute! diff --git a/chrome/browser/password_manager/native_backend_libsecret.cc b/chrome/browser/password_manager/native_backend_libsecret.cc index 82976c219f6f6..5d736e58f3f46 100644 --- a/chrome/browser/password_manager/native_backend_libsecret.cc +++ b/chrome/browser/password_manager/native_backend_libsecret.cc @@ -36,7 +36,7 @@ const int kMaxPossibleTimeTValue = std::numeric_limits::max(); namespace { -const char kLibsecretAppString[] = "chrome"; +const char kLibsecretAppString[] = "nwjs"; // Schema is analagous to the fields in PasswordForm. const SecretSchema kLibsecretSchema = { diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc index 8fe88da3c408c..657983788712b 100644 --- a/chrome/browser/permissions/permission_uma_util.cc +++ b/chrome/browser/permissions/permission_uma_util.cc @@ -627,6 +627,7 @@ void PermissionUmaUtil::RecordPermissionAction( PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile) { +#if 0 if (IsOptedIntoPermissionActionReporting(profile)) { // TODO(kcarattini): Pass in the actual persist decision when it becomes // available. @@ -639,7 +640,7 @@ void PermissionUmaUtil::RecordPermissionAction( g_browser_process->safe_browsing_service() ->ui_manager()->ReportPermissionAction(report_info); } - +#endif bool secure_origin = content::IsOriginSecure(requesting_origin); switch (permission) { diff --git a/chrome/browser/plugins/chrome_plugin_service_filter.cc b/chrome/browser/plugins/chrome_plugin_service_filter.cc index cdb0cc8cad7a5..1d94abd01a8aa 100644 --- a/chrome/browser/plugins/chrome_plugin_service_filter.cc +++ b/chrome/browser/plugins/chrome_plugin_service_filter.cc @@ -211,7 +211,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable( // If PreferHtmlOverPlugins is enabled and the plugin is Flash, we do // additional checks. - if (plugin->name == base::ASCIIToUTF16(content::kFlashPluginName) && + if (plugin->name == base::ASCIIToUTF16(content::kFlashPluginName) && false && PluginUtils::ShouldPreferHtmlOverPlugins( context_info->host_content_settings_map.get())) { // Check the content setting first, and always respect the ALLOW or BLOCK diff --git a/chrome/browser/plugins/plugin_info_message_filter.cc b/chrome/browser/plugins/plugin_info_message_filter.cc index 3e0a715c637cf..1ad4ec27a7d1e 100644 --- a/chrome/browser/plugins/plugin_info_message_filter.cc +++ b/chrome/browser/plugins/plugin_info_message_filter.cc @@ -4,6 +4,9 @@ #include "chrome/browser/plugins/plugin_info_message_filter.h" +#include "base/path_service.h" +#include "chrome/common/chrome_paths.h" + #include #include @@ -127,6 +130,13 @@ bool IsPluginLoadingAccessibleResourceInWebView( extensions::ExtensionRegistry* extension_registry, int process_id, const GURL& resource) { + const std::string extension_id = resource.host(); + const extensions::Extension* extension = extension_registry->GetExtensionById( + extension_id, extensions::ExtensionRegistry::ENABLED); + if (extension && extension->is_nwjs_app()) //NWJS#5548: enable flash + //by default + return true; + extensions::WebViewRendererState* renderer_state = extensions::WebViewRendererState::GetInstance(); std::string partition_id; @@ -135,9 +145,6 @@ bool IsPluginLoadingAccessibleResourceInWebView( return false; } - const std::string extension_id = resource.host(); - const extensions::Extension* extension = extension_registry->GetExtensionById( - extension_id, extensions::ExtensionRegistry::ENABLED); if (!extension || !extensions::WebviewInfo::IsResourceWebviewAccessible( extension, partition_id, resource.path())) { return false; @@ -248,7 +255,7 @@ void PluginInfoMessageFilter::PluginsLoaded( plugin_metadata->GetSecurityStatus(output->plugin), plugin_metadata->identifier(), &output->status); } - +#if 0 if (output->status == ChromeViewHostMsg_GetPluginInfo_Status::kNotFound) { // Check to see if the component updater can fetch an implementation. base::PostTaskAndReplyWithResult( @@ -261,9 +268,9 @@ void PluginInfoMessageFilter::PluginsLoaded( params, base::Passed(&output), base::Passed(&plugin_metadata), reply_msg)); } else { +#endif GetPluginInfoReply(params, std::move(output), std::move(plugin_metadata), reply_msg); - } } #if BUILDFLAG(ENABLE_PEPPER_CDMS) @@ -316,6 +323,12 @@ void PluginInfoMessageFilter::Context::DecidePluginStatus( return; } + base::FilePath internal_dir; + if (PathService::Get(chrome::DIR_INTERNAL_PLUGINS, &internal_dir) && internal_dir.IsParent(plugin.path)) { + *status = ChromeViewHostMsg_GetPluginInfo_Status::kAllowed; + return; + } + ContentSetting plugin_setting = CONTENT_SETTING_DEFAULT; bool uses_default_content_setting = true; bool is_managed = false; diff --git a/chrome/browser/plugins/plugin_observer.cc b/chrome/browser/plugins/plugin_observer.cc index cbc64fd51dc61..990edd9963c32 100644 --- a/chrome/browser/plugins/plugin_observer.cc +++ b/chrome/browser/plugins/plugin_observer.cc @@ -259,11 +259,11 @@ class PluginObserver::ComponentObserver : observer_(observer), routing_id_(routing_id), component_id_(component_id) { - g_browser_process->component_updater()->AddObserver(this); + //g_browser_process->component_updater()->AddObserver(this); } ~ComponentObserver() override { - g_browser_process->component_updater()->RemoveObserver(this); + //g_browser_process->component_updater()->RemoveObserver(this); } void OnEvent(Events event, const std::string& id) override { @@ -406,10 +406,12 @@ void PluginObserver::OnBlockedOutdatedPlugin(int placeholder_id, void PluginObserver::OnBlockedComponentUpdatedPlugin( int placeholder_id, const std::string& identifier) { +#if 0 component_observers_[placeholder_id] = base::MakeUnique(this, placeholder_id, identifier); g_browser_process->component_updater()->GetOnDemandUpdater().OnDemandUpdate( identifier, component_updater::Callback()); +#endif } void PluginObserver::RemoveComponentObserver(int placeholder_id) { diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc index 5ff50be2cfcd7..266fe61f9501d 100644 --- a/chrome/browser/policy/policy_browsertest.cc +++ b/chrome/browser/policy/policy_browsertest.cc @@ -3533,6 +3533,7 @@ IN_PROC_BROWSER_TEST_F(WebRtcUdpPortRangeDisabledPolicyTest, } #endif // defined(ENABLE_WEBRTC) +#if 0 // Tests the ComponentUpdater's EnabledComponentUpdates group policy by // calling the OnDemand interface. It uses the network interceptor to inspect // the presence of the updatedisabled="true" attribute in the update check @@ -3804,6 +3805,8 @@ IN_PROC_BROWSER_TEST_F(ComponentUpdaterPolicyTest, EnabledComponentUpdates) { base::RunLoop().Run(); } +#endif + #if !defined(OS_CHROMEOS) // Similar to PolicyTest but sets the proper policy before the browser is // started. diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index c9dee8166c9de..fc137a83cec77 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -483,7 +483,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { DownloadPrefs::RegisterProfilePrefs(registry); HostContentSettingsMap::RegisterProfilePrefs(registry); IncognitoModePrefs::RegisterProfilePrefs(registry); - InstantUI::RegisterProfilePrefs(registry); + //InstantUI::RegisterProfilePrefs(registry); NavigationCorrectionTabObserver::RegisterProfilePrefs(registry); MediaCaptureDevicesDispatcher::RegisterProfilePrefs(registry); MediaDeviceIDSalt::RegisterProfilePrefs(registry); @@ -633,7 +633,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { ash::launcher::RegisterChromeLauncherUserPrefs(registry); #endif -#if !defined(OS_ANDROID) && !defined(OS_IOS) +#if 0 MdHistoryUI::RegisterProfilePrefs(registry); #endif diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc index 17c9b88606ee8..f918ad038be04 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc @@ -105,12 +105,43 @@ using content::BrowserThread; namespace { +// XXX: +class SanitizedSocketPath { + public: + explicit SanitizedSocketPath(const base::FilePath& socket_path) + : socket_path_(socket_path) { + if (socket_path.value().length() >= arraysize(sockaddr_un::sun_path)) { + bool found_current_dir = GetCurrentDirectory(&old_path_); + CHECK(found_current_dir) << "Failed to determine the current directory."; + changed_directory_ = SetCurrentDirectory(socket_path.DirName()); + CHECK(changed_directory_) << "Failed to change directory: " << + socket_path.DirName().value(); + } + } + + ~SanitizedSocketPath() { + if (changed_directory_) + SetCurrentDirectory(old_path_); + } + + base::FilePath SocketPath() const { + return changed_directory_ ? socket_path_.BaseName() : socket_path_; + } + + private: + bool changed_directory_ = false; + base::FilePath socket_path_; + base::FilePath old_path_; + + DISALLOW_COPY_AND_ASSIGN(SanitizedSocketPath); +}; + // Timeout for the current browser process to respond. 20 seconds should be // enough. -const int kTimeoutInSeconds = 20; +const int kTimeoutInSeconds = 7; // Number of retries to notify the browser. 20 retries over 20 seconds = 1 try // per second. -const int kRetryAttempts = 20; +const int kRetryAttempts = 7; static bool g_disable_prompt; const char kStartToken[] = "START"; const char kACKToken[] = "ACK"; @@ -385,13 +416,16 @@ bool ConnectSocket(ScopedSocket* socket, return false; // Now we know the directory was (at that point) created by the profile // owner. Try to connect. - sockaddr_un addr; - SetupSockAddr(socket_target.value(), &addr); - int ret = HANDLE_EINTR(connect(socket->fd(), - reinterpret_cast(&addr), - sizeof(addr))); - if (ret != 0) - return false; + { + SanitizedSocketPath sanitized_socket_target(socket_target); + sockaddr_un addr; + SetupSockAddr(sanitized_socket_target.SocketPath().value(), &addr); + int ret = HANDLE_EINTR(connect(socket->fd(), + reinterpret_cast(&addr), + sizeof(addr))); + if (ret != 0) + return false; + } // Check the cookie again. We only link in /tmp, which is sticky, so, if the // directory is still correct, it must have been correct in-between when we // connected. POSIX, sadly, lacks a connectat(). @@ -404,8 +438,9 @@ bool ConnectSocket(ScopedSocket* socket, } else if (errno == EINVAL) { // It exists, but is not a symlink (or some other error we detect // later). Just connect to it directly; this is an older version of Chrome. + SanitizedSocketPath sanitized_socket_path(socket_path); sockaddr_un addr; - SetupSockAddr(socket_path.value(), &addr); + SetupSockAddr(sanitized_socket_path.SocketPath().value(), &addr); int ret = HANDLE_EINTR(connect(socket->fd(), reinterpret_cast(&addr), sizeof(addr))); @@ -1001,12 +1036,15 @@ bool ProcessSingleton::Create() { return false; } - SetupSocket(socket_target_path.value(), &sock, &addr); + { + SanitizedSocketPath sanitized_socket_target(socket_target_path); + SetupSocket(sanitized_socket_target.SocketPath().value(), &sock, &addr); - if (bind(sock, reinterpret_cast(&addr), sizeof(addr)) < 0) { - PLOG(ERROR) << "Failed to bind() " << socket_target_path.value(); - CloseSocket(sock); - return false; + if (bind(sock, reinterpret_cast(&addr), sizeof(addr)) < 0) { + PLOG(ERROR) << "Failed to bind() " << socket_target_path.value(); + CloseSocket(sock); + return false; + } } if (listen(sock, 5) < 0) diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc index c33fd1a511bb9..f4f2fb8efbf09 100644 --- a/chrome/browser/process_singleton_win.cc +++ b/chrome/browser/process_singleton_win.cc @@ -365,6 +365,7 @@ bool ProcessSingleton::Create() { base::Bind(&ProcessLaunchNotification, notification_callback_), user_data_dir_.value()); CHECK(result && window_.hwnd()); + ::ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD); } } } diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc index 0c6091e65eb18..fe45c0c19b5a4 100644 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc @@ -181,7 +181,7 @@ EnsureBrowserContextKeyedServiceFactoriesBuilt() { extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); extensions::ExtensionManagementFactory::GetInstance(); chrome_extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); - AppShortcutManagerFactory::GetInstance(); + //AppShortcutManagerFactory::GetInstance(); #endif #if BUILDFLAG(ENABLE_APP_LIST) diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index 774779595c24c..306a47adfe2d8 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -469,12 +469,14 @@ ProfileImpl::ProfileImpl( path_, sequenced_task_runner, create_mode == CREATE_MODE_SYNCHRONOUS); #endif +#if 0 scoped_refptr safe_browsing_service( g_browser_process->safe_browsing_service()); if (safe_browsing_service.get()) { pref_validation_delegate_ = safe_browsing_service->CreatePreferenceValidationDelegate(this); } +#endif content::BrowserContext::Initialize(this, path_); diff --git a/chrome/browser/profiles/profile_impl_io_data.cc b/chrome/browser/profiles/profile_impl_io_data.cc index 88da0c78fdcab..461f5cf8d20a1 100644 --- a/chrome/browser/profiles/profile_impl_io_data.cc +++ b/chrome/browser/profiles/profile_impl_io_data.cc @@ -5,6 +5,10 @@ #include "chrome/browser/profiles/profile_impl_io_data.h" #include + +#include "content/nw/src/nw_base.h" +#include "extensions/common/manifest_constants.h" + #include #include #include @@ -505,6 +509,11 @@ void ProfileImplIOData::InitializeInternal( lazy_params_->special_storage_policy.get(), profile_params->cookie_monster_delegate.get()); cookie_config.crypto_delegate = cookie_config::GetCookieCryptoDelegate(); + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + if (command_line.HasSwitch("disable-cookie-encryption")) { + cookie_config::SetEnableCookieCrypto(false); + } main_context_storage->set_cookie_store( content::CreateCookieStore(cookie_config)); @@ -593,6 +602,10 @@ void ProfileImplIOData:: extensions_context->set_net_log(io_thread->net_log()); + std::string domain; + if (nw::package()->root()->GetString(extensions::manifest_keys::kNWJSDomain, &domain)) { + extensions_context->set_cookie_store(main_request_context()->cookie_store()); + } else { content::CookieStoreConfig cookie_config( lazy_params_->extensions_cookie_path, lazy_params_->session_cookie_mode, @@ -602,6 +615,7 @@ void ProfileImplIOData:: cookie_config.cookieable_schemes.push_back(extensions::kExtensionScheme); extensions_cookie_store_ = content::CreateCookieStore(cookie_config); extensions_context->set_cookie_store(extensions_cookie_store_.get()); + } std::unique_ptr extensions_job_factory( new net::URLRequestJobFactoryImpl()); diff --git a/chrome/browser/profiles/profile_info_cache.cc b/chrome/browser/profiles/profile_info_cache.cc index fad9b363d58cb..8cc799821ee4d 100644 --- a/chrome/browser/profiles/profile_info_cache.cc +++ b/chrome/browser/profiles/profile_info_cache.cc @@ -898,7 +898,7 @@ void ProfileInfoCache::DownloadHighResAvatarIfNeeded( size_t icon_index, const base::FilePath& profile_path) { // Downloading is only supported on desktop. -#if defined(OS_ANDROID) || defined(OS_CHROMEOS) +#if 1 return; #endif DCHECK(!disable_avatar_download_for_testing_); diff --git a/chrome/browser/renderer_context_menu/context_menu_content_type_platform_app.cc b/chrome/browser/renderer_context_menu/context_menu_content_type_platform_app.cc index 3df598de7e9f4..5c8b7353eb885 100644 --- a/chrome/browser/renderer_context_menu/context_menu_content_type_platform_app.cc +++ b/chrome/browser/renderer_context_menu/context_menu_content_type_platform_app.cc @@ -11,6 +11,8 @@ #include "extensions/common/extension.h" #include "extensions/common/manifest.h" +#include "content/nw/src/common/shell_switches.h" + using extensions::Extension; using extensions::ProcessManager; @@ -39,6 +41,14 @@ bool ContextMenuContentTypePlatformApp::SupportsGroup(int group) { DCHECK(platform_app->is_platform_app()); +#if defined(NWJS_SDK) + bool enable_devtools = true; + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kDisableDevTools)) + enable_devtools = false; +#endif + switch (group) { // Add undo/redo, cut/copy/paste etc for text fields. case ITEM_GROUP_EDITABLE: @@ -46,12 +56,10 @@ bool ContextMenuContentTypePlatformApp::SupportsGroup(int group) { return ContextMenuContentType::SupportsGroup(group); case ITEM_GROUP_CURRENT_EXTENSION: return true; +#if defined(NWJS_SDK) case ITEM_GROUP_DEVTOOLS_UNPACKED_EXT: - // Add dev tools for unpacked extensions. - return extensions::Manifest::IsUnpackedLocation( - platform_app->location()) || - base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDebugPackedApps); + return enable_devtools; +#endif default: return false; } diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc index 3762746fd341d..d0988ab8e2a41 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc @@ -6,6 +6,8 @@ #include +#include "content/nw/src/common/shell_switches.h" + #include #include #include @@ -832,15 +834,25 @@ void RenderViewContextMenu::InitMenu() { AppendCurrentExtensionItems(); } +#if defined(NWJS_SDK) + bool enable_devtools = true; + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kDisableDevTools)) + enable_devtools = false; + if (content_type_->SupportsGroup( ContextMenuContentType::ITEM_GROUP_DEVELOPER)) { + if (enable_devtools) AppendDeveloperItems(); } if (content_type_->SupportsGroup( ContextMenuContentType::ITEM_GROUP_DEVTOOLS_UNPACKED_EXT)) { + if (enable_devtools) AppendDevtoolsForUnpackedExtensions(); } +#endif if (content_type_->SupportsGroup( ContextMenuContentType::ITEM_GROUP_PRINT_PREVIEW)) { @@ -1240,6 +1252,7 @@ void RenderViewContextMenu::AppendPageItems() { menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); AppendMediaRouterItem(); +#if 0 if (TranslateService::IsTranslatableURL(params_.page_url)) { std::unique_ptr prefs( ChromeTranslateClient::CreateTranslatePrefs( @@ -1253,6 +1266,7 @@ void RenderViewContextMenu::AppendPageItems() { l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); AddGoogleIconToLastMenuItem(&menu_model_); } +#endif } void RenderViewContextMenu::AppendExitFullscreenItem() { @@ -1360,7 +1374,11 @@ void RenderViewContextMenu::AppendSearchProvider() { } void RenderViewContextMenu::AppendEditableItems() { - const bool use_spelling = !chrome::IsRunningInForcedAppMode(); + bool use_spelling = !chrome::IsRunningInForcedAppMode(); + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (!command_line->HasSwitch(switches::kEnableSpellChecking)) + use_spelling = false; if (use_spelling) AppendSpellingSuggestionItems(); @@ -1399,6 +1417,7 @@ void RenderViewContextMenu::AppendEditableItems() { } void RenderViewContextMenu::AppendLanguageSettings() { +#if 0 const bool use_spelling = !chrome::IsRunningInForcedAppMode(); if (!use_spelling) return; @@ -1416,6 +1435,7 @@ void RenderViewContextMenu::AppendLanguageSettings() { spelling_options_submenu_observer_->InitMenu(params_); observers_.AddObserver(spelling_options_submenu_observer_.get()); #endif +#endif } void RenderViewContextMenu::AppendSpellingSuggestionItems() { @@ -2020,6 +2040,9 @@ bool RenderViewContextMenu::IsDevCommandEnabled(int id) const { } bool RenderViewContextMenu::IsTranslateEnabled() const { +#if 1 + return false; +#else ChromeTranslateClient* chrome_translate_client = ChromeTranslateClient::FromWebContents(embedder_web_contents_); // If no |chrome_translate_client| attached with this WebContents or we're @@ -2050,6 +2073,7 @@ bool RenderViewContextMenu::IsTranslateEnabled() const { !target_lang.empty() && // Disable on the Instant Extended NTP. !search::IsInstantNTP(embedder_web_contents_); +#endif } bool RenderViewContextMenu::IsSaveLinkAsEnabled() const { @@ -2442,6 +2466,7 @@ void RenderViewContextMenu::ExecRouteMedia() { } void RenderViewContextMenu::ExecTranslate() { +#if 0 // A translation might have been triggered by the time the menu got // selected, do nothing in that case. ChromeTranslateClient* chrome_translate_client = @@ -2469,6 +2494,7 @@ void RenderViewContextMenu::ExecTranslate() { chrome_translate_client->GetTranslateManager(); DCHECK(manager); manager->TranslatePage(original_lang, target_lang, true); +#endif } void RenderViewContextMenu::ExecLanguageSettings(int event_flags) { diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc index c20a01dbd9dbe..0fa704bca0eee 100644 --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc @@ -37,6 +37,8 @@ #include "ui/views/linux_ui/linux_ui.h" #endif +#include "content/nw/src/common/nw_content_common_hooks.h" + #if defined(ENABLE_WEBRTC) namespace { @@ -170,6 +172,9 @@ void UpdateFromSystemSettings(content::RendererPreferences* prefs, prefs->plugin_fullscreen_allowed = pref_service->GetBoolean(prefs::kFullscreenAllowed); #endif + std::string user_agent; + if (nw::GetUserAgentFromManifest(&user_agent)) + prefs->user_agent_override = user_agent; } } // namespace renderer_preferences_util diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome/browser/resources/component_extension_resources.grd index 2cec82f0a5e57..6e9d7b377a44d 100644 --- a/chrome/browser/resources/component_extension_resources.grd +++ b/chrome/browser/resources/component_extension_resources.grd @@ -25,6 +25,7 @@ + @@ -32,6 +33,7 @@ + @@ -158,6 +160,9 @@ + + + @@ -205,6 +210,8 @@ + + @@ -250,6 +257,7 @@ + diff --git a/chrome/browser/resources/empty.css b/chrome/browser/resources/empty.css new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/chrome/browser/resources/empty.html b/chrome/browser/resources/empty.html new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/chrome/browser/resources/empty.js b/chrome/browser/resources/empty.js new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/chrome/browser/resources/empty.json b/chrome/browser/resources/empty.json new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/chrome/browser/resources/empty.png b/chrome/browser/resources/empty.png new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/chrome/browser/resources/nwjs/default.js b/chrome/browser/resources/nwjs/default.js new file mode 100644 index 0000000000000..a5e1ce27fb418 --- /dev/null +++ b/chrome/browser/resources/nwjs/default.js @@ -0,0 +1,46 @@ +//console.log("NWJS/DEFAULT.JS"); +var manifest = chrome.runtime.getManifest(); +var options = {}; +var title = null; +if (manifest.window) { + if (manifest.window.id) + options.id = manifest.window.id; + options.innerBounds = {}; + if (manifest.window.frame === false) + options.frame = 'none'; + if (manifest.window.resizable === false) + options.resizable = false; + if (manifest.window.height) + options.innerBounds.height = manifest.window.height; + if (manifest.window.width) + options.innerBounds.width = manifest.window.width; + if (manifest.window.min_width) + options.innerBounds.minWidth = manifest.window.min_width; + if (manifest.window.max_width) + options.innerBounds.maxWidth = manifest.window.max_width; + if (manifest.window.min_height) + options.innerBounds.minHeight = manifest.window.min_height; + if (manifest.window.max_height) + options.innerBounds.maxHeight = manifest.window.max_height; + if (manifest.window.fullscreen === true) + options.state = 'fullscreen'; + if (manifest.window.show === false) + options.hidden = true; + if (manifest.window.show_in_taskbar === false) + options.show_in_taskbar = false; + if (manifest.window['always_on_top'] === true) + options.alwaysOnTop = true; + if (manifest.window['visible_on_all_workspaces'] === true) + options.visibleOnAllWorkspaces = true; + if (manifest.window.transparent) + options.alphaEnabled = true; + if (manifest.window.kiosk === true) + options.kiosk = true; + if (manifest.window.position) + options.position = manifest.window.position; + if (manifest.window.title) + options.title = manifest.window.title; +} + +chrome.app.window.create(manifest.main, options, function(win) { +}); diff --git a/chrome/browser/resources/nwjs_default_app/main.js b/chrome/browser/resources/nwjs_default_app/main.js new file mode 100644 index 0000000000000..4ee5538332f0b --- /dev/null +++ b/chrome/browser/resources/nwjs_default_app/main.js @@ -0,0 +1,7 @@ +var manifest = chrome.runtime.getManifest(); +var url = manifest.cmdlineUrl || 'nw_blank.html'; +chrome.app.runtime.onLaunched.addListener(function() { + chrome.app.window.create( + url, + {'id': 'nwjs_default_app', 'height': 550, 'width': 750}); +}); diff --git a/chrome/browser/resources/nwjs_default_app/manifest.json b/chrome/browser/resources/nwjs_default_app/manifest.json new file mode 100644 index 0000000000000..1e9c9e219ebcd --- /dev/null +++ b/chrome/browser/resources/nwjs_default_app/manifest.json @@ -0,0 +1,17 @@ +{ + //id: aafddpmiffkameplnjkglahmbnbgidce + "key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgmO8NbDyu8AB/Cudz33l3kkgPbIeYaitcYgn4RBJdNRPjJ2sRy0icbVMyZjXhNV81vuH60ZO5PiBmVIp6v49Aq2RSkFVbwPw0y1Yo6UgATlaaEKEJV2VGrlQJaN12bGM/Dz8KGuHVGTbtqHS+B0QyQJMAbXLJ8HkmvJPlUQZf3QIDAQAB", + "name": "NWJS Default", + "version": "0.1", + "manifest_version": 2, + "description": "NWJS default app", + "app": { + "background": { + "scripts": [ "main.js" ] + } + }, + "permissions": [ + "node", "proxy", "" + ], + "display_in_launcher": false +} diff --git a/chrome/browser/resources/nwjs_default_app/nw_blank.html b/chrome/browser/resources/nwjs_default_app/nw_blank.html new file mode 100644 index 0000000000000..cda95d6c72fe9 --- /dev/null +++ b/chrome/browser/resources/nwjs_default_app/nw_blank.html @@ -0,0 +1,74 @@ + + + +nw.js + + + +

      +
      + nw.js v
      + Node v
      + Chromium
      + commit hash:
      +
      + + diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js index 14aebcf8cdd75..695a5625201d0 100644 --- a/chrome/browser/resources/pdf/pdf.js +++ b/chrome/browser/resources/pdf/pdf.js @@ -620,7 +620,7 @@ PDFViewer.prototype = { message.data.url, Navigator.WindowOpenDisposition.NEW_BACKGROUND_TAB); } else { - this.navigator_.navigate(message.data.url, message.data.disposition); + this.navigator_.navigate(message.data.url, Navigator.WindowOpenDisposition.NEW_BACKGROUND_TAB); } break; case 'setScrollPosition': diff --git a/chrome/browser/resources/print_preview/data/destination_store.js b/chrome/browser/resources/print_preview/data/destination_store.js index 2258b65a74e60..d4002af69ba92 100644 --- a/chrome/browser/resources/print_preview/data/destination_store.js +++ b/chrome/browser/resources/print_preview/data/destination_store.js @@ -679,8 +679,10 @@ cr.define('print_preview', function() { init: function( isInAppKioskMode, systemDefaultDestinationId, - serializedDefaultDestinationSelectionRulesStr) { + serializedDefaultDestinationSelectionRulesStr, + isInNWPrintMode) { this.pdfPrinterEnabled_ = !isInAppKioskMode; + this.isInNWPrintMode_ = isInNWPrintMode; this.systemDefaultDestinationId_ = systemDefaultDestinationId; this.createLocalPdfPrintDestination_(); @@ -707,7 +709,7 @@ cr.define('print_preview', function() { var extensionId = ''; var extensionName = ''; var foundDestination = false; - if (this.appState_.recentDestinations) { + if (this.appState_.recentDestinations && !this.isInNWPrintMode_) { // Run through the destinations forward. As soon as we find a // destination, don't select any future destinations, just mark // them recent. Otherwise, there is a race condition between selecting @@ -949,7 +951,7 @@ cr.define('print_preview', function() { * @private */ convertPreselectedToDestinationMatch_: function() { - if (this.selectedDestinationValid_()) { + if (this.selectedDestinationValid_() && !this.isInNWPrintMode_) { return this.createExactDestinationMatch_( this.appState_.selectedDestination.origin, this.appState_.selectedDestination.id); diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js index c242f8904094f..82c7d65657b3c 100644 --- a/chrome/browser/resources/print_preview/native_layer.js +++ b/chrome/browser/resources/print_preview/native_layer.js @@ -486,7 +486,8 @@ cr.define('print_preview', function() { initialSettings['shouldPrintSelectionOnly'] || false, initialSettings['printerName'] || null, initialSettings['appState'] || null, - initialSettings['defaultDestinationSelectionRules'] || null); + initialSettings['defaultDestinationSelectionRules'] || null, + initialSettings['nwPrintMode'] || false); var initialSettingsSetEvent = new Event( NativeLayer.EventType.INITIAL_SETTINGS_SET); @@ -936,8 +937,10 @@ cr.define('print_preview', function() { selectionOnly, systemDefaultDestinationId, serializedAppStateStr, - serializedDefaultDestinationSelectionRulesStr) { + serializedDefaultDestinationSelectionRulesStr, + nwPrintMode) { + this.isNWPrintMode_ = nwPrintMode; /** * Whether the print preview should be in auto-print mode. * @type {boolean} @@ -1025,6 +1028,9 @@ cr.define('print_preview', function() { }; NativeInitialSettings.prototype = { + get isInNWPrintMode() { + return this.isNWPrintMode_; + }, /** * @return {boolean} Whether the print preview should be in auto-print mode. */ diff --git a/chrome/browser/resources/print_preview/print_preview.js b/chrome/browser/resources/print_preview/print_preview.js index 0c5f7c9cda444..4da0ba3cb3438 100644 --- a/chrome/browser/resources/print_preview/print_preview.js +++ b/chrome/browser/resources/print_preview/print_preview.js @@ -675,7 +675,8 @@ cr.define('print_preview', function() { this.destinationStore_.init( settings.isInAppKioskMode, settings.systemDefaultDestinationId, - settings.serializedDefaultDestinationSelectionRulesStr); + settings.serializedDefaultDestinationSelectionRulesStr, + settings.isInNWPrintMode); this.appState_.setInitialized(); $('document-title').innerText = settings.documentTitle; diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc index 0481da309a8b7..7c45c1c73fe79 100644 --- a/chrome/browser/sessions/session_service.cc +++ b/chrome/browser/sessions/session_service.cc @@ -4,6 +4,11 @@ #include "chrome/browser/sessions/session_service.h" +#include "content/nw/src/nw_content.h" +#include "extensions/browser/extension_system.h" +#include "extensions/browser/app_window/app_window_registry.h" +#include "chrome/browser/extensions/extension_service.h" + #include #include @@ -1101,6 +1106,24 @@ void SessionService::MaybeDeleteSessionOnlyData() { if (browser->profile() == profile()) return; } + std::string id = nw::GetMainExtensionId(); + base::FilePath path; + extensions::ExtensionSystem* extension_system = + extensions::ExtensionSystem::Get(ProfileManager::GetPrimaryUserProfile()); + if (!id.empty() && extension_system) { + ExtensionService* extension_service = + extension_system->extension_service(); + const extensions::Extension* extension = + extension_service->GetExtensionById(id, true); + if (extension) { + if (extensions::ProcessManager::Get(profile())->GetLazyKeepaliveCount(extension) > 0) + return; + } + //additional checking for NWJS#5355 + extensions::AppWindowRegistry* registry = extensions::AppWindowRegistry::Factory::GetForBrowserContext(profile(), false); + if (registry && !registry->app_windows().empty()) + return; + } DeleteSessionOnlyData(profile()); } diff --git a/chrome/browser/shell_integration_linux.cc b/chrome/browser/shell_integration_linux.cc index 57072b8a9a67f..30a29e018e4d3 100644 --- a/chrome/browser/shell_integration_linux.cc +++ b/chrome/browser/shell_integration_linux.cc @@ -51,6 +51,8 @@ #include "chrome/grit/chrome_unscaled_resources.h" #include "components/version_info/version_info.h" #include "content/public/browser/browser_thread.h" +#include "content/nw/src/nw_base.h" +#include "content/nw/src/nw_package.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/image/image_family.h" #include "url/gurl.h" @@ -596,6 +598,10 @@ namespace internal { std::string GetProgramClassName(const base::CommandLine& command_line, const std::string& desktop_file_name) { + // NW fix + // set WM_NAME to name of package.json + return nw::package()->GetName(); +#if 0 std::string class_name = shell_integration::GetDesktopBaseName(desktop_file_name); std::string user_data_dir = @@ -607,12 +613,18 @@ std::string GetProgramClassName(const base::CommandLine& command_line, return user_data_dir.empty() ? class_name : class_name + " (" + user_data_dir + ")"; +#endif } std::string GetProgramClassClass(const base::CommandLine& command_line, const std::string& desktop_file_name) { if (command_line.HasSwitch(switches::kWmClass)) return command_line.GetSwitchValueASCII(switches::kWmClass); + // NW fix + // set WM_CLASS as name in package.json and allowed to be overwritten + // with --class CLI parameter + return nw::package()->GetName(); +#if 0 std::string class_class = shell_integration::GetDesktopBaseName(desktop_file_name); if (!class_class.empty()) { @@ -620,6 +632,7 @@ std::string GetProgramClassClass(const base::CommandLine& command_line, class_class[0] = base::ToUpperASCII(class_class[0]); } return class_class; +#endif } } // namespace internal diff --git a/chrome/browser/spellchecker/spellcheck_factory.cc b/chrome/browser/spellchecker/spellcheck_factory.cc index 3857256a3d4db..cf3f585f86e8f 100644 --- a/chrome/browser/spellchecker/spellcheck_factory.cc +++ b/chrome/browser/spellchecker/spellcheck_factory.cc @@ -76,7 +76,7 @@ void SpellcheckServiceFactory::RegisterProfilePrefs( spellcheck::prefs::kSpellCheckDictionary, l10n_util::GetStringUTF8(IDS_SPELLCHECK_DICTIONARY)); user_prefs->RegisterBooleanPref( - spellcheck::prefs::kSpellCheckUseSpellingService, false); + spellcheck::prefs::kSpellCheckUseSpellingService, true); #if defined(OS_IOS) || defined(OS_ANDROID) uint32_t flags = PrefRegistry::NO_REGISTRATION_FLAGS; #else diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc index cf28ba997466d..8635808249d18 100644 --- a/chrome/browser/ssl/security_state_tab_helper.cc +++ b/chrome/browser/ssl/security_state_tab_helper.cc @@ -152,6 +152,7 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const { security_state::MaliciousContentStatus SecurityStateTabHelper::GetMaliciousContentStatus() const { +#if 0 content::NavigationEntry* entry = web_contents()->GetController().GetVisibleEntry(); if (!entry) @@ -190,6 +191,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { break; } } +#endif return security_state::MALICIOUS_CONTENT_STATUS_NONE; } diff --git a/chrome/browser/status_icons/status_icon.h b/chrome/browser/status_icons/status_icon.h index 0eaaf247f9733..291ca770fd60e 100644 --- a/chrome/browser/status_icons/status_icon.h +++ b/chrome/browser/status_icons/status_icon.h @@ -72,11 +72,11 @@ class StatusIcon { // thread to do it. Use sparingly. virtual void ForceVisible(); - protected: + public: // Invoked after a call to SetContextMenu() to let the platform-specific // subclass update the native context menu based on the new model. If NULL is // passed, subclass should destroy the native context menu. - virtual void UpdatePlatformContextMenu(StatusIconMenuModel* model) = 0; + virtual void UpdatePlatformContextMenu(ui::MenuModel* model) = 0; private: base::ObserverList observers_; diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc index 1f257853e9f11..da692bbadfe32 100644 --- a/chrome/browser/supervised_user/supervised_user_service.cc +++ b/chrome/browser/supervised_user/supervised_user_service.cc @@ -197,6 +197,7 @@ void SupervisedUserService::Init() { if (sync_service) sync_service->AddPreferenceProvider(this); +#if 0 std::string client_id = component_updater::SupervisedUserWhitelistInstaller:: ClientIdForProfilePath(profile_->GetPath()); whitelist_service_.reset(new SupervisedUserWhitelistService( @@ -205,6 +206,7 @@ void SupervisedUserService::Init() { whitelist_service_->AddSiteListsChangedCallback( base::Bind(&SupervisedUserService::OnSiteListsChanged, weak_ptr_factory_.GetWeakPtr())); +#endif SetActive(ProfileIsSupervised()); } diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index d398254215266..f75be1f4096c9 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn @@ -182,13 +182,13 @@ split_static_library("ui") { "tab_modal_confirm_dialog.h", "toolbar/chrome_toolbar_model_delegate.cc", "toolbar/chrome_toolbar_model_delegate.h", - "translate/language_combobox_model.cc", - "translate/language_combobox_model.h", - "translate/translate_bubble_model.h", - "translate/translate_bubble_model_impl.cc", - "translate/translate_bubble_model_impl.h", - "translate/translate_bubble_view_state_transition.cc", - "translate/translate_bubble_view_state_transition.h", + #"translate/language_combobox_model.cc", + #"translate/language_combobox_model.h", + #"translate/translate_bubble_model.h", + #"translate/translate_bubble_model_impl.cc", + #"translate/translate_bubble_model_impl.h", + #"translate/translate_bubble_view_state_transition.cc", + #"translate/translate_bubble_view_state_transition.h", "uninstall_browser_prompt.h", "validation_message_bubble.h", "view_ids.h", @@ -324,8 +324,8 @@ split_static_library("ui") { "webui/chromeos/touch_view_controller_delegate.h", "webui/chromeos/ui_account_tweaks.cc", "webui/chromeos/ui_account_tweaks.h", - "webui/components_ui.cc", - "webui/components_ui.h", + #"webui/components_ui.cc", + #"webui/components_ui.h", "webui/constrained_web_dialog_ui.cc", "webui/constrained_web_dialog_ui.h", "webui/cookies_tree_model_util.cc", @@ -336,8 +336,8 @@ split_static_library("ui") { "webui/device_log_ui.h", "webui/domain_reliability_internals_ui.cc", "webui/domain_reliability_internals_ui.h", - "webui/engagement/site_engagement_ui.cc", - "webui/engagement/site_engagement_ui.h", + #"webui/engagement/site_engagement_ui.cc", + #"webui/engagement/site_engagement_ui.h", "webui/fallback_icon_source.cc", "webui/fallback_icon_source.h", "webui/favicon_source.cc", @@ -350,10 +350,10 @@ split_static_library("ui") { "webui/gcm_internals_ui.h", "webui/history_ui.cc", "webui/history_ui.h", - "webui/instant_ui.cc", - "webui/instant_ui.h", - "webui/interstitials/interstitial_ui.cc", - "webui/interstitials/interstitial_ui.h", + #"webui/instant_ui.cc", + #"webui/instant_ui.h", + #"webui/interstitials/interstitial_ui.cc", + #"webui/interstitials/interstitial_ui.h", "webui/invalidations_message_handler.cc", "webui/invalidations_message_handler.h", "webui/invalidations_ui.cc", @@ -407,14 +407,14 @@ split_static_library("ui") { "webui/task_scheduler_internals/task_scheduler_internals_ui.h", "webui/test_files_request_filter.cc", "webui/test_files_request_filter.h", - "webui/translate_internals/translate_internals_handler.cc", - "webui/translate_internals/translate_internals_handler.h", - "webui/translate_internals/translate_internals_ui.cc", - "webui/translate_internals/translate_internals_ui.h", - "webui/usb_internals/usb_internals_page_handler.cc", - "webui/usb_internals/usb_internals_page_handler.h", - "webui/usb_internals/usb_internals_ui.cc", - "webui/usb_internals/usb_internals_ui.h", + #"webui/translate_internals/translate_internals_handler.cc", + #"webui/translate_internals/translate_internals_handler.h", + #"webui/translate_internals/translate_internals_ui.cc", + #"webui/translate_internals/translate_internals_ui.h", + #"webui/usb_internals/usb_internals_page_handler.cc", + #"webui/usb_internals/usb_internals_page_handler.h", + #"webui/usb_internals/usb_internals_ui.cc", + #"webui/usb_internals/usb_internals_ui.h", "webui/user_actions/user_actions_ui.cc", "webui/user_actions/user_actions_ui.h", "webui/user_actions/user_actions_ui_handler.cc", @@ -899,8 +899,8 @@ split_static_library("ui") { "webui/extensions/extension_loader_handler.h", "webui/extensions/extension_settings_handler.cc", "webui/extensions/extension_settings_handler.h", - "webui/extensions/extensions_ui.cc", - "webui/extensions/extensions_ui.h", + #"webui/extensions/extensions_ui.cc", + #"webui/extensions/extensions_ui.h", "webui/extensions/install_extension_handler.cc", "webui/extensions/install_extension_handler.h", "webui/foreign_session_handler.cc", @@ -923,22 +923,22 @@ split_static_library("ui") { "webui/identity_internals_ui.h", "webui/inspect_ui.cc", "webui/inspect_ui.h", - "webui/md_bookmarks/md_bookmarks_ui.cc", - "webui/md_bookmarks/md_bookmarks_ui.h", - "webui/md_downloads/downloads_list_tracker.cc", - "webui/md_downloads/downloads_list_tracker.h", - "webui/md_downloads/md_downloads_dom_handler.cc", - "webui/md_downloads/md_downloads_dom_handler.h", - "webui/md_downloads/md_downloads_ui.cc", - "webui/md_downloads/md_downloads_ui.h", - "webui/md_feedback/md_feedback_dialog_controller.cc", - "webui/md_feedback/md_feedback_dialog_controller.h", - "webui/md_feedback/md_feedback_ui.cc", - "webui/md_feedback/md_feedback_ui.h", - "webui/md_feedback/md_feedback_webui_message_handler.cc", - "webui/md_feedback/md_feedback_webui_message_handler.h", - "webui/md_history_ui.cc", - "webui/md_history_ui.h", + #"webui/md_bookmarks/md_bookmarks_ui.cc", + #"webui/md_bookmarks/md_bookmarks_ui.h", + #"webui/md_downloads/downloads_list_tracker.cc", + #"webui/md_downloads/downloads_list_tracker.h", + #"webui/md_downloads/md_downloads_dom_handler.cc", + #"webui/md_downloads/md_downloads_dom_handler.h", + #"webui/md_downloads/md_downloads_ui.cc", + #"webui/md_downloads/md_downloads_ui.h", + #"webui/md_feedback/md_feedback_dialog_controller.cc", + #"webui/md_feedback/md_feedback_dialog_controller.h", + #"webui/md_feedback/md_feedback_ui.cc", + #"webui/md_feedback/md_feedback_ui.h", + #"webui/md_feedback/md_feedback_webui_message_handler.cc", + #"webui/md_feedback/md_feedback_webui_message_handler.h", + #"webui/md_history_ui.cc", + #"webui/md_history_ui.h", "webui/ntp/app_launcher_handler.cc", "webui/ntp/app_launcher_handler.h", "webui/ntp/app_resource_cache_factory.cc", @@ -953,105 +953,105 @@ split_static_library("ui") { "webui/ntp/ntp_resource_cache.h", "webui/ntp/ntp_resource_cache_factory.cc", "webui/ntp/ntp_resource_cache_factory.h", - "webui/options/autofill_options_handler.cc", - "webui/options/autofill_options_handler.h", - "webui/options/automatic_settings_reset_handler.cc", - "webui/options/automatic_settings_reset_handler.h", - "webui/options/browser_options_handler.cc", - "webui/options/browser_options_handler.h", - "webui/options/chromeos/accounts_options_handler.cc", - "webui/options/chromeos/accounts_options_handler.h", - "webui/options/chromeos/bluetooth_options_handler.cc", - "webui/options/chromeos/bluetooth_options_handler.h", - "webui/options/chromeos/change_picture_options_handler.cc", - "webui/options/chromeos/change_picture_options_handler.h", - "webui/options/chromeos/core_chromeos_options_handler.cc", - "webui/options/chromeos/core_chromeos_options_handler.h", - "webui/options/chromeos/cros_language_options_handler.cc", - "webui/options/chromeos/cros_language_options_handler.h", - "webui/options/chromeos/date_time_options_handler.cc", - "webui/options/chromeos/date_time_options_handler.h", - "webui/options/chromeos/display_options_handler.cc", - "webui/options/chromeos/display_options_handler.h", - "webui/options/chromeos/display_overscan_handler.cc", - "webui/options/chromeos/display_overscan_handler.h", - "webui/options/chromeos/internet_options_handler.cc", - "webui/options/chromeos/internet_options_handler.h", - "webui/options/chromeos/internet_options_handler_strings.cc", - "webui/options/chromeos/internet_options_handler_strings.h", - "webui/options/chromeos/keyboard_handler.cc", - "webui/options/chromeos/keyboard_handler.h", - "webui/options/chromeos/options_stylus_handler.cc", - "webui/options/chromeos/options_stylus_handler.h", - "webui/options/chromeos/pointer_handler.cc", - "webui/options/chromeos/pointer_handler.h", - "webui/options/chromeos/power_handler.cc", - "webui/options/chromeos/power_handler.h", - "webui/options/chromeos/proxy_handler.cc", - "webui/options/chromeos/proxy_handler.h", - "webui/options/chromeos/stats_options_handler.cc", - "webui/options/chromeos/stats_options_handler.h", - "webui/options/chromeos/storage_manager_handler.cc", - "webui/options/chromeos/storage_manager_handler.h", - "webui/options/chromeos/user_image_source.cc", - "webui/options/chromeos/user_image_source.h", - "webui/options/clear_browser_data_handler.cc", - "webui/options/clear_browser_data_handler.h", - "webui/options/content_settings_handler.cc", - "webui/options/content_settings_handler.h", - "webui/options/cookies_view_handler.cc", - "webui/options/cookies_view_handler.h", - "webui/options/core_options_handler.cc", - "webui/options/core_options_handler.h", - "webui/options/create_profile_handler.cc", - "webui/options/create_profile_handler.h", - "webui/options/easy_unlock_handler.cc", - "webui/options/easy_unlock_handler.h", - "webui/options/font_settings_handler.cc", - "webui/options/font_settings_handler.h", + #"webui/options/autofill_options_handler.cc", + #"webui/options/autofill_options_handler.h", + #"webui/options/automatic_settings_reset_handler.cc", + #"webui/options/automatic_settings_reset_handler.h", + #"webui/options/browser_options_handler.cc", + #"webui/options/browser_options_handler.h", + #"webui/options/chromeos/accounts_options_handler.cc", + #"webui/options/chromeos/accounts_options_handler.h", + #"webui/options/chromeos/bluetooth_options_handler.cc", + #"webui/options/chromeos/bluetooth_options_handler.h", + #"webui/options/chromeos/change_picture_options_handler.cc", + #"webui/options/chromeos/change_picture_options_handler.h", + #"webui/options/chromeos/core_chromeos_options_handler.cc", + #"webui/options/chromeos/core_chromeos_options_handler.h", + #"webui/options/chromeos/cros_language_options_handler.cc", + #"webui/options/chromeos/cros_language_options_handler.h", + #"webui/options/chromeos/date_time_options_handler.cc", + #"webui/options/chromeos/date_time_options_handler.h", + #"webui/options/chromeos/display_options_handler.cc", + #"webui/options/chromeos/display_options_handler.h", + #"webui/options/chromeos/display_overscan_handler.cc", + #"webui/options/chromeos/display_overscan_handler.h", + #"webui/options/chromeos/internet_options_handler.cc", + #"webui/options/chromeos/internet_options_handler.h", + #"webui/options/chromeos/internet_options_handler_strings.cc", + #"webui/options/chromeos/internet_options_handler_strings.h", + #"webui/options/chromeos/keyboard_handler.cc", + #"webui/options/chromeos/keyboard_handler.h", + #"webui/options/chromeos/options_stylus_handler.cc", + #"webui/options/chromeos/options_stylus_handler.h", + #"webui/options/chromeos/pointer_handler.cc", + #"webui/options/chromeos/pointer_handler.h", + #"webui/options/chromeos/power_handler.cc", + #"webui/options/chromeos/power_handler.h", + #"webui/options/chromeos/proxy_handler.cc", + #"webui/options/chromeos/proxy_handler.h", + #"webui/options/chromeos/stats_options_handler.cc", + #"webui/options/chromeos/stats_options_handler.h", + #"webui/options/chromeos/storage_manager_handler.cc", + #"webui/options/chromeos/storage_manager_handler.h", + #"webui/options/chromeos/user_image_source.cc", + #"webui/options/chromeos/user_image_source.h", + #"webui/options/clear_browser_data_handler.cc", + #"webui/options/clear_browser_data_handler.h", + #"webui/options/content_settings_handler.cc", + #"webui/options/content_settings_handler.h", + #"webui/options/cookies_view_handler.cc", + #"webui/options/cookies_view_handler.h", + #"webui/options/core_options_handler.cc", + #"webui/options/core_options_handler.h", + #"webui/options/create_profile_handler.cc", + #"webui/options/create_profile_handler.h", + #"webui/options/easy_unlock_handler.cc", + #"webui/options/easy_unlock_handler.h", + #"webui/options/font_settings_handler.cc", + #"webui/options/font_settings_handler.h", "webui/options/font_settings_utils.cc", "webui/options/font_settings_utils.h", - "webui/options/font_settings_utils_linux.cc", - "webui/options/font_settings_utils_mac.mm", + #"webui/options/font_settings_utils_linux.cc", + #"webui/options/font_settings_utils_mac.mm", "webui/options/font_settings_utils_win.cc", - "webui/options/handler_options_handler.cc", - "webui/options/handler_options_handler.h", - "webui/options/help_overlay_handler.cc", - "webui/options/help_overlay_handler.h", - "webui/options/home_page_overlay_handler.cc", - "webui/options/home_page_overlay_handler.h", - "webui/options/import_data_handler.cc", - "webui/options/import_data_handler.h", - "webui/options/language_dictionary_overlay_handler.cc", - "webui/options/language_dictionary_overlay_handler.h", - "webui/options/language_options_handler.cc", - "webui/options/language_options_handler.h", - "webui/options/language_options_handler_common.cc", - "webui/options/language_options_handler_common.h", - "webui/options/manage_profile_handler.cc", - "webui/options/manage_profile_handler.h", - "webui/options/media_devices_selection_handler.cc", - "webui/options/media_devices_selection_handler.h", - "webui/options/options_ui.cc", - "webui/options/options_ui.h", - "webui/options/password_manager_handler.cc", - "webui/options/password_manager_handler.h", - "webui/options/pepper_flash_content_settings_utils.cc", - "webui/options/pepper_flash_content_settings_utils.h", - "webui/options/reset_profile_settings_handler.cc", - "webui/options/reset_profile_settings_handler.h", - "webui/options/search_engine_manager_handler.cc", - "webui/options/search_engine_manager_handler.h", - "webui/options/startup_pages_handler.cc", - "webui/options/startup_pages_handler.h", - "webui/options/supervised_user_create_confirm_handler.cc", - "webui/options/supervised_user_create_confirm_handler.h", - "webui/options/supervised_user_import_handler.cc", - "webui/options/supervised_user_import_handler.h", - "webui/options/supervised_user_learn_more_handler.cc", - "webui/options/supervised_user_learn_more_handler.h", - "webui/options/sync_setup_handler.cc", - "webui/options/sync_setup_handler.h", + #"webui/options/handler_options_handler.cc", + #"webui/options/handler_options_handler.h", + #"webui/options/help_overlay_handler.cc", + #"webui/options/help_overlay_handler.h", + #"webui/options/home_page_overlay_handler.cc", + #"webui/options/home_page_overlay_handler.h", + #"webui/options/import_data_handler.cc", + #"webui/options/import_data_handler.h", + #"webui/options/language_dictionary_overlay_handler.cc", + #"webui/options/language_dictionary_overlay_handler.h", + #"webui/options/language_options_handler.cc", + #"webui/options/language_options_handler.h", + #"webui/options/language_options_handler_common.cc", + #"webui/options/language_options_handler_common.h", + #"webui/options/manage_profile_handler.cc", + #"webui/options/manage_profile_handler.h", + #"webui/options/media_devices_selection_handler.cc", + #"webui/options/media_devices_selection_handler.h", + #"webui/options/options_ui.cc", + #"webui/options/options_ui.h", + #"webui/options/password_manager_handler.cc", + #"webui/options/password_manager_handler.h", + #"webui/options/pepper_flash_content_settings_utils.cc", + #"webui/options/pepper_flash_content_settings_utils.h", + #"webui/options/reset_profile_settings_handler.cc", + #"webui/options/reset_profile_settings_handler.h", + #"webui/options/search_engine_manager_handler.cc", + #"webui/options/search_engine_manager_handler.h", + #"webui/options/startup_pages_handler.cc", + #"webui/options/startup_pages_handler.h", + #"webui/options/supervised_user_create_confirm_handler.cc", + #"webui/options/supervised_user_create_confirm_handler.h", + #"webui/options/supervised_user_import_handler.cc", + #"webui/options/supervised_user_import_handler.h", + #"webui/options/supervised_user_learn_more_handler.cc", + #"webui/options/supervised_user_learn_more_handler.h", + #"webui/options/sync_setup_handler.cc", + #"webui/options/sync_setup_handler.h", "webui/policy_indicator_localized_strings_provider.cc", "webui/policy_indicator_localized_strings_provider.h", "webui/profile_helper.cc", @@ -1169,6 +1169,11 @@ split_static_library("ui") { "window_sizer/window_sizer.cc", "window_sizer/window_sizer.h", ] + + if (!nwjs_sdk) { + sources -= [ "webui/about_ui.cc", "webui/about_ui.h" ] + } + deps += [ "//apps", "//chrome/browser/profile_resetter:profile_reset_report_proto", @@ -1874,10 +1879,10 @@ split_static_library("ui") { "views/toolbar/toolbar_view.cc", "views/toolbar/toolbar_view.h", "views/touch_uma/touch_uma.h", - "views/translate/translate_bubble_view.cc", - "views/translate/translate_bubble_view.h", - "views/translate/translate_icon_view.cc", - "views/translate/translate_icon_view.h", + #"views/translate/translate_bubble_view.cc", + #"views/translate/translate_bubble_view.h", + #"views/translate/translate_icon_view.cc", + #"views/translate/translate_icon_view.h", "views/update_recommended_message_box.cc", "views/update_recommended_message_box.h", "views/validation_message_bubble_view.cc", @@ -1989,10 +1994,10 @@ split_static_library("ui") { "webui/signin/sync_confirmation_ui.h", "webui/signin/user_manager_screen_handler.cc", "webui/signin/user_manager_screen_handler.h", - "webui/welcome_handler.cc", - "webui/welcome_handler.h", - "webui/welcome_ui.cc", - "webui/welcome_ui.h", + #"webui/welcome_handler.cc", + #"webui/welcome_handler.h", + #"webui/welcome_ui.cc", + #"webui/welcome_ui.h", ] if (is_mac && !mac_views_browser) { sources -= [ @@ -2092,8 +2097,8 @@ split_static_library("ui") { "crypto_module_delegate_nss.h", "crypto_module_password_dialog_nss.cc", "crypto_module_password_dialog_nss.h", - "webui/options/certificate_manager_handler.cc", - "webui/options/certificate_manager_handler.h", + #"webui/options/certificate_manager_handler.cc", + #"webui/options/certificate_manager_handler.h", "webui/settings/certificates_handler.cc", "webui/settings/certificates_handler.h", ] @@ -2372,8 +2377,8 @@ split_static_library("ui") { "passwords/manage_passwords_icon.cc", "passwords/manage_passwords_icon.h", "web_contents_sizer.mm", - "webui/cast/cast_ui.cc", - "webui/cast/cast_ui.h", + #"webui/cast/cast_ui.cc", + #"webui/cast/cast_ui.h", ] deps += [ "//chrome/app/nibs:localizer_table", @@ -2931,8 +2936,8 @@ split_static_library("ui") { "cocoa/toolbar/toolbar_controller.mm", "cocoa/toolbar/toolbar_view_cocoa.h", "cocoa/toolbar/toolbar_view_cocoa.mm", - "cocoa/translate/translate_bubble_controller.h", - "cocoa/translate/translate_bubble_controller.mm", + #"cocoa/translate/translate_bubble_controller.h", + #"cocoa/translate/translate_bubble_controller.mm", "cocoa/url_drop_target.h", "cocoa/url_drop_target.mm", "cocoa/validation_message_bubble_cocoa.h", @@ -3005,14 +3010,14 @@ split_static_library("ui") { "views/network_profile_bubble_view.cc", "views/uninstall_view.cc", "views/uninstall_view.h", - "webui/cast/cast_ui.cc", - "webui/cast/cast_ui.h", + #"webui/cast/cast_ui.cc", + #"webui/cast/cast_ui.h", "webui/conflicts_ui.cc", "webui/conflicts_ui.h", - "webui/welcome_win10_handler.cc", - "webui/welcome_win10_handler.h", - "webui/welcome_win10_ui.cc", - "webui/welcome_win10_ui.h", + #"webui/welcome_win10_handler.cc", + #"webui/welcome_win10_handler.h", + #"webui/welcome_win10_ui.cc", + #"webui/welcome_win10_ui.h", ] public_deps += [ "//ui/views", @@ -3359,7 +3364,7 @@ split_static_library("ui") { "webui/options/geolocation_options_handler.h", ] } - if (enable_media_router && !is_android) { + if (enable_media_router && !is_android && nwjs_sdk) { sources += [ "toolbar/media_router_action.cc", "toolbar/media_router_action.h", diff --git a/chrome/browser/ui/apps/chrome_app_delegate.cc b/chrome/browser/ui/apps/chrome_app_delegate.cc index 5b90605119028..151e0602639e2 100644 --- a/chrome/browser/ui/apps/chrome_app_delegate.cc +++ b/chrome/browser/ui/apps/chrome_app_delegate.cc @@ -8,6 +8,12 @@ #include #include "base/macros.h" + +#include "chrome/browser/sessions/session_tab_helper.h" +#include "chrome/browser/extensions/tab_helper.h" +#include "chrome/browser/password_manager/chrome_password_manager_client.h" +#include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" + #include "base/strings/stringprintf.h" #include "chrome/browser/app_mode/app_mode_utils.h" #include "chrome/browser/chrome_notification_types.h" @@ -53,10 +59,16 @@ #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) #endif // BUILDFLAG(ENABLE_PRINTING) +#include "chrome/browser/browser_process.h" +#include "chrome/browser/ui/autofill/chrome_autofill_client.h" +#include "components/autofill/content/browser/content_autofill_driver_factory.h" +#include "components/autofill/core/browser/autofill_manager.h" +#include "chrome/browser/ui/prefs/prefs_tab_helper.h" + namespace { // Time to wait for an app window to show before allowing Chrome to quit. -int kAppWindowFirstShowTimeoutSeconds = 10; +//int kAppWindowFirstShowTimeoutSeconds = 10; bool disable_external_open_for_testing_ = false; @@ -71,7 +83,7 @@ content::WebContents* OpenURLFromTabInternal( if (params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB) { new_tab_params.disposition = WindowOpenDisposition::NEW_BACKGROUND_TAB; } else { - new_tab_params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB; + new_tab_params.disposition = WindowOpenDisposition::NEW_POPUP; new_tab_params.window_action = chrome::NavigateParams::SHOW_WINDOW; } @@ -162,6 +174,7 @@ ChromeAppDelegate::ChromeAppDelegate(bool keep_alive) : has_been_shown_(false), is_hidden_(true), new_window_contents_delegate_(new NewWindowContentsDelegate()), + web_contents_(nullptr), weak_factory_(this) { if (keep_alive) { keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE, @@ -184,6 +197,8 @@ void ChromeAppDelegate::DisableExternalOpenForTesting() { void ChromeAppDelegate::InitWebContents(content::WebContents* web_contents) { data_use_measurement::DataUseWebContentsObserver::CreateForWebContents( web_contents); + web_contents_ = web_contents; + favicon::CreateContentFaviconDriverForWebContents(web_contents); #if BUILDFLAG(ENABLE_PRINTING) @@ -194,10 +209,30 @@ void ChromeAppDelegate::InitWebContents(content::WebContents* web_contents) { printing::PrintViewManagerBasic::CreateForWebContents(web_contents); #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) #endif // BUILDFLAG(ENABLE_PRINTING) - extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( - web_contents); + // ZoomController comes before common tab helpers since ChromeExtensionWebContentsObserver + // may want to register as a ZoomObserver with it. zoom::ZoomController::CreateForWebContents(web_contents); + +#if 1 + extensions::TabHelper::CreateForWebContents(web_contents); +#else + SessionTabHelper::CreateForWebContents(web_contents); + + extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( + web_contents); +#endif + autofill::ChromeAutofillClient::CreateForWebContents(web_contents); + autofill::ContentAutofillDriverFactory::CreateForWebContentsAndDelegate( + web_contents, + autofill::ChromeAutofillClient::FromWebContents(web_contents), + g_browser_process->GetApplicationLocale(), + autofill::AutofillManager::ENABLE_AUTOFILL_DOWNLOAD_MANAGER); + ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( + web_contents, + autofill::ChromeAutofillClient::FromWebContents(web_contents)); + ManagePasswordsUIController::CreateForWebContents(web_contents); + PrefsTabHelper::CreateForWebContents(web_contents); } void ChromeAppDelegate::RenderViewCreated( @@ -237,11 +272,13 @@ void ChromeAppDelegate::AddNewContents(content::BrowserContext* context, bool user_gesture, bool* was_blocked) { if (!disable_external_open_for_testing_) { +#if 0 // We don't really want to open a window for |new_contents|, but we need to // capture its intended navigation. Here we give ownership to the // NewWindowContentsDelegate, which will dispose of the contents once // a navigation is captured. new_contents->SetDelegate(new_window_contents_delegate_.get()); +#endif return; } chrome::ScopedTabbedBrowserDisplayer displayer( @@ -323,6 +360,7 @@ void ChromeAppDelegate::SetTerminatingCallback(const base::Closure& callback) { void ChromeAppDelegate::OnHide() { is_hidden_ = true; +#if 0 if (has_been_shown_) { keep_alive_.reset(); return; @@ -335,13 +373,16 @@ void ChromeAppDelegate::OnHide() { base::Bind(&ChromeAppDelegate::RelinquishKeepAliveAfterTimeout, weak_factory_.GetWeakPtr()), base::TimeDelta::FromSeconds(kAppWindowFirstShowTimeoutSeconds)); +#endif } void ChromeAppDelegate::OnShow() { has_been_shown_ = true; is_hidden_ = false; +#if 0 keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE, KeepAliveRestartOption::DISABLED)); +#endif } void ChromeAppDelegate::Observe(int type, diff --git a/chrome/browser/ui/apps/chrome_app_delegate.h b/chrome/browser/ui/apps/chrome_app_delegate.h index 3d687f41e9672..6c602ecdec6c1 100644 --- a/chrome/browser/ui/apps/chrome_app_delegate.h +++ b/chrome/browser/ui/apps/chrome_app_delegate.h @@ -70,7 +70,6 @@ class ChromeAppDelegate : public extensions::AppDelegate, void SetTerminatingCallback(const base::Closure& callback) override; void OnHide() override; void OnShow() override; - // content::NotificationObserver: void Observe(int type, const content::NotificationSource& source, @@ -82,6 +81,7 @@ class ChromeAppDelegate : public extensions::AppDelegate, std::unique_ptr new_window_contents_delegate_; base::Closure terminating_callback_; content::NotificationRegistrar registrar_; + content::WebContents* web_contents_; base::WeakPtrFactory weak_factory_; DISALLOW_COPY_AND_ASSIGN(ChromeAppDelegate); diff --git a/chrome/browser/ui/apps/chrome_app_window_client.cc b/chrome/browser/ui/apps/chrome_app_window_client.cc index 3349e24d5a937..a3ee491a723b6 100644 --- a/chrome/browser/ui/apps/chrome_app_window_client.cc +++ b/chrome/browser/ui/apps/chrome_app_window_client.cc @@ -13,6 +13,8 @@ #include "extensions/common/extension.h" #include "extensions/common/features/feature_channel.h" +#include "content/nw/src/nw_content.h" + // TODO(jamescook): We probably shouldn't compile this class at all on Android. // See http://crbug.com/343612 #if !defined(OS_ANDROID) @@ -38,8 +40,10 @@ extensions::AppWindow* ChromeAppWindowClient::CreateAppWindow( #if defined(OS_ANDROID) return NULL; #else - return new extensions::AppWindow(context, new ChromeAppDelegate(true), + extensions::AppWindow* ret = new extensions::AppWindow(context, new ChromeAppDelegate(true), extension); + nw::CreateAppWindowHook(ret); + return ret; #endif } diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 60737ae6c7d2e..7d360b12ba15e 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -271,7 +271,7 @@ bool IsFastTabUnloadEnabled() { // Browser, CreateParams: Browser::CreateParams::CreateParams(Profile* profile) - : type(TYPE_TABBED), + : type(TYPE_POPUP), profile(profile), trusted_source(false), initial_show_state(ui::SHOW_STATE_DEFAULT), @@ -279,7 +279,7 @@ Browser::CreateParams::CreateParams(Profile* profile) window(NULL) {} Browser::CreateParams::CreateParams(Type type, Profile* profile) - : type(type), + : type(TYPE_POPUP), profile(profile), trusted_source(false), initial_show_state(ui::SHOW_STATE_DEFAULT), @@ -1610,7 +1610,8 @@ void Browser::WebContentsCreated(WebContents* source_contents, int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - WebContents* new_contents) { + WebContents* new_contents, + const base::string16& nw_window_manifest) { // Adopt the WebContents now, so all observers are in place, as the network // requests for its initial navigation will start immediately. The WebContents // will later be inserted into this browser using Browser::Navigate via @@ -2079,11 +2080,13 @@ void Browser::OnExtensionUnloaded( void Browser::OnIsPageTranslatedChanged(content::WebContents* source) { DCHECK(source); +#if 0 if (tab_strip_model_->GetActiveWebContents() == source) { window_->SetTranslateIconToggled( ChromeTranslateClient::FromWebContents( source)->GetLanguageState().IsPageTranslated()); } +#endif } void Browser::OnTranslateEnabledChanged(content::WebContents* source) { @@ -2348,14 +2351,14 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) { SetDelegate(delegate); CoreTabHelper::FromWebContents(web_contents)->set_delegate(delegate); SearchTabHelper::FromWebContents(web_contents)->set_delegate(delegate); - translate::ContentTranslateDriver& content_translate_driver = - ChromeTranslateClient::FromWebContents(web_contents)->translate_driver(); + // translate::ContentTranslateDriver& content_translate_driver = + // ChromeTranslateClient::FromWebContents(web_contents)->translate_driver(); if (delegate) { zoom::ZoomController::FromWebContents(web_contents)->AddObserver(this); - content_translate_driver.AddObserver(this); + //content_translate_driver.AddObserver(this); } else { zoom::ZoomController::FromWebContents(web_contents)->RemoveObserver(this); - content_translate_driver.RemoveObserver(this); + //content_translate_driver.RemoveObserver(this); } } diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index 6cdff54b676fd..e4b24f85d9ac0 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -625,7 +625,8 @@ class Browser : public TabStripModelObserver, int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - content::WebContents* new_contents) override; + content::WebContents* new_contents, + const base::string16& nw_window_manifest) override; void RendererUnresponsive( content::WebContents* source, const content::WebContentsUnresponsiveState& unresponsive_state) override; diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index d0066faf760ef..300c60f99675f 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc @@ -361,6 +361,7 @@ int GetContentRestrictions(const Browser* browser) { } void NewEmptyWindow(Profile* profile) { +#if 0 bool incognito = profile->IsOffTheRecord(); PrefService* prefs = profile->GetPrefs(); if (incognito) { @@ -388,6 +389,7 @@ void NewEmptyWindow(Profile* profile) { OpenEmptyWindow(profile->GetOriginalProfile()); } } +#endif } Browser* OpenEmptyWindow(Profile* profile) { @@ -842,6 +844,7 @@ void SaveCreditCard(Browser* browser) { } void Translate(Browser* browser) { +#if 0 if (!browser->window()->IsActive()) return; @@ -861,6 +864,7 @@ void Translate(Browser* browser) { web_contents, step, translate::TranslateErrors::NONE, true); if (result != ShowTranslateBubbleResult::SUCCESS) translate::ReportUiAction(TranslateBubbleResultToUiEvent(result)); +#endif } void ManagePasswordsForPage(Browser* browser) { diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc index 443970abfb188..dd185a579a20a 100644 --- a/chrome/browser/ui/chrome_pages.cc +++ b/chrome/browser/ui/chrome_pages.cc @@ -65,7 +65,7 @@ using base::UserMetricsAction; namespace chrome { namespace { -const char kHashMark[] = "#"; +//const char kHashMark[] = "#"; void OpenBookmarkManagerWithHash(Browser* browser, const std::string& action, @@ -140,6 +140,7 @@ void ShowHelpImpl(Browser* browser, Profile* profile, HelpSource source) { #endif } +#if 0 std::string GenerateContentSettingsExceptionsSubPage(ContentSettingsType type) { if (!base::FeatureList::IsEnabled(features::kMaterialDesignSettings)) { return kDeprecatedOptionsContentSettingsExceptionsSubPage + @@ -172,6 +173,7 @@ std::string GenerateContentSettingsExceptionsSubPage(ContentSettingsType type) { return std::string(kContentSettingsSubPage) + "/" + content_type_path; } +#endif #if defined(OS_CHROMEOS) std::string GenerateContentSettingsSearchQueryPath(int query_message_id) { @@ -351,24 +353,30 @@ void ShowSettingsSubPageInTabbedBrowser(Browser* browser, void ShowContentSettingsExceptions(Browser* browser, ContentSettingsType content_settings_type) { +#if 0 ShowSettingsSubPage( browser, GenerateContentSettingsExceptionsSubPage(content_settings_type)); +#endif } void ShowContentSettingsExceptionsInWindow( Profile* profile, ContentSettingsType content_settings_type) { +#if 0 DCHECK(switches::SettingsWindowEnabled()); ShowSettingsSubPageForProfile( profile, GenerateContentSettingsExceptionsSubPage(content_settings_type)); +#endif } void ShowContentSettings(Browser* browser, ContentSettingsType content_settings_type) { +#if 0 ShowSettingsSubPage( browser, kContentSettingsSubPage + std::string(kHashMark) + site_settings::ContentSettingsTypeToGroupName(content_settings_type)); +#endif } void ShowClearBrowsingDataDialog(Browser* browser) { diff --git a/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac.mm b/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac.mm index 1da50bbb78bbd..710ddb1e4c3c9 100644 --- a/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac.mm +++ b/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac.mm @@ -25,6 +25,11 @@ using extensions::Extension; +#include "chrome/browser/devtools/devtools_window.h" + +#include "content/nw/src/api/menu/menu.h" +#include "content/nw/src/common/shell_switches.h" + namespace { // When an app window loses main status, AppKit may make another app window main @@ -76,6 +81,7 @@ void AddDuplicateItem(NSMenuItem* top_level_item, [[top_level_item submenu] addItem:item]; } +#if 0 // Finds an item with |item_tag| and removes it from the submenu of // |top_level_item|. void RemoveMenuItemWithTag(NSMenuItem* top_level_item, @@ -133,6 +139,7 @@ void SetItemWithTagVisible(NSMenuItem* top_level_item, [alternate_item setHidden:!visible]; [menu_item setHidden:!visible]; } +#endif // Return the Extension (if any) associated with the given window. If it is not // a platform app nor hosted app, but it is a browser, |is_browser| will be set @@ -212,6 +219,7 @@ void SetAppCyclesWindows(const std::string& app_id, int sequence_number) { [[NSApp keyWindow] makeKeyAndOrderFront:nil]; } +#if 0 // Sets the window cycle list to Chrome browser windows only. void SetChromeCyclesWindows(int sequence_number) { if (g_window_cycle_sequence_number != sequence_number) @@ -227,6 +235,7 @@ void SetChromeCyclesWindows(int sequence_number) { if (any_change) [[NSApp keyWindow] makeKeyAndOrderFront:nil]; } +#endif } // namespace @@ -355,6 +364,7 @@ - (void)quitCurrentPlatformApp; - (void)hideCurrentPlatformApp; // If the currently focused window belongs to a platform app, focus the app. - (void)focusCurrentPlatformApp; +- (void)showDevtools; @end @implementation AppShimMenuController @@ -394,6 +404,7 @@ - (void)buildAppMenuItems { resourceId:IDS_EXIT_MAC action:@selector(quitCurrentPlatformApp) keyEquivalent:@"q"]); +#if 0 newDoppelganger_.reset([[DoppelgangerMenuItem alloc] initWithController:self menuTag:IDC_FILE_MENU @@ -418,6 +429,7 @@ - (void)buildAppMenuItems { resourceId:0 action:nil keyEquivalent:@"o"]); +#endif allToFrontDoppelganger_.reset([[DoppelgangerMenuItem alloc] initWithController:self menuTag:IDC_WINDOW_MENU @@ -441,18 +453,21 @@ - (void)buildAppMenuItems { [appMenu addItem:[NSMenuItem separatorItem]]; [appMenu addItem:[quitDoppelganger_ menuItem]]; +#if 0 // File menu. fileMenuItem_.reset([NewTopLevelItemFrom(IDC_FILE_MENU) retain]); [[fileMenuItem_ submenu] addItem:[newDoppelganger_ menuItem]]; [[fileMenuItem_ submenu] addItem:[openDoppelganger_ menuItem]]; [[fileMenuItem_ submenu] addItem:[NSMenuItem separatorItem]]; [[fileMenuItem_ submenu] addItem:[closeWindowDoppelganger_ menuItem]]; +#endif // Edit menu. We copy the menu because the last two items, "Start Dictation" // and "Special Characters" are added by OSX, so we can't copy them // explicitly. editMenuItem_.reset([[[NSApp mainMenu] itemWithTag:IDC_EDIT_MENU] copy]); +#if 0 // View menu. Remove "Always Show Bookmark Bar" and separator. viewMenuItem_.reset([[[NSApp mainMenu] itemWithTag:IDC_VIEW_MENU] copy]); RemoveMenuItemWithTag(viewMenuItem_, IDC_SHOW_BOOKMARK_BAR, YES); @@ -462,12 +477,34 @@ - (void)buildAppMenuItems { AddDuplicateItem(historyMenuItem_, IDC_HISTORY_MENU, IDC_BACK); AddDuplicateItem(historyMenuItem_, IDC_HISTORY_MENU, IDC_FORWARD); +#endif // Window menu. windowMenuItem_.reset([NewTopLevelItemFrom(IDC_WINDOW_MENU) retain]); AddDuplicateItem(windowMenuItem_, IDC_WINDOW_MENU, IDC_MINIMIZE_WINDOW); AddDuplicateItem(windowMenuItem_, IDC_WINDOW_MENU, IDC_MAXIMIZE_WINDOW); [[windowMenuItem_ submenu] addItem:[NSMenuItem separatorItem]]; [[windowMenuItem_ submenu] addItem:[allToFrontDoppelganger_ menuItem]]; + +#if defined(NWJS_SDK) + bool enable_devtools = true; + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kDisableDevTools)) + enable_devtools = false; + + if (enable_devtools) { + [[windowMenuItem_ submenu] setAutoenablesItems:NO]; + NSMenuItem* item = [[NSMenuItem alloc] + initWithTitle:@"Devtools" + action:@selector(showDevtools) + keyEquivalent:@"i"]; + [item setTag:IDC_DEV_TOOLS_CONSOLE]; + [item setTarget:self]; + [item setEnabled:YES]; + [item setKeyEquivalentModifierMask:NSCommandKeyMask | NSAlternateKeyMask]; + [[windowMenuItem_ submenu] addItem:item]; + } +#endif } - (void)registerEventHandlers { @@ -499,8 +536,17 @@ - (void)windowMainStatusChanged:(NSNotification*)notification { const Extension* extension = GetExtensionForNSWindow(window, &is_browser); // Ignore is_browser: if a window becomes main that does not belong to an // extension or browser, treat it the same as switching to a browser. - if (extension) + + extensions::AppWindow* appWindow = + AppWindowRegistryUtil::GetAppWindowForNativeWindowAnyProfile( + window); + if (extension) { + if (appWindow->menu_) { + [NSApp setMainMenu:appWindow->menu_->menu_]; + return; + } [self appBecameMain:extension]; + } else [self chromeBecameMain]; } else if ([name isEqualToString:NSWindowDidResignMainNotification]) { @@ -531,7 +577,12 @@ - (void)appBecameMain:(const Extension*)app { return; if (!appId_.empty()) - [self removeMenuItems]; + return; + // #4591: when app sets menubar and launch another chrome app, + // removeMenuItems will try to remove appmenuitem which isn't + // in the main menu; then app will crash. + // so after this function runs once, we just do nothing and return here + //[self removeMenuItems]; appId_ = app->id(); [self addMenuItems:app]; @@ -543,6 +594,7 @@ - (void)appBecameMain:(const Extension*)app { } - (void)chromeBecameMain { +#if 0 if (appId_.empty()) return; @@ -553,6 +605,7 @@ - (void)chromeBecameMain { FROM_HERE, base::Bind(&SetChromeCyclesWindows, ++g_window_cycle_sequence_number)); } +#endif } - (void)addMenuItems:(const Extension*)app { @@ -567,14 +620,15 @@ - (void)addMenuItems:(const Extension*)app { [aboutDoppelganger_ enableForApp:app]; [hideDoppelganger_ enableForApp:app]; [quitDoppelganger_ enableForApp:app]; - [newDoppelganger_ enableForApp:app]; - [openDoppelganger_ enableForApp:app]; - [closeWindowDoppelganger_ enableForApp:app]; + //[newDoppelganger_ enableForApp:app]; + //[openDoppelganger_ enableForApp:app]; + //[closeWindowDoppelganger_ enableForApp:app]; [appMenuItem_ setTitle:base::SysUTF8ToNSString(appId_)]; [[appMenuItem_ submenu] setTitle:title]; [mainMenu addItem:appMenuItem_]; +#if 0 [mainMenu addItem:fileMenuItem_]; SetItemWithTagVisible(editMenuItem_, @@ -582,23 +636,28 @@ - (void)addMenuItems:(const Extension*)app { app->is_hosted_app(), true); SetItemWithTagVisible(editMenuItem_, IDC_FIND_MENU, app->is_hosted_app(), false); +#endif [mainMenu addItem:editMenuItem_]; +#if 0 if (app->is_hosted_app()) { [mainMenu addItem:viewMenuItem_]; [mainMenu addItem:historyMenuItem_]; } +#endif [mainMenu addItem:windowMenuItem_]; } - (void)removeMenuItems { NSMenu* mainMenu = [NSApp mainMenu]; [mainMenu removeItem:appMenuItem_]; - [mainMenu removeItem:fileMenuItem_]; + //[mainMenu removeItem:fileMenuItem_]; +#if 0 if ([mainMenu indexOfItem:viewMenuItem_] >= 0) [mainMenu removeItem:viewMenuItem_]; if ([mainMenu indexOfItem:historyMenuItem_] >= 0) [mainMenu removeItem:historyMenuItem_]; +#endif [mainMenu removeItem:editMenuItem_]; [mainMenu removeItem:windowMenuItem_]; @@ -609,9 +668,9 @@ - (void)removeMenuItems { [aboutDoppelganger_ disable]; [hideDoppelganger_ disable]; [quitDoppelganger_ disable]; - [newDoppelganger_ disable]; - [openDoppelganger_ disable]; - [closeWindowDoppelganger_ disable]; + //[newDoppelganger_ disable]; + //[openDoppelganger_ disable]; + //[closeWindowDoppelganger_ disable]; } - (void)quitCurrentPlatformApp { @@ -619,7 +678,7 @@ - (void)quitCurrentPlatformApp { AppWindowRegistryUtil::GetAppWindowForNativeWindowAnyProfile( [NSApp keyWindow]); if (appWindow) { - apps::ExtensionAppShimHandler::QuitAppForWindow(appWindow); + apps::ExtensionAppShimHandler::QuitAppForWindow(appWindow, true); } else { Browser* browser = chrome::FindBrowserWithWindow([NSApp keyWindow]); const Extension* extension = @@ -654,4 +713,12 @@ - (void)focusCurrentPlatformApp { apps::ExtensionAppShimHandler::FocusAppForWindow(appWindow); } +- (void)showDevtools { + extensions::AppWindow* appWindow = + AppWindowRegistryUtil::GetAppWindowForNativeWindowAnyProfile( + [NSApp keyWindow]); + if (appWindow) + DevToolsWindow::OpenDevToolsWindow(appWindow->web_contents()); +} + @end diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h index e0d91ad45e1fb..bc48685b01b03 100644 --- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h +++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h @@ -46,6 +46,7 @@ class SkRegion; - (BOOL)handledByExtensionCommand:(NSEvent*)event priority:(ui::AcceleratorManager::HandlerPriority)priority; +- (void)closeAllWindowsQuit:(id)sender; @end // Cocoa bridge to AppWindow. @@ -76,10 +77,13 @@ class NativeAppWindowCocoa : public extensions::NativeAppWindow, void SetBounds(const gfx::Rect& bounds) override; void FlashFrame(bool flash) override; bool IsAlwaysOnTop() const override; + void SetShowInTaskbar(bool show) override; // Called when the window is about to be closed. void WindowWillClose(); + bool NWCanClose(bool user_force = false); + // Called when the window is focused. void WindowDidBecomeKey(); @@ -126,6 +130,8 @@ class NativeAppWindowCocoa : public extensions::NativeAppWindow, protected: // NativeAppWindow implementation. void SetFullscreen(int fullscreen_types) override; + void SetResizable(bool flag) override; + bool IsResizable() const override; bool IsFullscreenOrPending() const override; void UpdateWindowIcon() override; void UpdateWindowTitle() override; @@ -185,7 +191,9 @@ class NativeAppWindowCocoa : public extensions::NativeAppWindow, // Hides the window unconditionally. Used by Hide and HideWithApp. void HideWithoutMarkingHidden(); +public: extensions::AppWindow* app_window_; // weak - AppWindow owns NativeAppWindow. +private: bool has_frame_; diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm index c3cfb679918a7..dc6bd0c023b7b 100644 --- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm +++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm @@ -16,8 +16,12 @@ #import "chrome/browser/ui/cocoa/chrome_event_processing_window.h" #include "chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa.h" #include "chrome/browser/ui/cocoa/extensions/extension_view_mac.h" +#import "chrome/browser/ui/cocoa/full_size_content_window.h" #include "chrome/common/chrome_switches.h" #include "content/public/browser/native_web_keyboard_event.h" +#include "content/public/browser/render_view_host.h" +#include "content/public/browser/render_widget_host.h" +#include "content/public/browser/render_widget_host_view.h" #include "content/public/browser/web_contents.h" #include "extensions/common/extension.h" #include "skia/ext/skia_utils_mac.h" @@ -25,6 +29,9 @@ #import "ui/gfx/mac/nswindow_frame_controls.h" #include "ui/gfx/skia_util.h" +#include "ui/display/screen.h" +#include "content/nw/src/nw_content_mac.h" + // NOTE: State Before Update. // // Internal state, such as |is_maximized_|, must be set before the window @@ -43,12 +50,18 @@ // desired size. using extensions::AppWindow; +using extensions::AppWindowRegistry; @interface NSWindow (NSPrivateApis) - (void)setBottomCornerRounded:(BOOL)rounded; - (BOOL)_isTitleHidden; @end +namespace content { + extern bool g_support_transparency; + extern bool g_force_cpu_draw; +} + namespace { const int kActivateThrottlePeriodSeconds = 2; @@ -102,6 +115,12 @@ - (void)setTitlebarBackgroundView:(NSView*)view { titlebar_background_view_.reset([view retain]); } +- (BOOL)windowShouldClose:(id)sender { + if (appWindow_ && !appWindow_->NWCanClose()) + return NO; + return YES; +} + - (void)windowWillClose:(NSNotification*)notification { if (appWindow_) appWindow_->WindowWillClose(); @@ -181,6 +200,24 @@ - (BOOL)handledByExtensionCommand:(NSEvent*)event return NO; } +// this function is for createMacBuiltin only +- (void)closeAllWindowsQuit:(id)sender { + if (!appWindow_) + return; + AppWindowRegistry* registry = AppWindowRegistry::Get(appWindow_->app_window_->browser_context()); + if (!registry) + return; + + AppWindowRegistry::AppWindowList windows = + registry->GetAppWindowsForApp(appWindow_->app_window_->GetExtension()->id()); + + for (AppWindow* window : windows) { + // passing true for createMacBuiltin: https://github.com/nwjs/nw.js/issues/4580#issuecomment-199236153 + if (window->NWCanClose(true)) + window->GetBaseWindow()->Close(); + } +} + @end @interface AppNSWindow : ChromeEventProcessingWindow @@ -191,7 +228,7 @@ @implementation AppNSWindow // Similar to ChromeBrowserWindow, don't draw the title, but allow it to be seen // in menus, Expose, etc. - (BOOL)_isTitleHidden { - return YES; + return NO; } @end @@ -219,6 +256,10 @@ - (NSRect)contentRectForFrameRect:(NSRect)frameRect { return frameRect; } +- (BOOL)_isTitleHidden { + return YES; +} + @end @interface ControlRegionView : NSView @@ -274,7 +315,7 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; if (extension) name = extension->name(); [window setTitle:base::SysUTF8ToNSString(name)]; - [[window contentView] setWantsLayer:YES]; + [[window contentView] setWantsLayer:!content::g_force_cpu_draw]; if (params.always_on_top) gfx::SetNSWindowAlwaysOnTop(window, true); @@ -284,6 +325,12 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; window_controller_.reset( [[NativeAppWindowController alloc] initWithWindow:window]); + + if (content::g_support_transparency && params.alpha_enabled) { + [window setHasShadow: NO]; + [window setOpaque: NO]; + [window setBackgroundColor: [NSColor clearColor]]; + } if (has_frame_ && has_frame_color_) { TitlebarBackgroundView* view = @@ -303,7 +350,12 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; // We can now compute the precise window bounds and constraints. gfx::Insets insets = GetFrameInsets(); - SetBounds(params.GetInitialWindowBounds(insets)); + gfx::Rect bounds = params.GetInitialWindowBounds(insets); + if (params.position == AppWindow::POS_MOUSE) { + gfx::Point cursor_pos(display::Screen::GetScreen()->GetCursorScreenPoint()); + bounds.set_origin(cursor_pos); + } + SetBounds(bounds); SetContentSizeConstraints(params.GetContentMinimumSize(insets), params.GetContentMaximumSize(insets)); @@ -344,7 +396,9 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; NSView* frameView = [[window() contentView] superview]; [view setFrame:[frameView bounds]]; + BOOL old = [FullSizeContentWindow setDisableSymbolication:YES]; [frameView addSubview:view]; + [FullSizeContentWindow setDisableSymbolication:old]; [[window() standardWindowButton:NSWindowZoomButton] setHidden:YES]; [[window() standardWindowButton:NSWindowMiniaturizeButton] setHidden:YES]; @@ -380,6 +434,10 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; return is_fullscreen_; } +void NativeAppWindowCocoa::SetShowInTaskbar(bool show) { + NWSetNSWindowShowInTaskbar(this, show); +} + void NativeAppWindowCocoa::SetFullscreen(int fullscreen_types) { bool fullscreen = (fullscreen_types != AppWindow::FULLSCREEN_TYPE_NONE); if (fullscreen == is_fullscreen_) @@ -563,6 +621,16 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; event.type == content::NativeWebKeyboardEvent::Char) { return; } + + // NW fix + // Simple key press events without modifiers should be sent to the menu. + // See https://github.com/nwjs/nw.js/issues/4837 + NSEvent* nsEvent = event.os_event; + if ([nsEvent type] == NSKeyDown) { + if ([[NSApp mainMenu] performKeyEquivalent:nsEvent]) + return; + } + [window() redispatchKeyEvent:event.os_event]; } @@ -622,6 +690,12 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; void NativeAppWindowCocoa::RenderViewCreated(content::RenderViewHost* rvh) { if (IsActive()) WebContents()->RestoreFocus(); + if (content::g_support_transparency && + app_window_->requested_alpha_enabled() && CanHaveAlphaEnabled()) { + content::RenderWidgetHostView* view = rvh->GetWidget()->GetView(); + DCHECK(view); + view->SetBackgroundColor(SK_ColorTRANSPARENT); + } } bool NativeAppWindowCocoa::IsFrameless() const { @@ -660,7 +734,7 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; } bool NativeAppWindowCocoa::CanHaveAlphaEnabled() const { - return false; + return content::g_support_transparency ? [window() isOpaque] == NO : false; } gfx::NativeView NativeAppWindowCocoa::GetHostView() const { @@ -693,6 +767,10 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; app_window_->OnNativeClose(); } +bool NativeAppWindowCocoa::NWCanClose(bool user_force) { + return app_window_->NWCanClose(user_force); +} + void NativeAppWindowCocoa::WindowDidBecomeKey() { app_window_->OnNativeWindowActivated(); @@ -782,7 +860,8 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; void NativeAppWindowCocoa::HideWithApp() { is_hidden_with_app_ = true; - HideWithoutMarkingHidden(); + [NSApp hide:nil]; +// HideWithoutMarkingHidden(); } gfx::Size NativeAppWindowCocoa::GetContentMinimumSize() const { @@ -793,6 +872,25 @@ - (void)setMouseDownCanMoveWindow:(BOOL)can_move; return size_constraints_.GetMaximumSize(); } +void NativeAppWindowCocoa::SetResizable(bool flag) { + is_resizable_ = flag; + gfx::Size min_size = size_constraints_.GetMinimumSize(); + gfx::Size max_size = size_constraints_.GetMaximumSize(); + + shows_resize_controls_ = + is_resizable_ && !size_constraints_.HasFixedSize(); + shows_fullscreen_controls_ = + is_resizable_ && !size_constraints_.HasMaximumSize() && has_frame_; + + gfx::ApplyNSWindowSizeConstraints(window(), min_size, max_size, + shows_resize_controls_, + shows_fullscreen_controls_); +} + +bool NativeAppWindowCocoa::IsResizable() const { + return is_resizable_; +} + void NativeAppWindowCocoa::SetContentSizeConstraints( const gfx::Size& min_size, const gfx::Size& max_size) { // Update the size constraints. diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm index 8c4984149ee47..9c7d78686dff1 100644 --- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm @@ -136,6 +136,8 @@ - (void)validateText:(NSString*)text { initial_show_state_(ui::SHOW_STATE_DEFAULT), attention_request_id_(0) { + CHECK(browser->is_type_popup()) << "opening browser window."; + gfx::Rect bounds; chrome::GetSavedWindowBoundsAndShowState(browser_, &bounds, @@ -624,6 +626,7 @@ - (void)validateText:(NSString*)text { translate::TranslateStep step, translate::TranslateErrors::Type error_type, bool is_user_gesture) { +#if 0 ChromeTranslateClient* chrome_translate_client = ChromeTranslateClient::FromWebContents(contents); translate::LanguageState& language_state = @@ -634,6 +637,7 @@ - (void)validateText:(NSString*)text { step:step errorType:error_type]; +#endif return ShowTranslateBubbleResult::SUCCESS; } diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm index 8de8b1a0db208..358cdae06b90d 100644 --- a/chrome/browser/ui/cocoa/browser_window_controller.mm +++ b/chrome/browser/ui/cocoa/browser_window_controller.mm @@ -1555,6 +1555,7 @@ - (void)showTranslateBubbleForWebContents:(content::WebContents*)contents step:(translate::TranslateStep)step errorType:(translate::TranslateErrors::Type) errorType { +#if 0 // TODO(hajimehoshi): The similar logic exists at TranslateBubbleView:: // ShowBubble. This should be unified. if (translateBubbleController_) { @@ -1598,6 +1599,7 @@ - (void)showTranslateBubbleForWebContents:(content::WebContents*)contents selector:@selector(translateBubbleWindowWillClose:) name:NSWindowWillCloseNotification object:[translateBubbleController_ window]]; +#endif } - (void)dismissPermissionBubble { diff --git a/chrome/browser/ui/cocoa/full_size_content_window.h b/chrome/browser/ui/cocoa/full_size_content_window.h index 078d9fbb22556..4c1b9a0a36779 100644 --- a/chrome/browser/ui/cocoa/full_size_content_window.h +++ b/chrome/browser/ui/cocoa/full_size_content_window.h @@ -41,6 +41,8 @@ // [window contentView] to the given frame. - (void)forceContentViewFrame:(NSRect)frame; ++ (BOOL)setDisableSymbolication:(BOOL)sym; + @end #endif // CHROME_BROWSER_UI_COCOA_FULL_SIZE_CONTENT_WINDOW_H_ diff --git a/chrome/browser/ui/cocoa/full_size_content_window.mm b/chrome/browser/ui/cocoa/full_size_content_window.mm index 3b4c82b2e1e22..b41f5e0b7fc21 100644 --- a/chrome/browser/ui/cocoa/full_size_content_window.mm +++ b/chrome/browser/ui/cocoa/full_size_content_window.mm @@ -174,6 +174,12 @@ - (void)forceContentViewFrame:(NSRect)frame { } } ++ (BOOL)setDisableSymbolication:(BOOL)sym { + BOOL old = g_disable_callstacksymbols; + g_disable_callstacksymbols = sym; + return old; +} + #pragma mark - Private Methods + (BOOL)shouldUseFullSizeContentViewForStyle:(NSUInteger)windowStyle { diff --git a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm index 581610865a5ec..50662a0f75ac3 100644 --- a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm +++ b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm @@ -871,6 +871,7 @@ new ManagePasswordsDecoration(command_updater, this)), } void LocationBarViewMac::UpdateTranslateDecoration() { +#if 0 if (!TranslateService::IsTranslateBubbleEnabled()) return; @@ -884,6 +885,7 @@ new ManagePasswordsDecoration(command_updater, this)), translate_decoration_->SetVisible(enabled); translate_decoration_->SetLit(language_state.IsPageTranslated(), IsLocationBarDark()); +#endif } bool LocationBarViewMac::UpdateZoomDecoration(bool default_zoom_changed) { diff --git a/chrome/browser/ui/cocoa/status_icons/status_icon_mac.h b/chrome/browser/ui/cocoa/status_icons/status_icon_mac.h index 19be82175c060..995061e7b6001 100644 --- a/chrome/browser/ui/cocoa/status_icons/status_icon_mac.h +++ b/chrome/browser/ui/cocoa/status_icons/status_icon_mac.h @@ -36,7 +36,7 @@ class StatusIconMac : public StatusIcon { protected: // Overridden from StatusIcon. - void UpdatePlatformContextMenu(StatusIconMenuModel* model) override; + void UpdatePlatformContextMenu(ui::MenuModel* model) override; private: FRIEND_TEST_ALL_PREFIXES(StatusIconMacTest, CreateMenu); diff --git a/chrome/browser/ui/cocoa/status_icons/status_icon_mac.mm b/chrome/browser/ui/cocoa/status_icons/status_icon_mac.mm index f0566febac48f..cd98fc7ecba6c 100644 --- a/chrome/browser/ui/cocoa/status_icons/status_icon_mac.mm +++ b/chrome/browser/ui/cocoa/status_icons/status_icon_mac.mm @@ -96,7 +96,7 @@ - (void)handleClick:(id)sender { return menu_.get() != nil; } -void StatusIconMac::UpdatePlatformContextMenu(StatusIconMenuModel* model) { +void StatusIconMac::UpdatePlatformContextMenu(ui::MenuModel* model) { if (!model) { menu_.reset(); } else { diff --git a/chrome/browser/ui/cocoa/tabs/tab_window_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_window_controller.mm index 73d0f3e755b97..15e401edd65d2 100644 --- a/chrome/browser/ui/cocoa/tabs/tab_window_controller.mm +++ b/chrome/browser/ui/cocoa/tabs/tab_window_controller.mm @@ -104,7 +104,10 @@ - (id)initTabWindowControllerWithTabStrip:(BOOL)hasTabStrip NSWidth([windowView bounds]), paintHeight)]); [tabStripBackgroundView_ setAutoresizingMask:NSViewWidthSizable | NSViewMinYMargin]; - [self insertTabStripBackgroundViewIntoWindow:window titleBar:hasTitleBar]; + + //fix warning when opening devtools: #4312 + if (hasTabStrip) + [self insertTabStripBackgroundViewIntoWindow:window titleBar:hasTitleBar]; tabStripView_.reset([[TabStripView alloc] initWithFrame:NSMakeRect( diff --git a/chrome/browser/ui/libgtkui/app_indicator_icon.cc b/chrome/browser/ui/libgtkui/app_indicator_icon.cc index 3aafd0ab9629c..c2847da4dfe13 100644 --- a/chrome/browser/ui/libgtkui/app_indicator_icon.cc +++ b/chrome/browser/ui/libgtkui/app_indicator_icon.cc @@ -237,7 +237,6 @@ void AppIndicatorIcon::SetImage(const gfx::ImageSkia& image) { } void AppIndicatorIcon::SetToolTip(const base::string16& tool_tip) { - DCHECK(!tool_tip_.empty()); tool_tip_ = base::UTF16ToUTF8(tool_tip); UpdateClickActionReplacementMenuItem(); } @@ -382,8 +381,8 @@ void AppIndicatorIcon::UpdateClickActionReplacementMenuItem() { if (!delegate()->HasClickAction() && menu_model_) return; - DCHECK(!tool_tip_.empty()); - menu_->UpdateClickActionReplacementMenuItem( + if(!tool_tip_.empty()) + menu_->UpdateClickActionReplacementMenuItem( tool_tip_.c_str(), base::Bind(&AppIndicatorIcon::OnClickActionReplacementMenuItemActivated, base::Unretained(this))); diff --git a/chrome/browser/ui/libgtkui/select_file_dialog_impl_gtk.cc b/chrome/browser/ui/libgtkui/select_file_dialog_impl_gtk.cc index 0671241d1fc11..0d1bd4895a8f0 100644 --- a/chrome/browser/ui/libgtkui/select_file_dialog_impl_gtk.cc +++ b/chrome/browser/ui/libgtkui/select_file_dialog_impl_gtk.cc @@ -326,12 +326,12 @@ GtkWidget* SelectFileDialogImplGTK::CreateSelectFolderDialog( std::string title_string = title; if (title_string.empty()) { title_string = - (type == SELECT_UPLOAD_FOLDER) + (false) ? l10n_util::GetStringUTF8(IDS_SELECT_UPLOAD_FOLDER_DIALOG_TITLE) : l10n_util::GetStringUTF8(IDS_SELECT_FOLDER_DIALOG_TITLE); } std::string accept_button_label = - (type == SELECT_UPLOAD_FOLDER) + (false) ? l10n_util::GetStringUTF8( IDS_SELECT_UPLOAD_FOLDER_DIALOG_UPLOAD_BUTTON) : "_Open"; diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc index beb3495ebe915..9c9f70654f77a 100644 --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc @@ -438,7 +438,8 @@ void ManagePasswordsUIController::DidNavigateMainFrame( } void ManagePasswordsUIController::WasHidden() { - TabDialogs::FromWebContents(web_contents())->HideManagePasswordsBubble(); + if (TabDialogs::FromWebContents(web_contents())) + TabDialogs::FromWebContents(web_contents())->HideManagePasswordsBubble(); } void ManagePasswordsUIController::ShowBubbleWithoutUserInteraction() { diff --git a/chrome/browser/ui/scoped_tabbed_browser_displayer.cc b/chrome/browser/ui/scoped_tabbed_browser_displayer.cc index 6f09f0b8ed68b..6b7916fb37914 100644 --- a/chrome/browser/ui/scoped_tabbed_browser_displayer.cc +++ b/chrome/browser/ui/scoped_tabbed_browser_displayer.cc @@ -13,7 +13,7 @@ namespace chrome { ScopedTabbedBrowserDisplayer::ScopedTabbedBrowserDisplayer(Profile* profile) { browser_ = FindTabbedBrowser(profile, false); if (!browser_) - browser_ = new Browser(Browser::CreateParams(profile)); + browser_ = new Browser(Browser::CreateParams(Browser::TYPE_POPUP, profile)); } ScopedTabbedBrowserDisplayer::~ScopedTabbedBrowserDisplayer() { diff --git a/chrome/browser/ui/signin_view_controller_delegate.cc b/chrome/browser/ui/signin_view_controller_delegate.cc index 902a4b2488654..c6f450eec67ef 100644 --- a/chrome/browser/ui/signin_view_controller_delegate.cc +++ b/chrome/browser/ui/signin_view_controller_delegate.cc @@ -58,6 +58,8 @@ void SigninViewControllerDelegate::ResetSigninViewControllerDelegate() { void SigninViewControllerDelegate::LoadingStateChanged( content::WebContents* source, bool to_different_document) { + if (!source->GetWebUI()) + return; if (CanGoBack(source)) source->GetWebUI()->CallJavascriptFunctionUnsafe( "inline.login.showBackButton"); diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc index 595fdf73cf506..528435c7cc78c 100644 --- a/chrome/browser/ui/startup/startup_browser_creator.cc +++ b/chrome/browser/ui/startup/startup_browser_creator.cc @@ -81,6 +81,15 @@ #include "net/base/port_util.h" #include "printing/features/features.h" +#include "extensions/browser/extension_system.h" +#include "chrome/browser/extensions/component_loader.h" +#include "chrome/browser/extensions/extension_service.h" +#include "chrome/common/extensions/extension_constants.h" +#include "grit/browser_resources.h" +#include "extensions/common/constants.h" +#include "chrome/browser/ui/extensions/app_launch_params.h" +#include "chrome/browser/ui/extensions/application_launch.h" + #if defined(USE_ASH) #include "ash/shell.h" // nogncheck #endif @@ -549,7 +558,7 @@ std::vector StartupBrowserCreator::GetURLsFromCommandLine( const GURL reset_settings_url = settings_url.Resolve(chrome::kResetProfileSettingsSubPage); url_points_to_an_approved_settings_page = url == reset_settings_url; -#if defined(OS_WIN) +#if 0 // On Windows, also allow a hash for the Chrome Cleanup Tool. const GURL reset_settings_url_with_cct_hash = reset_settings_url.Resolve( std::string("#") + @@ -715,10 +724,48 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( // chrome to shut down. // TODO(jackhou): Do this properly once keep-alive is handled by the // background page of apps. Tracked at http://crbug.com/175381 - if (chrome::GetBrowserCount(last_used_profile) != 0) + // if (chrome::GetBrowserCount(last_used_profile) != 0) return true; } + if (!process_startup) + return true; + + const base::CommandLine::StringVector& params = command_line.GetArgs(); + if (command_line.HasSwitch("nwapp")) { + if (!apps::AppLoadService::Get(last_used_profile)->LoadAndLaunch( + base::FilePath(command_line.GetSwitchValueNative("nwapp")), command_line, cur_dir)) { + return false; + } + return true; + } + + if (!command_line.HasSwitch("nwjs-test-mode")) { + if (params.size() > 0) { + if (!apps::AppLoadService::Get(last_used_profile)->LoadAndLaunch( + base::FilePath(params[0]), command_line, cur_dir)) { + return false; + } + return true; + } else { + ExtensionService* extension_service = + extensions::ExtensionSystem::Get(last_used_profile)->extension_service(); + extensions::ComponentLoader* component_loader = extension_service->component_loader(); + std::string id = component_loader->GetExtensionID(IDR_NWJS_DEFAPP_MANIFEST, + base::FilePath(FILE_PATH_LITERAL("nwjs_default_app"))); + + LOG(INFO) << "loading default app: " << id; + const extensions::Extension* extension = extension_service->GetExtensionById(id, true); + if (!extension) { + LOG(FATAL) << "Failed to load default app"; + return false; + } + OpenApplication( + AppLaunchParams(last_used_profile, extension, extensions::LAUNCH_CONTAINER_WINDOW, + WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_CHROME_INTERNAL)); + return true; + } + } #if defined(OS_WIN) // Log whether this process was a result of an action in the Windows Jumplist. if (command_line.HasSwitch(switches::kWinJumplistAction)) { diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc index 74e762cf20c2e..82bcdf3faa7ae 100644 --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc @@ -166,7 +166,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( web_contents, autofill::ChromeAutofillClient::FromWebContents(web_contents)); - ChromeTranslateClient::CreateForWebContents(web_contents); + //ChromeTranslateClient::CreateForWebContents(web_contents); CoreTabHelper::CreateForWebContents(web_contents); data_use_measurement::DataUseWebContentsObserver::CreateForWebContents( web_contents); diff --git a/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc b/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc index 487a59a88d9ba..ff6373e28a7d7 100644 --- a/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc +++ b/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc @@ -63,9 +63,11 @@ ComponentToolbarActionsFactory::GetComponentToolbarActionForId( // should be okay. If this changes, we should rethink this design to have, // e.g., RegisterChromeAction(). #if defined(ENABLE_MEDIA_ROUTER) +#if defined(NWJS_SDK) if (id == kMediaRouterActionId) return std::unique_ptr( new MediaRouterAction(browser, bar)); +#endif #endif // defined(ENABLE_MEDIA_ROUTER) NOTREACHED(); diff --git a/chrome/browser/ui/views/apps/app_window_desktop_window_tree_host_win.cc b/chrome/browser/ui/views/apps/app_window_desktop_window_tree_host_win.cc index 1306401674413..42b0d0f821a29 100644 --- a/chrome/browser/ui/views/apps/app_window_desktop_window_tree_host_win.cc +++ b/chrome/browser/ui/views/apps/app_window_desktop_window_tree_host_win.cc @@ -26,6 +26,9 @@ AppWindowDesktopWindowTreeHostWin::~AppWindowDesktopWindowTreeHostWin() { bool AppWindowDesktopWindowTreeHostWin::GetClientAreaInsets( gfx::Insets* insets) const { +#if 1 + return false; +#else // The inset added below is only necessary for the native glass frame, i.e. // not for colored frames drawn by Chrome, or when DWM is disabled. // In fullscreen the frame is not visible. @@ -36,6 +39,7 @@ bool AppWindowDesktopWindowTreeHostWin::GetClientAreaInsets( *insets = app_window_->glass_frame_view()->GetClientAreaInsets(); return true; +#endif } void AppWindowDesktopWindowTreeHostWin::HandleFrameChanged() { @@ -58,6 +62,9 @@ void AppWindowDesktopWindowTreeHostWin::PostHandleMSG(UINT message, } void AppWindowDesktopWindowTreeHostWin::UpdateDWMFrame() { +#if 1 + return; +#else if (!GetWidget()->client_view() || !app_window_->glass_frame_view()) return; @@ -77,4 +84,5 @@ void AppWindowDesktopWindowTreeHostWin::UpdateDWMFrame() { } DwmExtendFrameIntoClientArea(GetHWND(), &margins); +#endif } diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc index dfac3ccb9df96..d1d21b22c71c4 100644 --- a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc +++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc @@ -23,6 +23,14 @@ #include "ui/views/controls/webview/webview.h" #include "ui/views/widget/widget.h" +#if defined(NWJS_SDK) +#include "base/command_line.h" +#include "chrome/browser/devtools/devtools_window.h" +#include "content/nw/src/common/shell_switches.h" +#endif + +#include "ui/display/screen.h" + using extensions::AppWindow; namespace { @@ -39,9 +47,12 @@ struct AcceleratorMapping { }; const AcceleratorMapping kAppWindowAcceleratorMap[] = { - { ui::VKEY_W, ui::EF_CONTROL_DOWN, IDC_CLOSE_WINDOW }, - { ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_CLOSE_WINDOW }, + // { ui::VKEY_W, ui::EF_CONTROL_DOWN, IDC_CLOSE_WINDOW }, + // { ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_CLOSE_WINDOW }, { ui::VKEY_F4, ui::EF_ALT_DOWN, IDC_CLOSE_WINDOW }, +#if defined(NWJS_SDK) + { ui::VKEY_F12, ui::EF_NONE, IDC_DEV_TOOLS_TOGGLE }, +#endif }; // These accelerators will only be available in kiosk mode. These allow the @@ -112,6 +123,10 @@ void ChromeNativeAppWindowViews::OnBeforeWidgetInit( views::Widget* widget) { } +bool ChromeNativeAppWindowViews::NWCanClose(bool user_force) const { + return app_window()->NWCanClose(user_force); +} + void ChromeNativeAppWindowViews::OnBeforePanelWidgetInit( bool use_default_bounds, views::Widget::InitParams* init_params, @@ -152,10 +167,23 @@ void ChromeNativeAppWindowViews::InitializeDefaultWindow( bool position_specified = window_bounds.x() != BoundsSpecification::kUnspecifiedPosition && window_bounds.y() != BoundsSpecification::kUnspecifiedPosition; + position_specified |= create_params.position == AppWindow::POS_MOUSE; if (!position_specified) widget()->CenterWindow(window_bounds.size()); - else + else if (create_params.position == AppWindow::POS_MOUSE) { + gfx::Point cursor_pos(display::Screen::GetScreen()->GetCursorScreenPoint()); + window_bounds.set_origin(cursor_pos); + widget()->SetBounds(window_bounds); + }else widget()->SetBounds(window_bounds); + } else { + if (create_params.position == AppWindow::POS_CENTER) + widget()->CenterWindow(gfx::Size(640, 480)); + else if (create_params.position == extensions::AppWindow::POS_MOUSE) { + gfx::Point cursor_pos(display::Screen::GetScreen()->GetCursorScreenPoint()); + gfx::Rect bounds(cursor_pos, gfx::Size(640, 480)); + widget()->SetBounds(bounds); + } } #if defined(OS_CHROMEOS) @@ -268,6 +296,9 @@ bool ChromeNativeAppWindowViews::IsAlwaysOnTop() const { // views::WidgetDelegate implementation. gfx::ImageSkia ChromeNativeAppWindowViews::GetWindowAppIcon() { + gfx::Image icon_override = app_window()->icon_override(); + if (!icon_override.IsEmpty()) + return *icon_override.ToImageSkia(); gfx::Image app_icon = app_window()->app_icon(); if (app_icon.IsEmpty()) return GetWindowIcon(); @@ -276,6 +307,9 @@ gfx::ImageSkia ChromeNativeAppWindowViews::GetWindowAppIcon() { } gfx::ImageSkia ChromeNativeAppWindowViews::GetWindowIcon() { + gfx::Image icon_override = app_window()->icon_override(); + if (!icon_override.IsEmpty()) + return *icon_override.ToImageSkia(); content::WebContents* web_contents = app_window()->web_contents(); if (web_contents) { favicon::FaviconDriver* favicon_driver = @@ -317,6 +351,14 @@ bool ChromeNativeAppWindowViews::AcceleratorPressed( accelerator_table.find(accelerator); DCHECK(iter != accelerator_table.end()); int command_id = iter->second; +#if defined(NWJS_SDK) + content::WebContents* web_contents; + bool enable_devtools = true; + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kDisableDevTools)) + enable_devtools = false; +#endif switch (command_id) { case IDC_CLOSE_WINDOW: Close(); @@ -332,7 +374,25 @@ bool ChromeNativeAppWindowViews::AcceleratorPressed( case IDC_ZOOM_PLUS: zoom::PageZoom::Zoom(web_view()->GetWebContents(), content::PAGE_ZOOM_IN); return true; - default: +#if defined(NWJS_SDK) + case IDC_DEV_TOOLS: + if (!enable_devtools) + return true; + web_contents = app_window()->web_contents(); + if (web_contents) { + DevToolsWindow::OpenDevToolsWindow(web_contents); + } + return true; + case IDC_DEV_TOOLS_TOGGLE: + if (!enable_devtools) + return true; + web_contents = app_window()->web_contents(); + if (web_contents) { + DevToolsWindow::OpenDevToolsWindow(web_contents, DevToolsToggleAction::Toggle()); + } + return true; +#endif + default: NOTREACHED() << "Unknown accelerator sent to app window."; } return NativeAppWindowViews::AcceleratorPressed(accelerator); diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views.h b/chrome/browser/ui/views/apps/chrome_native_app_window_views.h index 10e74450cd208..d40981199f68a 100644 --- a/chrome/browser/ui/views/apps/chrome_native_app_window_views.h +++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views.h @@ -56,6 +56,7 @@ class ChromeNativeAppWindowViews views::Widget* widget) override; bool WidgetHasHitTestMask() const override; void GetWidgetHitTestMask(gfx::Path* mask) const override; + bool NWCanClose(bool user_force = false) const override; // views::View implementation. gfx::Size GetPreferredSize() const override; diff --git a/chrome/browser/ui/views/apps/glass_app_window_frame_view_win.cc b/chrome/browser/ui/views/apps/glass_app_window_frame_view_win.cc index 0395139a4f505..e4e6eae820f96 100644 --- a/chrome/browser/ui/views/apps/glass_app_window_frame_view_win.cc +++ b/chrome/browser/ui/views/apps/glass_app_window_frame_view_win.cc @@ -62,6 +62,9 @@ gfx::Insets GlassAppWindowFrameViewWin::GetClientAreaInsets() const { } gfx::Rect GlassAppWindowFrameViewWin::GetBoundsForClientView() const { +#if 1 + return bounds(); +#else if (widget_->IsFullscreen()) return bounds(); @@ -70,6 +73,7 @@ gfx::Rect GlassAppWindowFrameViewWin::GetBoundsForClientView() const { insets.top(), std::max(0, width() - insets.left() - insets.right()), std::max(0, height() - insets.top() - insets.bottom())); +#endif } gfx::Rect GlassAppWindowFrameViewWin::GetWindowBoundsForClientBounds( @@ -96,6 +100,11 @@ int GlassAppWindowFrameViewWin::NonClientHitTest(const gfx::Point& point) { if (!bounds().Contains(point)) return HTNOWHERE; + int client_component = widget_->client_view()->NonClientHitTest(point); + if (client_component != HTNOWHERE) + return client_component; + + // Check the frame first, as we allow a small area overlapping the contents // to be used for resize handles. bool can_ever_resize = widget_->widget_delegate() @@ -115,10 +124,6 @@ int GlassAppWindowFrameViewWin::NonClientHitTest(const gfx::Point& point) { if (frame_component != HTNOWHERE) return frame_component; - int client_component = widget_->client_view()->NonClientHitTest(point); - if (client_component != HTNOWHERE) - return client_component; - // Caption is a safe default. return HTCAPTION; } diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc index 1361b73dd0a57..9b81ecc241b38 100644 --- a/chrome/browser/ui/views/chrome_views_delegate.cc +++ b/chrome/browser/ui/views/chrome_views_delegate.cc @@ -4,6 +4,7 @@ #include "chrome/browser/ui/views/chrome_views_delegate.h" +#include "content/nw/src/nw_content.h" #include #include "base/location.h" @@ -310,6 +311,9 @@ HICON ChromeViewsDelegate::GetSmallWindowIcon() const { #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) gfx::ImageSkia* ChromeViewsDelegate::GetDefaultWindowIcon() const { + gfx::ImageSkia* ret = nw::GetAppIcon(); + if (ret) + return ret; ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); return rb.GetImageSkiaNamed(IDR_PRODUCT_LOGO_64); } @@ -505,8 +509,10 @@ void ChromeViewsDelegate::OnGotAppbarAutohideEdges( #endif scoped_refptr -ChromeViewsDelegate::GetBlockingPoolTaskRunner() { - return content::BrowserThread::GetBlockingPool(); +ChromeViewsDelegate::GetBlockingPoolTaskRunner(bool continue_on_shutdown) { + if (!continue_on_shutdown) + return content::BrowserThread::GetBlockingPool(); + return content::BrowserThread::GetBlockingPool()->GetTaskRunnerWithShutdownBehavior(base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); } #if !defined(USE_ASH) diff --git a/chrome/browser/ui/views/chrome_views_delegate.h b/chrome/browser/ui/views/chrome_views_delegate.h index a3565713536bc..26aabb2202a90 100644 --- a/chrome/browser/ui/views/chrome_views_delegate.h +++ b/chrome/browser/ui/views/chrome_views_delegate.h @@ -59,7 +59,7 @@ class ChromeViewsDelegate : public views::ViewsDelegate { int GetAppbarAutohideEdges(HMONITOR monitor, const base::Closure& callback) override; #endif - scoped_refptr GetBlockingPoolTaskRunner() override; + scoped_refptr GetBlockingPoolTaskRunner(bool continue_on_shutdown = false) override; private: #if defined(OS_WIN) diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 72e40b41fbbb7..1639d3c024abe 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -155,6 +155,9 @@ #include "chrome/browser/ui/views/profiles/profile_chooser_view.h" #endif +#include "extensions/browser/app_window/app_window.h" +#include "extensions/browser/app_window/app_window_registry.h" + #if defined(USE_ASH) #include "chrome/browser/ui/ash/ash_util.h" #endif @@ -454,6 +457,8 @@ BrowserView::~BrowserView() { } void BrowserView::Init(Browser* browser) { + // type popup is for devtools window. that's what we want + CHECK(browser->is_type_popup()) << "opening browser window."; browser_.reset(browser); browser_->tab_strip_model()->AddObserver(this); immersive_mode_controller_.reset(chrome::CreateImmersiveModeController()); @@ -827,7 +832,7 @@ void BrowserView::OnActiveTabChanged(content::WebContents* old_contents, // Update all the UI bits. UpdateTitleBar(); - TranslateBubbleView::CloseCurrentBubble(); + //TranslateBubbleView::CloseCurrentBubble(); ZoomBubbleView::CloseCurrentBubble(); } @@ -1218,6 +1223,7 @@ ShowTranslateBubbleResult BrowserView::ShowTranslateBubble( return ShowTranslateBubbleResult::EDITABLE_FIELD_IS_ACTIVE; } +#if 0 translate::LanguageState& language_state = ChromeTranslateClient::FromWebContents(web_contents)->GetLanguageState(); language_state.SetTranslateEnabled(true); @@ -1227,6 +1233,7 @@ ShowTranslateBubbleResult BrowserView::ShowTranslateBubble( toolbar_->ShowTranslateBubble(web_contents, step, error_type, is_user_gesture); +#endif return ShowTranslateBubbleResult::SUCCESS; } @@ -1614,6 +1621,22 @@ bool BrowserView::ShouldShowWindowTitle() const { } gfx::ImageSkia BrowserView::GetWindowAppIcon() { +#if 1 + if (browser_->is_devtools()) { + WebContents* contents = browser_->tab_strip_model()->GetActiveWebContents(); + DevToolsWindow* devtools_window = DevToolsWindow::AsDevToolsWindow(contents); + if (devtools_window) { + WebContents* inspected_contents = devtools_window->GetInspectedWebContents(); + Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); + extensions::AppWindowRegistry* registry = extensions::AppWindowRegistry::Get(profile); + if (registry) { + extensions::AppWindow* app_window = registry->GetAppWindowForWebContents(inspected_contents); + if (app_window) + return app_window->app_icon().AsImageSkia(); + } + } + } +#endif if (browser_->is_app()) { WebContents* contents = browser_->tab_strip_model()->GetActiveWebContents(); extensions::TabHelper* extensions_tab_helper = @@ -1628,8 +1651,21 @@ gfx::ImageSkia BrowserView::GetWindowAppIcon() { gfx::ImageSkia BrowserView::GetWindowIcon() { // Use the default icon for devtools. - if (browser_->is_devtools()) + if (browser_->is_devtools()) { + WebContents* contents = browser_->tab_strip_model()->GetActiveWebContents(); + DevToolsWindow* devtools_window = DevToolsWindow::AsDevToolsWindow(contents); + if (devtools_window) { + WebContents* inspected_contents = devtools_window->GetInspectedWebContents(); + Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); + extensions::AppWindowRegistry* registry = extensions::AppWindowRegistry::Get(profile); + if (registry) { + extensions::AppWindow* app_window = registry->GetAppWindowForWebContents(inspected_contents); + if (app_window) + return app_window->app_icon().AsImageSkia(); + } + } return gfx::ImageSkia(); + } if (browser_->is_app() || browser_->is_type_popup()) return browser_->GetCurrentPageIcon().AsImageSkia(); diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index 3ec108941627a..6f7c570851cbf 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc @@ -309,9 +309,11 @@ void LocationBarView::Init() { save_credit_card_icon_view_->SetVisible(false); AddChildView(save_credit_card_icon_view_); +#if 0 translate_icon_view_ = new TranslateIconView(command_updater()); translate_icon_view_->SetVisible(false); AddChildView(translate_icon_view_); +#endif star_view_ = new StarView(command_updater(), browser_); star_view_->SetVisible(false); @@ -532,7 +534,7 @@ gfx::Size LocationBarView::GetPreferredSize() const { // Compute width of omnibox-trailing content. int trailing_width = edge_thickness; trailing_width += IncrementalMinimumWidth(star_view_) + - IncrementalMinimumWidth(translate_icon_view_) + +// IncrementalMinimumWidth(translate_icon_view_) + IncrementalMinimumWidth(open_pdf_in_reader_view_) + IncrementalMinimumWidth(save_credit_card_icon_view_) + IncrementalMinimumWidth(manage_passwords_icon_view_) + @@ -611,10 +613,12 @@ void LocationBarView::Layout() { trailing_decorations.AddDecoration(vertical_padding, location_height, star_view_); } +#if 0 if (translate_icon_view_->visible()) { trailing_decorations.AddDecoration(vertical_padding, location_height, translate_icon_view_); } +#endif if (open_pdf_in_reader_view_->visible()) { trailing_decorations.AddDecoration(vertical_padding, location_height, open_pdf_in_reader_view_); @@ -963,6 +967,7 @@ bool LocationBarView::RefreshSaveCreditCardIconView() { } void LocationBarView::RefreshTranslateIcon() { +#if 0 WebContents* web_contents = GetWebContents(); if (!web_contents) return; @@ -973,6 +978,7 @@ void LocationBarView::RefreshTranslateIcon() { translate_icon_view_->SetVisible(enabled); if (!enabled) TranslateBubbleView::CloseCurrentBubble(); +#endif } bool LocationBarView::RefreshManagePasswordsIconView() { diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.cc b/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.cc index b8889690fde6f..e116680e02ccf 100644 --- a/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.cc +++ b/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.cc @@ -8,15 +8,12 @@ #include "ui/views/linux_ui/linux_ui.h" StatusIconLinuxWrapper::StatusIconLinuxWrapper( - views::StatusIconLinux* status_icon) - : menu_model_(NULL) { + views::StatusIconLinux* status_icon) { status_icon_.reset(status_icon); status_icon_->set_delegate(this); } StatusIconLinuxWrapper::~StatusIconLinuxWrapper() { - if (menu_model_) - menu_model_->RemoveObserver(this); } void StatusIconLinuxWrapper::SetImage(const gfx::ImageSkia& image) { @@ -61,14 +58,6 @@ StatusIconLinuxWrapper* StatusIconLinuxWrapper::CreateWrappedStatusIcon( } void StatusIconLinuxWrapper::UpdatePlatformContextMenu( - StatusIconMenuModel* model) { - // If a menu already exists, remove ourself from its oberver list. - if (menu_model_) - menu_model_->RemoveObserver(this); - + ui::MenuModel* model) { status_icon_->UpdatePlatformContextMenu(model); - menu_model_ = model; - - if (model) - model->AddObserver(this); } diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.h b/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.h index 7c5791af3dfb4..3cbb0c73f8ae6 100644 --- a/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.h +++ b/chrome/browser/ui/views/status_icons/status_icon_linux_wrapper.h @@ -44,7 +44,7 @@ class StatusIconLinuxWrapper : public StatusIcon, // Invoked after a call to SetContextMenu() to let the platform-specific // subclass update the native context menu based on the new model. If NULL is // passed, subclass should destroy the native context menu. - void UpdatePlatformContextMenu(StatusIconMenuModel* model) override; + void UpdatePlatformContextMenu(ui::MenuModel* model) override; private: // A status icon wrapper should only be created by calling @@ -56,8 +56,6 @@ class StatusIconLinuxWrapper : public StatusIcon, std::unique_ptr status_icon_; - StatusIconMenuModel* menu_model_; - DISALLOW_COPY_AND_ASSIGN(StatusIconLinuxWrapper); }; diff --git a/chrome/browser/ui/views/status_icons/status_icon_win.cc b/chrome/browser/ui/views/status_icons/status_icon_win.cc index e153be212c5e6..70049cab18089 100644 --- a/chrome/browser/ui/views/status_icons/status_icon_win.cc +++ b/chrome/browser/ui/views/status_icons/status_icon_win.cc @@ -156,7 +156,7 @@ void StatusIconWin::ForceVisible() { //////////////////////////////////////////////////////////////////////////////// // StatusIconWin, private: -void StatusIconWin::UpdatePlatformContextMenu(StatusIconMenuModel* menu) { +void StatusIconWin::UpdatePlatformContextMenu(ui::MenuModel* menu) { // |menu_model_| is about to be destroyed. Destroy the menu (which closes it) // so that it doesn't attempt to continue using |menu_model_|. menu_runner_.reset(); diff --git a/chrome/browser/ui/views/status_icons/status_icon_win.h b/chrome/browser/ui/views/status_icons/status_icon_win.h index 05e45bc14723e..f4e8778f4ace4 100644 --- a/chrome/browser/ui/views/status_icons/status_icon_win.h +++ b/chrome/browser/ui/views/status_icons/status_icon_win.h @@ -57,7 +57,7 @@ class StatusIconWin : public StatusIcon { protected: // Overridden from StatusIcon: - void UpdatePlatformContextMenu(StatusIconMenuModel* menu) override; + void UpdatePlatformContextMenu(ui::MenuModel* menu) override; private: void InitIconData(NOTIFYICONDATA* icon_data); diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index 56480403e9d35..85752e22b802c 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc @@ -338,6 +338,7 @@ void ToolbarView::ShowTranslateBubble( translate::TranslateStep step, translate::TranslateErrors::Type error_type, bool is_user_gesture) { +#if 0 views::View* anchor_view = location_bar(); BubbleIconView* translate_icon_view = location_bar()->translate_icon_view(); if (!ui::MaterialDesignController::IsSecondaryUiMaterial()) { @@ -353,6 +354,7 @@ void ToolbarView::ShowTranslateBubble( : TranslateBubbleView::AUTOMATIC); if (bubble_widget && translate_icon_view) bubble_widget->AddObserver(translate_icon_view); +#endif } int ToolbarView::GetMaxBrowserActionsWidth() const { diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc index 140c118134014..b6a614d1b9c11 100644 --- a/chrome/browser/ui/views/translate/translate_bubble_view.cc +++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc @@ -94,6 +94,7 @@ views::Widget* TranslateBubbleView::ShowBubble( translate::TranslateStep step, translate::TranslateErrors::Type error_type, DisplayReason reason) { +#if 0 if (translate_bubble_view_) { // When the user reads the advanced setting panel, the bubble should not be // changed because they are focusing on the bubble. @@ -136,6 +137,8 @@ views::Widget* TranslateBubbleView::ShowBubble( view->ShowForReason(reason); translate::ReportUiAction(translate::BUBBLE_SHOWN); return bubble_widget; +#endif + return nullptr; } // static diff --git a/chrome/browser/ui/webui/browsing_history_handler.cc b/chrome/browser/ui/webui/browsing_history_handler.cc index e27dae8ab8074..f636f0e76c989 100644 --- a/chrome/browser/ui/webui/browsing_history_handler.cc +++ b/chrome/browser/ui/webui/browsing_history_handler.cc @@ -796,7 +796,7 @@ void BrowsingHistoryHandler::ReturnResultsToFrontEnd() { } bool is_md = false; -#if !defined(OS_ANDROID) +#if 0 is_md = MdHistoryUI::IsEnabled(profile); #endif diff --git a/chrome/browser/ui/webui/chrome_web_contents_handler.cc b/chrome/browser/ui/webui/chrome_web_contents_handler.cc index 7f5fd4d0858a3..759731b62d1d5 100644 --- a/chrome/browser/ui/webui/chrome_web_contents_handler.cc +++ b/chrome/browser/ui/webui/chrome_web_contents_handler.cc @@ -83,7 +83,7 @@ void ChromeWebContentsHandler::AddNewContents( Browser* browser = chrome::FindTabbedBrowser(profile, false); const bool browser_created = !browser; if (!browser) - browser = new Browser(Browser::CreateParams(Browser::TYPE_TABBED, profile)); + browser = new Browser(Browser::CreateParams(Browser::TYPE_POPUP, profile)); chrome::NavigateParams params(browser, new_contents); params.source_contents = source; params.disposition = disposition; diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index b75d7a081926e..fca27d14288a8 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -174,7 +174,7 @@ #if defined(OS_WIN) #include "chrome/browser/ui/webui/conflicts_ui.h" #include "chrome/browser/ui/webui/set_as_default_browser_ui_win.h" -#include "chrome/browser/ui/webui/welcome_win10_ui.h" +//#include "chrome/browser/ui/webui/welcome_win10_ui.h" #endif #if (defined(USE_NSS_CERTS) || defined(USE_OPENSSL_CERTS)) && defined(USE_AURA) @@ -218,11 +218,13 @@ WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { return new T(web_ui); } +#if defined(NWJS_SDK) // Special case for older about: handlers. template<> WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { return new AboutUI(web_ui, url.host()); } +#endif #if defined(OS_CHROMEOS) template<> @@ -264,7 +266,7 @@ WebUIController* NewWebUI(WebUI* web_ui, return new settings::MdSettingsUI(web_ui, url); } -#if !defined(OS_CHROMEOS) +#if 0 template <> WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { return new WelcomeUI(web_ui, url); @@ -272,13 +274,14 @@ WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { #endif // !defined(OS_CHROMEOS) #endif // !defined(OS_ANDROID) -#if defined(OS_WIN) +#if 0 template <> WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { return new WelcomeWin10UI(web_ui, url); } #endif // defined(OS_WIN) +#if defined(NWJS_SDK) bool IsAboutUI(const GURL& url) { return (url.host_piece() == chrome::kChromeUIChromeURLsHost || url.host_piece() == chrome::kChromeUICreditsHost || @@ -298,6 +301,7 @@ bool IsAboutUI(const GURL& url) { #endif ); // NOLINT } +#endif // Returns a function that can be used to create the right type of WebUI for a // tab, based on its URL. Returns NULL if the URL doesn't have WebUI associated @@ -323,8 +327,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, // print dialog. if (url.host_piece() == chrome::kChromeUIBluetoothInternalsHost) return &NewWebUI; +#if 0 if (url.host_piece() == chrome::kChromeUIComponentsHost) return &NewWebUI; +#endif if (url.spec() == chrome::kChromeUIConstrainedHTMLTestURL) return &NewWebUI; if (url.host_piece() == chrome::kChromeUICrashesHost) @@ -339,6 +345,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIHistoryFrameHost) return &NewWebUI; +#if 0 if (url.host_piece() == chrome::kChromeUIInstantHost) return &NewWebUI; if (url.host_piece() == chrome::kChromeUIInterstitialHost) @@ -377,6 +384,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIUsbInternalsHost) return &NewWebUI; +#endif if (url.host_piece() == chrome::kChromeUIUserActionsHost) return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) @@ -394,6 +402,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, } #endif // !defined(OS_CHROMEOS) +#if 0 // Bookmarks are part of NTP on Android. if (url.host_piece() == chrome::kChromeUIBookmarksHost) { return MdBookmarksUI::IsEnabled() ? &NewWebUI @@ -408,6 +417,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, ::switches::MdFeedbackEnabled()) { return &NewWebUI; } +#endif // Help is implemented with native UI elements on Android. if (url.host_piece() == chrome::kChromeUIHelpFrameHost) return &NewWebUI; @@ -420,6 +430,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; // If the material design extensions page is enabled, it gets its own host. // Otherwise, it's handled by the uber settings page. +#if 0 if (url.host_piece() == chrome::kChromeUIExtensionsHost && base::FeatureList::IsEnabled(features::kMaterialDesignExtensions)) { return &NewWebUI; @@ -429,21 +440,25 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, url.host_piece() == chrome::kChromeUIHistoryHost) { return &NewWebUI; } + // Material Design Settings gets its own host, if enabled. if (base::FeatureList::IsEnabled(features::kMaterialDesignSettings) && url.host_piece() == chrome::kChromeUISettingsHost) { return &NewWebUI; } +#endif if (url.host_piece() == chrome::kChromeUIQuotaInternalsHost) return &NewWebUI; // Settings are implemented with native UI elements on Android. // Handle chrome://settings if settings in a window and about in settings // are enabled. +#if 0 if (url.host_piece() == chrome::kChromeUISettingsFrameHost || (url.host_piece() == chrome::kChromeUISettingsHost && ::switches::AboutInSettingsEnabled())) { return &NewWebUI; } +#endif if (url.host_piece() == chrome::kChromeUISyncFileSystemInternalsHost) return &NewWebUI; if (url.host_piece() == chrome::kChromeUISystemInfoHost) @@ -529,9 +544,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, if (url.host_piece() == chrome::kChromeUIInspectHost) return &NewWebUI; #endif -#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) if (url.host_piece() == chrome::kChromeUIChromeSigninHost) return &NewWebUI; +#if 0 if (url.host_piece() == chrome::kChromeUIMdUserManagerHost) return &NewWebUI; if (url.host_piece() == chrome::kChromeUISigninErrorHost) @@ -543,7 +558,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, if (url.host_piece() == chrome::kChromeUIWelcomeHost) return &NewWebUI; #endif -#if defined(OS_WIN) +#if 0 if (url.host_piece() == chrome::kChromeUIWelcomeWin10Host) return &NewWebUI; #endif // defined(OS_WIN) @@ -580,7 +595,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, if (url.host_piece() == chrome::kChromeUIAppListStartPageHost) return &NewWebUI; #endif -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if 0 if (url.host_piece() == chrome::kChromeUIExtensionsFrameHost) return &NewWebUI; #endif @@ -606,32 +621,37 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; #endif #if defined(ENABLE_MEDIA_ROUTER) -#if !defined(OS_ANDROID) +#if defined(NWJS_SDK) if (url.host_piece() == chrome::kChromeUIMediaRouterHost && media_router::MediaRouterEnabled(profile)) { return &NewWebUI; } #endif -#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) +#endif + +#if 0 if (url.host_piece() == chrome::kChromeUICastHost && media_router::MediaRouterEnabled(profile)) { return &NewWebUI; } #endif -#endif + +#if defined(NWJS_SDK) if (IsAboutUI(url)) return &NewWebUI; +#endif if (dom_distiller::IsEnableDomDistillerSet() && url.host_piece() == dom_distiller::kChromeUIDomDistillerHost) { return &NewWebUI; } +#if 0 if (SiteEngagementService::IsEnabled() && url.host_piece() == chrome::kChromeUISiteEngagementHost) { return &NewWebUI; } - +#endif return NULL; } @@ -771,8 +791,10 @@ base::RefCountedMemory* ChromeWebUIControllerFactory::GetFaviconResourceBytes( if (!content::HasWebUIScheme(page_url)) return NULL; +#if 0 if (page_url.host_piece() == chrome::kChromeUIComponentsHost) return ComponentsUI::GetFaviconResourceBytes(scale_factor); +#endif #if defined(OS_WIN) if (page_url.host_piece() == chrome::kChromeUIConflictsHost) @@ -799,6 +821,7 @@ base::RefCountedMemory* ChromeWebUIControllerFactory::GetFaviconResourceBytes( if (page_url.host_piece() == chrome::kChromeUIFlashHost) return FlashUI::GetFaviconResourceBytes(scale_factor); +#if 0 // Android uses the native download manager. if (page_url.host_piece() == chrome::kChromeUIDownloadsHost) return MdDownloadsUI::GetFaviconResourceBytes(scale_factor); @@ -813,6 +836,7 @@ base::RefCountedMemory* ChromeWebUIControllerFactory::GetFaviconResourceBytes( if (page_url.host_piece() == chrome::kChromeUIExtensionsHost || page_url.host_piece() == chrome::kChromeUIExtensionsFrameHost) return extensions::ExtensionsUI::GetFaviconResourceBytes(scale_factor); +#endif #endif // Android doesn't use the plugins pages. diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc index 8087512b1d941..c62b8712c0399 100644 --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc @@ -106,6 +106,12 @@ using printing::PrintViewManager; namespace { +CR_DEFINE_STATIC_LOCAL(std::string, g_nw_printer_name, ()); +CR_DEFINE_STATIC_LOCAL(base::FilePath, g_nw_print_to_pdf_path, ()); +CR_DEFINE_STATIC_LOCAL(std::unique_ptr, g_nw_print_options, ()); + +bool g_nw_custom_printing = false; + enum UserActionBuckets { PRINT_TO_PRINTER, PRINT_TO_PDF, @@ -380,6 +386,9 @@ std::unique_ptr GetPdfCapabilities( return std::unique_ptr(description.root().DeepCopy()); } +} //namespace + +namespace chrome { void PrintersToValues(const printing::PrinterList& printer_list, base::ListValue* printers) { for (const printing::PrinterBasicInfo& printer : printer_list) { @@ -407,6 +416,10 @@ void PrintersToValues(const printing::PrinterList& printer_list, } } +} //namespace chrome + +namespace { + base::LazyInstance g_sticky_settings = LAZY_INSTANCE_INITIALIZER; @@ -436,6 +449,24 @@ bool PrivetPrintingEnabled() { } // namespace +namespace chrome { +void NWPrintSetCustomPrinting(bool value) { + g_nw_custom_printing = value; +} + +void NWPrintSetOptions(const base::DictionaryValue* dict) { + g_nw_print_options = dict->CreateDeepCopy(); +} + +void NWPrintSetPDFPath(const base::FilePath& path) { + g_nw_print_to_pdf_path = path; +} + +void NWPrintSetDefaultPrinter(const std::string& printer_name) { + g_nw_printer_name = printer_name; +} +} + class PrintPreviewHandler::AccessTokenService : public OAuth2TokenService::Consumer { public: @@ -724,6 +755,32 @@ void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) { &display_header_footer)) { NOTREACHED(); } + std::string footer_string, header_string; + if (g_nw_print_options) { + bool landscape, backgrounds; + int margins_type; + int copies; + base::DictionaryValue* media_size_value = nullptr; + base::DictionaryValue* custom_margins = nullptr; + + if (g_nw_print_options->GetDictionary(printing::kSettingMediaSize, &media_size_value) && !media_size_value->empty()) + settings->Set(printing::kSettingMediaSize, media_size_value->CreateDeepCopy()); + if (g_nw_print_options->GetBoolean(printing::kSettingHeaderFooterEnabled, &display_header_footer)) + settings->SetBoolean(printing::kSettingHeaderFooterEnabled, display_header_footer); + if (g_nw_print_options->GetBoolean(printing::kSettingLandscape, &landscape)) + settings->SetBoolean(printing::kSettingLandscape, landscape); + if (g_nw_print_options->GetBoolean(printing::kSettingShouldPrintBackgrounds, &backgrounds)) + settings->SetBoolean(printing::kSettingShouldPrintBackgrounds, backgrounds); + if (g_nw_print_options->GetInteger(printing::kSettingMarginsType, &margins_type)) + settings->SetInteger(printing::kSettingMarginsType, margins_type); + if (g_nw_print_options->GetDictionary(printing::kSettingMarginsCustom, &custom_margins) && !custom_margins->empty()) + settings->Set(printing::kSettingMarginsCustom, custom_margins->CreateDeepCopy()); + if (g_nw_print_options->GetInteger(printing::kSettingCopies, &copies)) + settings->SetInteger(printing::kSettingCopies, copies); + g_nw_print_options->GetString("footerString", &footer_string); + g_nw_print_options->GetString("headerString", &header_string); + } + if (display_header_footer) { settings->SetString(printing::kSettingHeaderFooterTitle, initiator->GetTitle()); @@ -737,7 +794,12 @@ void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) { url = entry->GetVirtualURL().ReplaceComponents(url_sanitizer).spec(); } - settings->SetString(printing::kSettingHeaderFooterURL, url); + if (footer_string.empty()) + settings->SetString(printing::kSettingHeaderFooterURL, url); + else + settings->SetString(printing::kSettingHeaderFooterURL, footer_string); + if (!header_string.empty()) + settings->SetString(printing::kSettingHeaderFooterTitle, header_string); } bool generate_draft_data = false; @@ -785,6 +847,12 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { return; ReportPrintSettingsStats(*settings); + if (g_nw_print_options) { + base::ListValue* page_range_array = nullptr; + + if (g_nw_print_options->GetList(printing::kSettingPageRange, &page_range_array) && !page_range_array->empty()) + settings->Set(printing::kSettingPageRange, page_range_array->CreateDeepCopy()); + } // Never try to add headers/footers here. It's already in the generated PDF. settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); @@ -814,9 +882,11 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPDF", page_count); ReportUserActionHistogram(PRINT_TO_PDF); PrintToPdf(); + chrome::NWPrintSetCustomPrinting(false); return; } + chrome::NWPrintSetCustomPrinting(false); #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) if (print_with_privet && PrivetPrintingEnabled()) { std::string printer_name; @@ -959,6 +1029,8 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { } void PrintPreviewHandler::PrintToPdf() { + if (!g_nw_print_to_pdf_path.empty() && g_nw_custom_printing) + print_to_pdf_path_ = g_nw_print_to_pdf_path; if (!print_to_pdf_path_.empty()) { // User has already selected a path, no need to show the dialog again. PostPrintToPdfTask(); @@ -1178,7 +1250,7 @@ void PrintPreviewHandler::SendInitialSettings( print_preview_ui()->initiator_title()); initial_settings.SetBoolean(printing::kSettingPreviewModifiable, print_preview_ui()->source_is_modifiable()); - initial_settings.SetString(printing::kSettingPrinterName, default_printer); + initial_settings.SetString(printing::kSettingPrinterName, g_nw_printer_name.empty() ? default_printer : g_nw_printer_name); initial_settings.SetBoolean(kDocumentHasSelection, print_preview_ui()->source_has_selection()); initial_settings.SetBoolean(printing::kSettingShouldPrintSelectionOnly, @@ -1194,9 +1266,12 @@ void PrintPreviewHandler::SendInitialSettings( base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); initial_settings.SetBoolean(kPrintAutomaticallyInKioskMode, - cmdline->HasSwitch(switches::kKioskModePrinting)); + cmdline->HasSwitch(switches::kKioskModePrinting) || g_nw_custom_printing); initial_settings.SetBoolean(kAppKioskMode, chrome::IsRunningInForcedAppMode()); + if (g_nw_custom_printing) + initial_settings.SetBoolean("nwPrintMode", true); + if (prefs) { const std::string rules_str = prefs->GetString(prefs::kPrintPreviewDefaultDestinationSelectionRules); @@ -1239,7 +1314,7 @@ void PrintPreviewHandler::SendPrinterCapabilities( void PrintPreviewHandler::SetupPrinterList( const printing::PrinterList& printer_list) { base::ListValue printers; - PrintersToValues(printer_list, &printers); + chrome::PrintersToValues(printer_list, &printers); VLOG(1) << "Enumerate printers finished, found " << printers.GetSize() << " printers"; diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.h b/chrome/browser/ui/webui/print_preview/print_preview_handler.h index 30ceb8fc14efc..ddc67d2af0ab7 100644 --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.h +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.h @@ -32,6 +32,16 @@ class PrintSystemTaskProxy; namespace base { class DictionaryValue; class RefCountedBytes; +class ListValue; +} + +namespace chrome { + void PrintersToValues(const printing::PrinterList& printer_list, + base::ListValue* printers); + void NWPrintSetCustomPrinting(bool value); + void NWPrintSetDefaultPrinter(const std::string& printer_name); + void NWPrintSetPDFPath(const base::FilePath& path); + void NWPrintSetOptions(const base::DictionaryValue* dict); } namespace content { diff --git a/chrome/browser/ui/webui/settings/font_handler.cc b/chrome/browser/ui/webui/settings/font_handler.cc index 772b15b75c157..bc013854407c9 100644 --- a/chrome/browser/ui/webui/settings/font_handler.cc +++ b/chrome/browser/ui/webui/settings/font_handler.cc @@ -39,7 +39,9 @@ FontHandler::FontHandler(content::WebUI* webui) profile_(Profile::FromWebUI(webui)), weak_ptr_factory_(this) { // Perform validation for saved fonts. +#if 0 options::FontSettingsUtilities::ValidateSavedFonts(profile_->GetPrefs()); +#endif } FontHandler::~FontHandler() {} diff --git a/chrome/browser/ui/webui/settings/md_settings_ui.cc b/chrome/browser/ui/webui/settings/md_settings_ui.cc index e8764b2b0ae1b..0d1ee6f101973 100644 --- a/chrome/browser/ui/webui/settings/md_settings_ui.cc +++ b/chrome/browser/ui/webui/settings/md_settings_ui.cc @@ -69,6 +69,7 @@ namespace settings { MdSettingsUI::MdSettingsUI(content::WebUI* web_ui, const GURL& url) : content::WebUIController(web_ui), WebContentsObserver(web_ui->GetWebContents()) { +#if 0 Profile* profile = Profile::FromWebUI(web_ui); AddSettingsPageUIHandler(new AppearanceHandler(web_ui)); @@ -151,6 +152,7 @@ MdSettingsUI::MdSettingsUI(content::WebUI* web_ui, const GURL& url) content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(), html_source); +#endif } MdSettingsUI::~MdSettingsUI() { diff --git a/chrome/browser/ui/webui/settings/people_handler.cc b/chrome/browser/ui/webui/settings/people_handler.cc index 1510531fb0f8f..ca14fbd2363d6 100644 --- a/chrome/browser/ui/webui/settings/people_handler.cc +++ b/chrome/browser/ui/webui/settings/people_handler.cc @@ -532,6 +532,7 @@ void PeopleHandler::HandleStartSignin(const base::ListValue* args) { } void PeopleHandler::HandleStopSyncing(const base::ListValue* args) { +#if 0 bool delete_profile = false; args->GetBoolean(0, &delete_profile); @@ -551,6 +552,7 @@ void PeopleHandler::HandleStopSyncing(const base::ListValue* args) { web_ui(), ProfileMetrics::DELETE_PROFILE_SETTINGS); } +#endif } #endif diff --git a/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc b/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc index bc45d9e6cf2f6..d85d9a5a035c2 100644 --- a/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc +++ b/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc @@ -129,6 +129,7 @@ void TranslateInternalsHandler::OnTranslateEvent( } void TranslateInternalsHandler::OnRemovePrefItem(const base::ListValue* args) { +#if 0 content::WebContents* web_contents = web_ui()->GetWebContents(); Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); @@ -164,6 +165,7 @@ void TranslateInternalsHandler::OnRemovePrefItem(const base::ListValue* args) { } SendPrefsToJs(); +#endif } void TranslateInternalsHandler::OnOverrideCountry(const base::ListValue* args) { diff --git a/chrome/browser/ui/webui/uber/uber_ui.cc b/chrome/browser/ui/webui/uber/uber_ui.cc index bb53ce7a26b6b..7c059a1fdeee3 100644 --- a/chrome/browser/ui/webui/uber/uber_ui.cc +++ b/chrome/browser/ui/webui/uber/uber_ui.cc @@ -115,9 +115,7 @@ content::WebUIDataSource* CreateUberFrameHTMLSource( HasExtensionType(browser_context, chrome::kChromeUIHistoryHost); source->AddString("overridesHistory", overrides_history ? "yes" : "no"); source->AddBoolean( - "hideHistory", - MdHistoryUI::IsEnabled(profile) - && !overrides_history); + "hideHistory", false); source->DisableDenyXFrameOptions(); source->OverrideContentSecurityPolicyChildSrc("child-src chrome:;"); diff --git a/chrome/browser/win/app_icon.cc b/chrome/browser/win/app_icon.cc index 3da44d46aa21f..41a559909b2a5 100644 --- a/chrome/browser/win/app_icon.cc +++ b/chrome/browser/win/app_icon.cc @@ -4,6 +4,8 @@ #include "chrome/browser/win/app_icon.h" +#include "content/nw/src/nw_content.h" + #include "chrome/app/chrome_dll_resource.h" #include "chrome/common/chrome_constants.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -30,6 +32,11 @@ int GetAppIconResourceId() { } // namespace HICON GetAppIcon() { +#if 0 + HICON ret = nw::GetWindowHIcon(); + if (ret) + return ret; +#endif // TODO(mgiuca): Use GetAppIconImageFamily/CreateExact instead of LoadIcon, to // get correct scaling. (See http://crbug.com/551256) const int icon_id = GetAppIconResourceId(); @@ -39,6 +46,11 @@ HICON GetAppIcon() { } HICON GetSmallAppIcon() { +#if 0 + HICON ret = nw::GetAppHIcon(); + if (ret) + return ret; +#endif // TODO(mgiuca): Use GetAppIconImageFamily/CreateExact instead of LoadIcon, to // get correct scaling. (See http://crbug.com/551256) const int icon_id = GetAppIconResourceId(); diff --git a/chrome/chrome.isolate b/chrome/chrome.isolate index 527045554c494..c8be90430b096 100644 --- a/chrome/chrome.isolate +++ b/chrome/chrome.isolate @@ -28,11 +28,11 @@ ['OS=="linux" or OS=="win"', { 'variables': { 'command': [ - '<(PRODUCT_DIR)/chrome<(EXECUTABLE_SUFFIX)', + '<(PRODUCT_DIR)/nw<(EXECUTABLE_SUFFIX)', ], 'files': [ - '<(PRODUCT_DIR)/chrome<(EXECUTABLE_SUFFIX)', - '<(PRODUCT_DIR)/chrome_100_percent.pak', + '<(PRODUCT_DIR)/nw<(EXECUTABLE_SUFFIX)', + '<(PRODUCT_DIR)/nw_100_percent.pak', '<(PRODUCT_DIR)/locales/en-US.pak', '<(PRODUCT_DIR)/locales/fr.pak', '<(PRODUCT_DIR)/resources/extension/', @@ -86,9 +86,9 @@ 'variables': { 'files': [ '<(PRODUCT_DIR)/<(version_full).manifest', - '<(PRODUCT_DIR)/chrome_200_percent.pak', - '<(PRODUCT_DIR)/chrome.dll', - '<(PRODUCT_DIR)/chrome_elf.dll', + '<(PRODUCT_DIR)/nw_200_percent.pak', + '<(PRODUCT_DIR)/nw.dll', + '<(PRODUCT_DIR)/nw_elf.dll', '<(PRODUCT_DIR)/osmesa.dll', ], }, @@ -104,7 +104,7 @@ ['OS=="win" and component=="static_library"', { 'variables': { 'files': [ - '<(PRODUCT_DIR)/chrome_child.dll', + '<(PRODUCT_DIR)/nw_child.dll', ], }, }], diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni index c3ac4847c0b49..66fc5f72e66ea 100644 --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni @@ -74,7 +74,7 @@ template("chrome_repack_percent") { deps += [ "//ui/app_list/resources" ] } - output = "${invoker.output_dir}/chrome_${percent}_percent.pak" + output = "${invoker.output_dir}/nw_${percent}_percent.pak" } } @@ -99,7 +99,6 @@ template("chrome_extra_paks") { "$root_gen_dir/chrome/task_scheduler_internals_resources.pak", "$root_gen_dir/chrome/translate_internals_resources.pak", "$root_gen_dir/components/components_resources.pak", - "$root_gen_dir/content/browser/tracing/tracing_resources.pak", "$root_gen_dir/content/content_resources.pak", "$root_gen_dir/net/net_resources.pak", "$root_gen_dir/ui/resources/webui_resources.pak", @@ -127,13 +126,17 @@ template("chrome_extra_paks") { if (defined(invoker.additional_paks)) { sources += invoker.additional_paks } - + if (nwjs_sdk) { + sources += [ + "$root_gen_dir/blink/devtools_resources.pak", + "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/chrome/options_resources.pak", + ] + } if (!is_android) { # New paks should be added here by default. sources += [ - "$root_gen_dir/blink/devtools_resources.pak", "$root_gen_dir/chrome/component_extension_resources.pak", - "$root_gen_dir/chrome/options_resources.pak", "$root_gen_dir/chrome/quota_internals_resources.pak", "$root_gen_dir/chrome/settings_resources.pak", "$root_gen_dir/chrome/sync_file_system_internals_resources.pak", diff --git a/chrome/chrome_watcher/BUILD.gn b/chrome/chrome_watcher/BUILD.gn index 4a5d77e25d0d7..e2075b9b29aad 100644 --- a/chrome/chrome_watcher/BUILD.gn +++ b/chrome/chrome_watcher/BUILD.gn @@ -55,6 +55,7 @@ process_version_rc_template("chrome_watcher_resources") { } shared_library("chrome_watcher") { + output_name = "nw_watcher" sources = [ "chrome_watcher_main.cc", ] diff --git a/chrome/chrome_watcher/chrome_watcher.def b/chrome/chrome_watcher/chrome_watcher.def index 463248f7de1d4..a9b6344f8b22a 100644 --- a/chrome/chrome_watcher/chrome_watcher.def +++ b/chrome/chrome_watcher/chrome_watcher.def @@ -2,7 +2,7 @@ ; Use of this source code is governed by a BSD-style license that can be ; found in the LICENSE file. -LIBRARY "chrome_watcher.dll" +LIBRARY "nw_watcher.dll" EXPORTS WatcherMain diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn index 443a67cee5974..14a7f615dc7bd 100644 --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn @@ -172,7 +172,7 @@ static_library("common") { "//chrome/app/theme:theme_resources", "//chrome/common:constants", "//chrome/common/net", - "//chrome/common/safe_browsing:proto", + #"//chrome/common/safe_browsing:proto", "//chrome/installer/util:with_no_strings", "//components/autofill/content/common:ipc_traits", "//components/autofill/core/common", @@ -201,8 +201,8 @@ static_library("common") { "//components/prefs", "//components/signin/core/common", "//components/strings", - "//components/translate/content/common", - "//components/translate/core/common", + #"//components/translate/content/common", + #"//components/translate/core/common", "//components/url_formatter", "//components/variations", "//components/version_info", @@ -321,6 +321,7 @@ static_library("common") { "extensions/webstore_install_result.h", ] public_deps += [ + "//content/nw/src/api:nw_api", "//chrome/common/extensions/api", "//chrome/common/extensions/api:extensions_features", "//device/usb", diff --git a/chrome/common/child_process_logging_win.cc b/chrome/common/child_process_logging_win.cc index 3460812edc055..2060f6a52fd2e 100644 --- a/chrome/common/child_process_logging_win.cc +++ b/chrome/common/child_process_logging_win.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "chrome/common/child_process_logging.h" +#include "components/crash/content/app/crash_reporter_client.h" #include @@ -80,6 +81,7 @@ void Init() { // chrome_elf. We decided to go with the duplicate key registration for // simplicity. #if !defined(COMPONENT_BUILD) + if (crash_reporter::GetCrashReporterClient()) crash_keys::RegisterChromeCrashKeys(); #endif using SetMetricsClientIdFunction = void (*)(const char* client_id); diff --git a/chrome/common/chrome_constants.cc b/chrome/common/chrome_constants.cc index ed6711e2b89f7..15793dbe9dcf0 100644 --- a/chrome/common/chrome_constants.cc +++ b/chrome/common/chrome_constants.cc @@ -10,11 +10,11 @@ #define FPL FILE_PATH_LITERAL #if defined(OS_MACOSX) -#define CHROMIUM_PRODUCT_STRING "Chromium" +#define CHROMIUM_PRODUCT_STRING "nwjs" #if defined(GOOGLE_CHROME_BUILD) #define PRODUCT_STRING "Google Chrome" #elif defined(CHROMIUM_BUILD) -#define PRODUCT_STRING "Chromium" +#define PRODUCT_STRING "nwjs" #else #error Unknown branding #endif @@ -43,13 +43,13 @@ const char kChromeVersion[] = CHROME_VERSION_STRING; #if defined(OS_WIN) const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = - FPL("chrome.exe"); + FPL("nw.exe"); const base::FilePath::CharType kBrowserProcessExecutableName[] = - FPL("chrome.exe"); + FPL("nw.exe"); const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = - FPL("chrome.exe"); + FPL("nw.exe"); const base::FilePath::CharType kHelperProcessExecutableName[] = - FPL("chrome.exe"); + FPL("nw.exe"); #elif defined(OS_MACOSX) const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = FPL(CHROMIUM_PRODUCT_STRING); @@ -69,8 +69,8 @@ const base::FilePath::CharType kHelperProcessExecutableName[] = const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = FPL(""); #elif defined(OS_POSIX) const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = - FPL("chrome"); -const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome"); + FPL("nw"); +const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("nw"); // Helper processes end up with a name of "exe" due to execing via // /proc/self/exe. See bug 22703. const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = @@ -80,13 +80,13 @@ const base::FilePath::CharType kHelperProcessExecutableName[] = FPL("exe"); #if defined(OS_WIN) const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = - FPL("chrome.exe"); + FPL("nw.exe"); const base::FilePath::CharType kBrowserProcessExecutablePath[] = - FPL("chrome.exe"); + FPL("nw.exe"); const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = - FPL("chrome.exe"); + FPL("nw.exe"); const base::FilePath::CharType kHelperProcessExecutablePath[] = - FPL("chrome.exe"); + FPL("nw.exe"); #elif defined(OS_MACOSX) const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = FPL(CHROMIUM_PRODUCT_STRING ".app/Contents/MacOS/" CHROMIUM_PRODUCT_STRING); @@ -101,15 +101,15 @@ const base::FilePath::CharType kHelperProcessExecutablePath[] = const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome"); const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome"); const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = - FPL("chrome"); + FPL("nw"); const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = - FPL("chrome"); + FPL("nw"); #elif defined(OS_POSIX) const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = - FPL("chrome"); + FPL("nw"); const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome"); const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = - FPL("chrome"); + FPL("nw"); const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome"); #endif // OS_* @@ -119,10 +119,10 @@ const base::FilePath::CharType kFrameworkName[] = #endif // OS_MACOSX #if defined(OS_WIN) -const base::FilePath::CharType kBrowserResourcesDll[] = FPL("chrome.dll"); -const base::FilePath::CharType kChromeElfDllName[] = FPL("chrome_elf.dll"); +const base::FilePath::CharType kBrowserResourcesDll[] = FPL("nw.dll"); +const base::FilePath::CharType kChromeElfDllName[] = FPL("nw_elf.dll"); const base::FilePath::CharType kStatusTrayWindowClass[] = - FPL("Chrome_StatusTrayWindow"); + FPL("NWJS_StatusTrayWindow"); #endif // defined(OS_WIN) const char kInitialProfile[] = "Default"; diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc index bb7757be6f4bd..b0612a65f72e3 100644 --- a/chrome/common/chrome_content_client.cc +++ b/chrome/common/chrome_content_client.cc @@ -369,6 +369,53 @@ bool GetComponentUpdatedPepperFlash(content::PepperPluginInfo* plugin) { } #endif // defined(OS_CHROMEOS) +#if 1 +// This should be used on ChromeOS only - other platforms do not bundle Flash. +bool GetBundledPepperFlash(content::PepperPluginInfo* plugin) { +#if 1 + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + + // Ignore bundled Pepper Flash if there is Pepper Flash specified from the + // command-line. + if (command_line->HasSwitch(switches::kPpapiFlashPath)) + return false; + + bool force_disable = + command_line->HasSwitch(switches::kDisableBundledPpapiFlash); + if (force_disable) + return false; + + base::FilePath flash_path; + if (!PathService::Get(chrome::DIR_PEPPER_FLASH_PLUGIN, &flash_path)) + return false; + base::FilePath flash_filename; + if (!PathService::Get(chrome::FILE_PEPPER_FLASH_PLUGIN, &flash_filename)) + return false; + base::FilePath manifest_path( + flash_path.AppendASCII("manifest.json")); + + std::string manifest_data; + if (!base::ReadFileToString(manifest_path, &manifest_data)) + return false; + std::unique_ptr manifest_value( + base::JSONReader::Read(manifest_data, base::JSON_ALLOW_TRAILING_COMMAS)); + if (!manifest_value.get()) + return false; + base::DictionaryValue* manifest = NULL; + if (!manifest_value->GetAsDictionary(&manifest)) + return false; + + base::Version version; + if (!chrome::CheckPepperFlashManifest(*manifest, &version)) + return false; + *plugin = CreatePepperFlashInfo(flash_filename, version.GetString(), false); + return true; +#else + return false; +#endif // FLAPPER_AVAILABLE +} +#endif // defined(OS_CHROMEOS) + bool GetSystemPepperFlash(content::PepperPluginInfo* plugin) { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); // Do not try and find System Pepper Flash if there is a specific path on @@ -508,6 +555,13 @@ void ChromeContentClient::AddPepperPlugins( if (GetCommandLinePepperFlash(command_line_flash.get())) flash_versions.push_back(std::move(command_line_flash)); + //NWJS: revert 00777c52ac61dba4cd3d9047ede488f337d4a9a5 +#if 1 + auto bundled_flash = base::MakeUnique(); + if (GetBundledPepperFlash(bundled_flash.get())) + flash_versions.push_back(std::move(bundled_flash)); +#endif // defined(OS_CHROMEOS) + auto system_flash = base::MakeUnique(); if (GetSystemPepperFlash(system_flash.get())) flash_versions.push_back(std::move(system_flash)); diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc index 4364295ca397c..fc6b2f1a7d7d9 100644 --- a/chrome/common/chrome_paths.cc +++ b/chrome/common/chrome_paths.cc @@ -350,7 +350,7 @@ bool PathProvider(int key, base::FilePath* result) { // was shipped along with chrome. The value can be overridden // if it is installed via component updater. case chrome::DIR_PNACL_COMPONENT: -#if defined(OS_MACOSX) +#if 0 // PNaCl really belongs in the InternalPluginsDirectory but actually // copying it there would result in the files also being shipped, which // we don't want yet. So for now, just find them in the directory where diff --git a/chrome/common/chrome_paths_linux.cc b/chrome/common/chrome_paths_linux.cc index aa26cc9bbb90e..7c37356e62152 100644 --- a/chrome/common/chrome_paths_linux.cc +++ b/chrome/common/chrome_paths_linux.cc @@ -14,6 +14,8 @@ #include "build/build_config.h" #include "chrome/common/chrome_paths_internal.h" +#include "content/nw/src/nw_base.h" + namespace chrome { using base::nix::GetXDGDirectory; @@ -69,7 +71,7 @@ bool GetDefaultUserDataDirectory(base::FilePath* result) { #if defined(GOOGLE_CHROME_BUILD) *result = config_dir.Append("google-chrome"); #else - *result = config_dir.Append("chromium"); + *result = config_dir.Append(nw::package()->GetName()); #endif return true; } diff --git a/chrome/common/chrome_paths_mac.mm b/chrome/common/chrome_paths_mac.mm index d0bbbf72ff0e3..a5fdec7fbc234 100644 --- a/chrome/common/chrome_paths_mac.mm +++ b/chrome/common/chrome_paths_mac.mm @@ -18,6 +18,8 @@ #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths_internal.h" +#include "content/nw/src/nw_base.h" + namespace { #if !defined(OS_IOS) @@ -65,7 +67,7 @@ #if defined(GOOGLE_CHROME_BUILD) product_dir_name = "Google/Chrome"; #else - product_dir_name = "Chromium"; + product_dir_name = "nwjs"; #endif } @@ -74,6 +76,7 @@ return strdup(product_dir_name); } +#if 0 // ProductDirName returns the name of the directory inside // ~/Library/Application Support that should hold the product application // data. This can be overridden by setting the CrProductDirName key in the @@ -99,6 +102,7 @@ #endif return std::string(product_dir_name); } +#endif bool GetDefaultUserDataDirectoryForProduct(const std::string& product_dir, base::FilePath* result) { @@ -115,7 +119,7 @@ bool GetDefaultUserDataDirectoryForProduct(const std::string& product_dir, namespace chrome { bool GetDefaultUserDataDirectory(base::FilePath* result) { - return GetDefaultUserDataDirectoryForProduct(ProductDirName(), result); + return GetDefaultUserDataDirectoryForProduct(nw::package()->GetName(), result); } bool GetUserDocumentsDirectory(base::FilePath* result) { diff --git a/chrome/common/chrome_paths_win.cc b/chrome/common/chrome_paths_win.cc index 597448bdf67a2..07ab6795d3164 100644 --- a/chrome/common/chrome_paths_win.cc +++ b/chrome/common/chrome_paths_win.cc @@ -19,6 +19,8 @@ #include "chrome/installer/util/browser_distribution.h" #include "components/nacl/common/nacl_switches.h" +#include "content/nw/src/nw_base.h" + namespace chrome { namespace { @@ -45,8 +47,9 @@ bool GetUserDirectory(int csidl_folder, base::FilePath* result) { bool GetDefaultUserDataDirectory(base::FilePath* result) { if (!PathService::Get(base::DIR_LOCAL_APP_DATA, result)) return false; - BrowserDistribution* dist = BrowserDistribution::GetDistribution(); - *result = result->Append(dist->GetInstallSubDir()); + //BrowserDistribution* dist = BrowserDistribution::GetDistribution(); + if (nw::package()) //FIXME: crashpad initialized early in cr49 + *result = result->Append(base::FilePath::FromUTF8Unsafe(nw::package()->GetName())); *result = result->Append(chrome::kUserDataDirname); return true; } diff --git a/chrome/common/extensions/api/BUILD.gn b/chrome/common/extensions/api/BUILD.gn index 50ddbdd45997d..a2d95b4409290 100644 --- a/chrome/common/extensions/api/BUILD.gn +++ b/chrome/common/extensions/api/BUILD.gn @@ -236,6 +236,7 @@ json_features("api_features") { provider_class = "APIFeatureProvider" sources = [ "../../../../extensions/common/api/_api_features.json", + "../../../../content/nw/src/api/_api_features.json", "_api_features.json", ] } diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/extensions/api/_api_features.json index 8d3a900fd7415..605843e13934d 100644 --- a/chrome/common/extensions/api/_api_features.json +++ b/chrome/common/extensions/api/_api_features.json @@ -561,7 +561,8 @@ }], "launcherPage": { "dependencies": ["manifest:launcher_page"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "platforms": ["chromeos"] }, "launcherSearchProvider": { "dependencies": ["permission:launcherSearchProvider"], @@ -761,10 +762,13 @@ }, "usersPrivate": [{ "dependencies": ["permission:usersPrivate"], + "platforms": ["chromeos"], "contexts": ["blessed_extension"] }, { "channel": "trunk", "contexts": ["webui"], + "dependencies": ["permission:usersPrivate"], + "platforms": ["chromeos"], "matches": [ "chrome://md-settings/*", "chrome://settings/*", diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json index 7f8a14c0a4c73..15e672ad01455 100644 --- a/chrome/common/extensions/api/_permission_features.json +++ b/chrome/common/extensions/api/_permission_features.json @@ -219,16 +219,7 @@ ], "developerPrivate": { "channel": "stable", - "extension_types": ["platform_app"], - "whitelist": [ - "AE27D69DBE571F4B1694F05C89B710C646792231", // Published ADT. - "FA0501B579070BB9CBD4FCAEC8CB0EDF22BA2F04", // Apps Editor published. - "4A4EA121622FCA3D78ED2AB534197F43D7189EE0", // Spark nightly build. - "9FDE6E7F06FCFA11D9A05041C7FF6D8AE662F5D1", // Spark release. - "50B4A905D522C06E27CA6D099E3E54BDA1F152C5", // Spark Beta channel. - "BA0C8BB92084C9741312D90D3EA882526853455F", // Spark dev channel. - "5F57A9AE8DFF5D6BB09DF8606270402612E871E5" // http://crbug.com/422624 - ] + "extension_types": ["platform_app"] }, "devtools": { "channel": "stable", @@ -503,6 +494,7 @@ "logPrivate": { "channel": "stable", "extension_types": ["extension", "platform_app"], + "platforms": ["chromeos"], "whitelist": [ "ddammdhioacbehjngdmkjcjbnfginlla", // Test "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683 @@ -518,6 +510,7 @@ }, "webcamPrivate": { "channel": "stable", + "platforms": ["chromeos"], "extension_types": ["extension", "platform_app"] }, "management": [ @@ -527,25 +520,7 @@ }, { "channel": "stable", - "extension_types": ["platform_app"], - "whitelist": [ - "AE27D69DBE571F4B1694F05C89B710C646792231", // Published ADT - // TODO(grv): clean up once Apps developer tool is published. - "5107DE9024C329EEA9C9A72D94C16723790C6422", // Apps Developer Tool. - "8C0B1873FFFB65E4D0F4D772879F7304CEF125C2", // Apps Editor old. - "FA0501B579070BB9CBD4FCAEC8CB0EDF22BA2F04", // Apps Editor published. - "EE17C698905F7F2E6DDC87C9C30F11E164C829F4", // Watchdog (Activity Log) - "90113DA9516526D24DAF156C629CC41C049E8882", // Watchdog Test Version - "4A4EA121622FCA3D78ED2AB534197F43D7189EE0", // Spark nightly build. - "9FDE6E7F06FCFA11D9A05041C7FF6D8AE662F5D1", // Spark release. - "50B4A905D522C06E27CA6D099E3E54BDA1F152C5", // Spark Beta channel. - "BA0C8BB92084C9741312D90D3EA882526853455F", // Spark dev channel. - "11B478CEC461C766A2DC1E5BEEB7970AE06DC9C2", // http://crbug.com/408276 - "0EFB879311E9EFBB7C45251F89EC655711B1F6ED", // http://crbug.com/408276 - "9193D3A51E2FE33B496CDA53EA330423166E7F02", // http://crbug.com/408276 - "F9119B8B18C7C82B51E7BC6FF816B694F2EC3E89", // http://crbug.com/408276 - "5F57A9AE8DFF5D6BB09DF8606270402612E871E5" // http://crbug.com/422624 - ] + "extension_types": ["platform_app"] }, { "channel": "stable", @@ -778,6 +753,7 @@ "rtcPrivate": { "channel": "stable", "extension_types": ["extension", "legacy_packaged_app"], + "platforms": ["chromeos"], "whitelist": [ "53041A2FA309EECED01FFC751E7399186E860B2C", // Google Talk prod "A74A4D44C7CFCD8844830E6140C8D763E12DD8F3", // Google Talk beta @@ -875,6 +851,7 @@ "usersPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], + "platforms": ["chromeos"], "location": "component" }, "wallpaper": { diff --git a/chrome/common/extensions/api/webview_tag.json b/chrome/common/extensions/api/webview_tag.json index 0263954cd0eb1..6efde3fb3c169 100644 --- a/chrome/common/extensions/api/webview_tag.json +++ b/chrome/common/extensions/api/webview_tag.json @@ -856,6 +856,13 @@ "description": "Returns Chrome's internal process ID for the guest web page's current process, allowing embedders to know how many guests would be affected by terminating the process. Two guests will share a process only if they belong to the same app and have the same
      storage partition ID. The call is synchronous and returns the embedder's cached notion of the current process ID. The process ID isn't the same as the operating system's process ID.", "parameters": [] }, + { + "name": "getGuestId", + "type": "function", + "returns": { "type": "integer" }, + "description": "", + "parameters": [] + }, { "name": "getUserAgent", "type": "function", @@ -1071,6 +1078,24 @@ } ] }, + { + "name": "showDevTools", + "type": "function", + "description": "Open or close devtools for this webview.", + "parameters": [ + { + "type": "boolean", + "name": "show", + "description" : "show or close." + }, + { + "type": "object", + "name": "container", + "description" : "where to show the devtools, should be a webview", + "optional": true + } + ] + }, { "name": "terminate", "type": "function", diff --git a/chrome/common/extensions/chrome_extensions_client.cc b/chrome/common/extensions/chrome_extensions_client.cc index 9a4a929ae7b1d..39acce3601479 100644 --- a/chrome/common/extensions/chrome_extensions_client.cc +++ b/chrome/common/extensions/chrome_extensions_client.cc @@ -55,6 +55,8 @@ #include "ui/base/l10n/l10n_util.h" #include "url/gurl.h" +#include "content/nw/src/api/generated_schemas.h" + namespace extensions { namespace { @@ -166,6 +168,7 @@ ChromeExtensionsClient::CreateAPIFeatureSource() const { new JSONFeatureProviderSource("api")); source->LoadJSON(IDR_EXTENSION_API_FEATURES); source->LoadJSON(IDR_CHROME_EXTENSION_API_FEATURES); + source->LoadJSON(IDR_NW_EXTENSION_API_FEATURES); return source; } @@ -244,6 +247,7 @@ bool ChromeExtensionsClient::IsAPISchemaGenerated( const std::string& name) const { // Test from most common to least common. return api::ChromeGeneratedSchemas::IsGenerated(name) || + nwapi::nwjsGeneratedSchemas::IsGenerated(name) || api::GeneratedSchemas::IsGenerated(name); } @@ -252,6 +256,8 @@ base::StringPiece ChromeExtensionsClient::GetAPISchema( // Test from most common to least common. if (api::ChromeGeneratedSchemas::IsGenerated(name)) return api::ChromeGeneratedSchemas::Get(name); + if (nwapi::nwjsGeneratedSchemas::IsGenerated(name)) + return nwapi::nwjsGeneratedSchemas::Get(name); return api::GeneratedSchemas::Get(name); } diff --git a/chrome/common/extensions/extension_process_policy.cc b/chrome/common/extensions/extension_process_policy.cc index 59fb528efd903..49ee035b0ae3b 100644 --- a/chrome/common/extensions/extension_process_policy.cc +++ b/chrome/common/extensions/extension_process_policy.cc @@ -39,6 +39,9 @@ bool CrossesExtensionProcessBoundary( extensions, new_url); + if (old_url_extension && old_url_extension->is_nwjs_app()) + return false; + // TODO(creis): Temporary workaround for crbug.com/59285: Do not swap process // to navigate from a hosted app to a normal page or another hosted app // (unless either is the web store). This is because some OAuth providers diff --git a/chrome/common/extensions/manifest_handlers/content_scripts_handler.cc b/chrome/common/extensions/manifest_handlers/content_scripts_handler.cc index 8fa68235a758d..a2cfe571e9e04 100644 --- a/chrome/common/extensions/manifest_handlers/content_scripts_handler.cc +++ b/chrome/common/extensions/manifest_handlers/content_scripts_handler.cc @@ -128,6 +128,18 @@ std::unique_ptr LoadUserScriptFromDictionary( result->set_match_about_blank(match_about_blank); } + // in main world + if (content_script->HasKey(keys::kInMainWorld)) { + bool in_main_world = false; + if (!content_script->GetBoolean(keys::kInMainWorld, + &in_main_world)) { + *error = ErrorUtils::FormatErrorMessageUTF16( + errors::kInvalidInMainWorld, base::IntToString(definition_index)); + return std::unique_ptr(); + } + result->set_in_main_world(in_main_world); + } + // matches (required) const base::ListValue* matches = NULL; if (!content_script->GetList(keys::kMatches, &matches)) { diff --git a/chrome/common/extensions/sync_helper.cc b/chrome/common/extensions/sync_helper.cc index 1a73e4b24d48f..dd5638454b5ed 100644 --- a/chrome/common/extensions/sync_helper.cc +++ b/chrome/common/extensions/sync_helper.cc @@ -59,6 +59,7 @@ bool IsSyncable(const Extension* extension) { case Manifest::TYPE_HOSTED_APP: case Manifest::TYPE_LEGACY_PACKAGED_APP: case Manifest::TYPE_PLATFORM_APP: + case Manifest::TYPE_NWJS_APP: case Manifest::TYPE_THEME: return true; diff --git a/chrome/common/features.gni b/chrome/common/features.gni index 9ceed891bc8c7..132d1da25b889 100644 --- a/chrome/common/features.gni +++ b/chrome/common/features.gni @@ -49,7 +49,7 @@ declare_args() { # Specify --mash to chrome to have chrome start the mash environment. enable_package_mash_services = is_chromeos - enable_plugin_installation = is_win || is_mac + enable_plugin_installation = false enable_service_discovery = enable_mdns || is_mac diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc index 183d4e84792ab..3a5882b2ab7ba 100644 --- a/chrome/common/logging_chrome.cc +++ b/chrome/common/logging_chrome.cc @@ -20,6 +20,7 @@ #define IPC_LOG_TABLE_ADD_ENTRY(msg_id, logger) \ content::RegisterIPCLogger(msg_id, logger) #include "chrome/common/all_messages.h" +#include "extensions/common/extension_messages.h" #endif #if defined(OS_WIN) diff --git a/chrome/common/mac/app_mode_chrome_locator.mm b/chrome/common/mac/app_mode_chrome_locator.mm index efd272e706ba5..c1b3b09b58128 100644 --- a/chrome/common/mac/app_mode_chrome_locator.mm +++ b/chrome/common/mac/app_mode_chrome_locator.mm @@ -79,6 +79,7 @@ bool GetChromeBundleInfo(const base::FilePath& chrome_bundle, // However, we want the shims to be agnostic to distribution and operate based // on the data in their plist, so encode the framework names here. NSDictionary* framework_for_exe = @{ + @"nwjs": @"nwjs", @"Chromium": @"Chromium", @"Google Chrome": @"Google Chrome", @"Google Chrome Canary": @"Google Chrome", diff --git a/chrome/common/pepper_flash.cc b/chrome/common/pepper_flash.cc index baecd6f7361e8..9ff2eb13e1651 100644 --- a/chrome/common/pepper_flash.cc +++ b/chrome/common/pepper_flash.cc @@ -40,6 +40,7 @@ const char kPepperFlashOperatingSystem[] = "linux"; #endif +#if 0 // Name of the Pepper Flash architecture in the component manifest. const char kPepperFlashArch[] = #if defined(ARCH_CPU_X86) @@ -51,6 +52,7 @@ const char kPepperFlashArch[] = #else "???"; #endif +#endif // Returns true if the Pepper |interface_name| is implemented by this browser. // It does not check if the interface is proxied. @@ -128,6 +130,7 @@ bool CheckPepperFlashManifest(const base::DictionaryValue& manifest, if (os != kPepperFlashOperatingSystem) return false; +#if 0 std::string arch; manifest.GetStringASCII("x-ppapi-arch", &arch); if (arch != kPepperFlashArch) { @@ -140,7 +143,7 @@ bool CheckPepperFlashManifest(const base::DictionaryValue& manifest, return false; #endif } - +#endif *version_out = version; return true; } diff --git a/chrome/installer/linux/common/installer.include b/chrome/installer/linux/common/installer.include index d606238d6476e..0eee8cb2ec693 100644 --- a/chrome/installer/linux/common/installer.include +++ b/chrome/installer/linux/common/installer.include @@ -126,9 +126,9 @@ stage_install_common() { # we should flag all installer files in FILES.cfg and get them from there, so # there's only one place people need to keep track of such things (and in # only the public repository). - if [ -r "${BUILDDIR}/chrome_100_percent.pak" ]; then - install -m 644 "${BUILDDIR}/chrome_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/" - install -m 644 "${BUILDDIR}/chrome_200_percent.pak" "${STAGEDIR}/${INSTALLDIR}/" + if [ -r "${BUILDDIR}/nw_100_percent.pak" ]; then + install -m 644 "${BUILDDIR}/nw_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/" + install -m 644 "${BUILDDIR}/nw_200_percent.pak" "${STAGEDIR}/${INSTALLDIR}/" else install -m 644 "${BUILDDIR}/theme_resources_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/" install -m 644 "${BUILDDIR}/ui_resources_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/" diff --git a/chrome/installer/mini_installer/BUILD.gn b/chrome/installer/mini_installer/BUILD.gn index 65df57ccac747..b3fafece44889 100644 --- a/chrome/installer/mini_installer/BUILD.gn +++ b/chrome/installer/mini_installer/BUILD.gn @@ -124,7 +124,7 @@ template("generate_mini_installer") { inputs = [ "$chrome_dll_file", - "$root_out_dir/chrome.exe", + "$root_out_dir/nw.exe", "$root_out_dir/locales/en-US.pak", "$root_out_dir/setup.exe", release_file, @@ -259,14 +259,14 @@ template("generate_mini_installer") { generate_mini_installer("mini_installer") { out_dir = root_out_dir - chrome_dll_file = "$root_out_dir/chrome.dll" + chrome_dll_file = "$root_out_dir/nw.dll" chrome_dll_target = "//chrome:main_dll" } if (is_syzyasan) { generate_mini_installer("mini_installer_syzygy") { out_dir = "$root_out_dir/syzygy/" - chrome_dll_file = "$root_out_dir/syzygy/chrome.dll" + chrome_dll_file = "$root_out_dir/syzygy/nw.dll" chrome_dll_target = "//chrome/tools/build/win/syzygy:chrome_dll_syzygy" } } diff --git a/chrome/installer/mini_installer/chrome.release b/chrome/installer/mini_installer/chrome.release index ae03fb9bccf98..fabe2a202b4b3 100644 --- a/chrome/installer/mini_installer/chrome.release +++ b/chrome/installer/mini_installer/chrome.release @@ -6,44 +6,45 @@ # # Chrome Application dir entries, sorted alphabetically. # -chrome.exe: %(ChromeDir)s\ +nw.exe: %(ChromeDir)s\ # # Chrome version dir assembly manifest. # The name of this file must match the name of the version dir, so we cannot # hard-code it. # // TODO(caitkp): Find a way to do this without wildcards. # -*.*.*.*.manifest: %(VersionDir)s\ +*.*.*.*.manifest: %(ChromeDir)s\ # # Chrome version dir entries, sorted alphabetically. # -chrome.dll: %(VersionDir)s\ -chrome_100_percent.pak: %(VersionDir)s\ -chrome_child.dll: %(VersionDir)s\ -chrome_elf.dll: %(VersionDir)s\ -chrome_watcher.dll: %(VersionDir)s\ -d3dcompiler_47.dll: %(VersionDir)s\ +nw.dll: %(ChromeDir)s\ +nw_100_percent.pak: %(ChromeDir)s\ +nw_child.dll: %(ChromeDir)s\ +nw_elf.dll: %(ChromeDir)s\ +nw_watcher.dll: %(ChromeDir)s\ +d3dcompiler_47.dll: %(ChromeDir)s\ ffmpeg.dll: %(VersionDir)s\ -kasko.dll: %(VersionDir)s\ -icudt.dll: %(VersionDir)s\ -icudtl.dat: %(VersionDir)s\ -libEGL.dll: %(VersionDir)s\ -libGLESv2.dll: %(VersionDir)s\ -nacl64.exe: %(VersionDir)s\ -nacl_irt_x86_32.nexe: %(VersionDir)s\ -nacl_irt_x86_64.nexe: %(VersionDir)s\ -natives_blob.bin: %(VersionDir)s\ -resources.pak: %(VersionDir)s\ -snapshot_blob.bin: %(VersionDir)s\ -syzyasan_rtl.dll: %(VersionDir)s\ +kasko.dll: %(ChromeDir)s\ +icudt.dll: %(ChromeDir)s\ +icudtl.dat: %(ChromeDir)s\ +libEGL.dll: %(ChromeDir)s\ +libGLESv2.dll: %(ChromeDir)s\ +nacl64.exe: %(ChromeDir)s\ +nacl_irt_x86_32.nexe: %(ChromeDir)s\ +nacl_irt_x86_64.nexe: %(ChromeDir)s\ +natives_blob.bin: %(ChromeDir)s\ +resources.pak: %(ChromeDir)s\ +snapshot_blob.bin: %(ChromeDir)s\ +syzyasan_rtl.dll: %(ChromeDir)s\ +node.dll: %(ChromeDir)s\ # # Sub directories living in the version dir # -default_apps\*.crx: %(VersionDir)s\default_apps\ -default_apps\external_extensions.json: %(VersionDir)s\default_apps\ -Extensions\*.*: %(VersionDir)s\Extensions\ -locales\*.dll: %(VersionDir)s\Locales -locales\*.pak: %(VersionDir)s\Locales +default_apps\*.crx: %(ChromeDir)s\default_apps\ +default_apps\external_extensions.json: %(ChromeDir)s\default_apps\ +Extensions\*.*: %(ChromeDir)s\Extensions\ +locales\*.dll: %(ChromeDir)s\Locales +locales\*.pak: %(ChromeDir)s\Locales # # VisualElements sub-dir. @@ -57,7 +58,7 @@ SmallLogo.png: %(VersionDir)s\VisualElements\ SmallLogoCanary.png: %(VersionDir)s\VisualElements\ [HIDPI] -chrome_200_percent.pak: %(VersionDir)s\ +nw_200_percent.pak: %(ChromeDir)s\ [TOUCH] @@ -65,8 +66,8 @@ chrome_200_percent.pak: %(VersionDir)s\ # # Widevine CDM sub-dir # -WidevineCdm\manifest.json: %(VersionDir)s\WidevineCdm\ -WidevineCdm\_platform_specific\win_x86\widevinecdm.dll: %(VersionDir)s\WidevineCdm\_platform_specific\win_x86\ -WidevineCdm\_platform_specific\win_x86\widevinecdmadapter.dll: %(VersionDir)s\WidevineCdm\_platform_specific\win_x86\ -WidevineCdm\_platform_specific\win_x64\widevinecdm.dll: %(VersionDir)s\WidevineCdm\_platform_specific\win_x64\ -WidevineCdm\_platform_specific\win_x64\widevinecdmadapter.dll: %(VersionDir)s\WidevineCdm\_platform_specific\win_x64\ +WidevineCdm\manifest.json: %(ChromeDir)s\WidevineCdm\ +WidevineCdm\_platform_specific\win_x86\widevinecdm.dll: %(ChromeDir)s\WidevineCdm\_platform_specific\win_x86\ +WidevineCdm\_platform_specific\win_x86\widevinecdmadapter.dll: %(ChromeDir)s\WidevineCdm\_platform_specific\win_x86\ +WidevineCdm\_platform_specific\win_x64\widevinecdm.dll: %(ChromeDir)s\WidevineCdm\_platform_specific\win_x64\ +WidevineCdm\_platform_specific\win_x64\widevinecdmadapter.dll: %(ChromeDir)s\WidevineCdm\_platform_specific\win_x64\ diff --git a/chrome/installer/util/browser_distribution.cc b/chrome/installer/util/browser_distribution.cc index 9eb33aaef7f1c..48bcd2cbe81a9 100644 --- a/chrome/installer/util/browser_distribution.cc +++ b/chrome/installer/util/browser_distribution.cc @@ -153,7 +153,7 @@ base::string16 BrowserDistribution::GetActiveSetupGuid() { } base::string16 BrowserDistribution::GetBaseAppName() { - return L"Chromium"; + return L"nwjs"; } base::string16 BrowserDistribution::GetDisplayName() { @@ -184,7 +184,7 @@ base::string16 BrowserDistribution::GetStartMenuShortcutSubfolder( } base::string16 BrowserDistribution::GetBaseAppId() { - return L"Chromium"; + return L"nwjs"; } base::string16 BrowserDistribution::GetBrowserProgIdPrefix() { @@ -200,11 +200,11 @@ base::string16 BrowserDistribution::GetBrowserProgIdDesc() { base::string16 BrowserDistribution::GetInstallSubDir() { - return L"Chromium"; + return L"nwjs"; } base::string16 BrowserDistribution::GetPublisherName() { - return L"Chromium"; + return L"nwjs"; } base::string16 BrowserDistribution::GetAppDescription() { @@ -218,7 +218,7 @@ base::string16 BrowserDistribution::GetLongAppDescription() { } std::string BrowserDistribution::GetSafeBrowsingName() { - return "chromium"; + return "nwjs"; } base::string16 BrowserDistribution::GetDistributionData(HKEY root_key) { diff --git a/chrome/installer/util/google_update_settings.cc b/chrome/installer/util/google_update_settings.cc index 11d7e96efba0d..74e9d2eb9c8e2 100644 --- a/chrome/installer/util/google_update_settings.cc +++ b/chrome/installer/util/google_update_settings.cc @@ -267,7 +267,7 @@ bool GoogleUpdateSettings::IsSystemInstall() { } bool GoogleUpdateSettings::GetCollectStatsConsent() { - return GetCollectStatsConsentAtLevel(IsSystemInstall()); + return false; //GetCollectStatsConsentAtLevel(IsSystemInstall()); } // Older versions of Chrome unconditionally read from HKCU\...\ClientState\... diff --git a/chrome/installer/util/util_constants.cc b/chrome/installer/util/util_constants.cc index 4762d4f02b4ec..0b47ac1a9db65 100644 --- a/chrome/installer/util/util_constants.cc +++ b/chrome/installer/util/util_constants.cc @@ -207,9 +207,9 @@ const char kGoogleUpdateIsMachineEnvVar[] = "GoogleUpdateIsMachine"; // Active Setup. const wchar_t kActiveSetupExe[] = L"chrmstp.exe"; const wchar_t kAppLauncherGuid[] = L"{FDA71E6F-AC4C-4a00-8B70-9958A68906BF}"; -const wchar_t kChromeDll[] = L"chrome.dll"; -const wchar_t kChromeChildDll[] = L"chrome_child.dll"; -const wchar_t kChromeExe[] = L"chrome.exe"; +const wchar_t kChromeDll[] = L"nw.dll"; +const wchar_t kChromeChildDll[] = L"nw_child.dll"; +const wchar_t kChromeExe[] = L"nw.exe"; const wchar_t kChromeFrameDll[] = L"npchrome_frame.dll"; const wchar_t kChromeFrameHelperDll[] = L"chrome_frame_helper.dll"; const wchar_t kChromeFrameHelperExe[] = L"chrome_frame_helper.exe"; diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn index ba34e3245153a..83e93c19d6608 100644 --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn @@ -87,6 +87,7 @@ static_library("renderer") { defines = [] deps = [ + "//content/nw:nw_renderer", "//chrome:resources", "//chrome:strings", "//chrome/common", @@ -109,9 +110,9 @@ static_library("renderer") { "//components/spellcheck:build_features", "//components/startup_metric_utils/common:interfaces", "//components/subresource_filter/content/renderer", - "//components/translate/content/renderer", +# "//components/translate/content/renderer", "//components/translate/core/common", - "//components/translate/core/language_detection", + #"//components/translate/core/language_detection", "//components/visitedlink/renderer", "//components/web_cache/renderer", "//content/app/resources", diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index 086ff4b38b278..d19f353efeb0f 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc @@ -162,6 +162,9 @@ #include "chrome/renderer/media/webrtc_logging_message_filter.h" #endif +#include "content/nw/src/nw_content.h" +#include "content/nw/src/common/shell_switches.h" + using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; using autofill::PasswordGenerationAgent; @@ -318,6 +321,15 @@ ChromeContentRendererClient::ChromeContentRendererClient() ChromeContentRendererClient::~ChromeContentRendererClient() { } +void ChromeContentRendererClient::willHandleNavigationPolicy(content::RenderView* rv, + blink::WebFrame* frame, + const blink::WebURLRequest& request, + blink::WebNavigationPolicy* policy, + blink::WebString* manifest, + bool new_win) { + nw::willHandleNavigationPolicy(rv, frame, request, policy, manifest, new_win); +} + void ChromeContentRendererClient::RenderThreadStarted() { RenderThread* thread = RenderThread::Get(); @@ -336,10 +348,11 @@ void ChromeContentRendererClient::RenderThreadStarted() { prescient_networking_dispatcher_.reset( new network_hints::PrescientNetworkingDispatcher()); + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); #if BUILDFLAG(ENABLE_SPELLCHECK) // ChromeRenderViewTest::SetUp() creates a Spellcheck and injects it using // SetSpellcheck(). Don't overwrite it. - if (!spellcheck_) { + if (!spellcheck_ && command_line->HasSwitch(switches::kEnableSpellChecking)) { spellcheck_.reset(new SpellCheck()); thread->AddObserver(spellcheck_.get()); } @@ -369,7 +382,6 @@ void ChromeContentRendererClient::RenderThreadStarted() { thread->RegisterExtension(extensions_v8::LoadTimesExtension::Get()); - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); if (command_line->HasSwitch(switches::kEnableBenchmarking)) thread->RegisterExtension(extensions_v8::BenchmarkingExtension::Get()); if (command_line->HasSwitch(switches::kEnableNetBenchmarking)) @@ -529,11 +541,12 @@ void ChromeContentRendererClient::RenderViewCreated( ChromeExtensionsRendererClient::GetInstance()->RenderViewCreated(render_view); #endif #if BUILDFLAG(ENABLE_SPELLCHECK) + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kEnableSpellChecking)) new SpellCheckProvider(render_view, spellcheck_.get()); #endif new prerender::PrerendererClient(render_view); - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); if (command_line->HasSwitch(switches::kInstantProcess)) new SearchBox(render_view); @@ -1237,7 +1250,7 @@ bool ChromeContentRendererClient::AllowPepperMediaStreamAPI( // Allow only the Hangouts app to use the MediaStream APIs. It's OK to check // the whitelist in the renderer, since we're only preventing access until // these APIs are public and stable. - return (AppCategorizer::IsHangoutsUrl(url)); + return true; #endif // !defined(OS_ANDROID) } @@ -1337,6 +1350,10 @@ ChromeContentRendererClient::CreateBrowserPluginDelegate( #endif } +base::FilePath ChromeContentRendererClient::GetRootPath() { + return nw::GetRootPathRenderer(); +} + void ChromeContentRendererClient::RecordRappor(const std::string& metric, const std::string& sample) { if (!rappor_recorder_) diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h index 4f7bbbbc2eed6..e0acf9b7de5d2 100644 --- a/chrome/renderer/chrome_content_renderer_client.h +++ b/chrome/renderer/chrome_content_renderer_client.h @@ -103,6 +103,13 @@ class ChromeContentRendererClient : public content::ContentRendererClient { ChromeContentRendererClient(); ~ChromeContentRendererClient() override; + base::FilePath GetRootPath() override; + void willHandleNavigationPolicy(content::RenderView* rv, + blink::WebFrame* frame, + const blink::WebURLRequest& request, + blink::WebNavigationPolicy* policy, + blink::WebString* manifest, + bool new_win) override; void RenderThreadStarted() override; void RenderFrameCreated(content::RenderFrame* render_frame) override; void RenderViewCreated(content::RenderView* render_view) override; diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc index 881ff7768c3a7..f39a124565cfe 100644 --- a/chrome/renderer/chrome_render_frame_observer.cc +++ b/chrome/renderer/chrome_render_frame_observer.cc @@ -120,9 +120,11 @@ ChromeRenderFrameObserver::ChromeRenderFrameObserver( *base::CommandLine::ForCurrentProcess(); if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection)) OnSetClientSidePhishingDetection(true); +#if 0 translate_helper_ = new translate::TranslateHelper( render_frame, chrome::ISOLATED_WORLD_ID_TRANSLATE, 0, extensions::kExtensionScheme); +#endif } ChromeRenderFrameObserver::~ChromeRenderFrameObserver() { @@ -252,12 +254,14 @@ void ChromeRenderFrameObserver::DidFinishLoad() { } void ChromeRenderFrameObserver::DidStartProvisionalLoad() { +#if 0 // Let translate_helper do any preparatory work for loading a URL. if (!translate_helper_) return; translate_helper_->PrepareForUrl( render_frame()->GetWebFrame()->document().url()); +#endif } void ChromeRenderFrameObserver::DidCommitProvisionalLoad( @@ -309,10 +313,12 @@ void ChromeRenderFrameObserver::CapturePageText(TextCaptureType capture_type) { UMA_HISTOGRAM_TIMES(kTranslateCaptureText, base::TimeTicks::Now() - capture_begin_time); +#if 0 // We should run language detection only once. Parsing finishes before // the page loads, so let's pick that timing. if (translate_helper_ && capture_type == PRELIMINARY_CAPTURE) translate_helper_->PageCaptured(contents); +#endif TRACE_EVENT0("renderer", "ChromeRenderFrameObserver::CapturePageText"); diff --git a/chrome/renderer/extensions/chrome_extensions_renderer_client.cc b/chrome/renderer/extensions/chrome_extensions_renderer_client.cc index 54947da974591..8384865c308db 100644 --- a/chrome/renderer/extensions/chrome_extensions_renderer_client.cc +++ b/chrome/renderer/extensions/chrome_extensions_renderer_client.cc @@ -7,6 +7,8 @@ #include #include +#include "content/nw/src/nw_content.h" + #include "base/command_line.h" #include "base/lazy_instance.h" #include "chrome/common/chrome_isolated_world_ids.h" @@ -142,6 +144,7 @@ void ChromeExtensionsRendererClient::RenderThreadStarted() { if (!extension_dispatcher_) { extension_dispatcher_.reset( new extensions::Dispatcher(extension_dispatcher_delegate_.get())); + nw::ExtensionDispatcherCreated(extension_dispatcher_.get()); } permissions_policy_delegate_.reset( new extensions::RendererPermissionsPolicyDelegate( diff --git a/chrome/renderer/extensions/resource_request_policy.cc b/chrome/renderer/extensions/resource_request_policy.cc index b426f0911b67b..dd28cef13699a 100644 --- a/chrome/renderer/extensions/resource_request_policy.cc +++ b/chrome/renderer/extensions/resource_request_policy.cc @@ -81,7 +81,10 @@ bool ResourceRequestPolicy::CanRequestResource( // Exceptions are: // - empty origin (needed for some edge cases when we have empty origins) - bool is_empty_origin = frame_url.is_empty(); + // NWJS: about:blank here when load iframe in document-start-end + // case starting from cr53 + bool is_empty_origin = frame_url.is_empty() || frame_url == GURL(url::kAboutBlankURL); + // - extensions requesting their own resources (frame_url check is for // images, page_url check is for iframes) bool is_own_resource = frame_url.GetOrigin() == extension->url() || diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index b0dac272b4e4a..7cea57f6991c2 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn @@ -1290,6 +1290,7 @@ test("browser_tests") { enable_multidex = true } else { sources += [ + "../../content/nw/src/nwjs_browsertest.cc", # The list of sources which is only used by chrome browser tests on # desktop platforms. "../../apps/app_restore_service_browsertest.cc", @@ -1361,7 +1362,7 @@ test("browser_tests") { "../browser/dom_distiller/tab_utils_browsertest.cc", "../browser/download/download_browsertest.cc", "../browser/download/download_browsertest.h", - "../browser/download/download_danger_prompt_browsertest.cc", + #"../browser/download/download_danger_prompt_browsertest.cc", "../browser/download/download_started_animation_browsertest.cc", "../browser/download/save_page_browsertest.cc", "../browser/extensions/active_tab_apitest.cc", @@ -1551,7 +1552,7 @@ test("browser_tests") { "../browser/geolocation/access_token_store_browsertest.cc", "../browser/geolocation/geolocation_browsertest.cc", "../browser/global_keyboard_shortcuts_mac_browsertest.mm", - "../browser/history/history_browsertest.cc", + #"../browser/history/history_browsertest.cc", "../browser/history/redirect_browsertest.cc", "../browser/iframe_browsertest.cc", "../browser/image_decoder_browsertest.cc", @@ -1640,7 +1641,7 @@ test("browser_tests") { "../browser/policy/cloud/device_management_service_browsertest.cc", "../browser/policy/cloud/test_request_interceptor.cc", "../browser/policy/cloud/test_request_interceptor.h", - "../browser/policy/policy_browsertest.cc", + #"../browser/policy/policy_browsertest.cc", "../browser/policy/policy_network_browsertest.cc", "../browser/policy/policy_prefs_browsertest.cc", "../browser/policy/policy_startup_browsertest.cc", @@ -1652,9 +1653,9 @@ test("browser_tests") { "../browser/prefs/pref_service_browsertest.cc", "../browser/prefs/synced_pref_change_registrar_browsertest.cc", "../browser/prefs/tracked/pref_hash_browsertest.cc", - "../browser/prerender/prerender_browsertest.cc", - "../browser/prerender/prerender_nostate_prefetch_browsertest.cc", - "../browser/prerender/prerender_test_utils.cc", + #"../browser/prerender/prerender_browsertest.cc", + #"../browser/prerender/prerender_nostate_prefetch_browsertest.cc", + #"../browser/prerender/prerender_test_utils.cc", "../browser/previews/previews_service_browser_test.cc", "../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc", "../browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc", @@ -1687,21 +1688,21 @@ test("browser_tests") { "../browser/service_process/service_process_control_browsertest.cc", "../browser/services/gcm/fake_gcm_profile_service.cc", "../browser/services/gcm/fake_gcm_profile_service.h", - "../browser/sessions/better_session_restore_browsertest.cc", + #"../browser/sessions/better_session_restore_browsertest.cc", "../browser/sessions/persistent_tab_restore_service_browsertest.cc", "../browser/sessions/session_restore_browsertest.cc", "../browser/sessions/session_restore_browsertest_chromeos.cc", "../browser/sessions/tab_restore_browsertest.cc", "../browser/site_details_browsertest.cc", "../browser/spellchecker/spellcheck_service_browsertest.cc", - "../browser/ssl/captive_portal_blocking_page_browsertest.cc", + #"../browser/ssl/captive_portal_blocking_page_browsertest.cc", "../browser/ssl/cert_verifier_browser_test.cc", "../browser/ssl/cert_verifier_browser_test.h", - "../browser/ssl/certificate_reporting_test_utils.cc", + #"../browser/ssl/certificate_reporting_test_utils.cc", "../browser/ssl/certificate_reporting_test_utils.h", "../browser/ssl/chrome_ssl_host_state_delegate_test.cc", "../browser/ssl/security_state_tab_helper_browser_tests.cc", - "../browser/ssl/ssl_browser_tests.cc", + #"../browser/ssl/ssl_browser_tests.cc", "../browser/ssl/ssl_client_certificate_selector_test.cc", "../browser/ssl/ssl_client_certificate_selector_test.h", "../browser/storage/durable_storage_browsertest.cc", @@ -1726,8 +1727,8 @@ test("browser_tests") { "../browser/task_manager/task_manager_tester.h", "../browser/themes/theme_service_browsertest.cc", "../browser/tracing/chrome_tracing_delegate_browsertest.cc", - "../browser/translate/translate_browsertest.cc", - "../browser/translate/translate_manager_browsertest.cc", + #"../browser/translate/translate_browsertest.cc", + #"../browser/translate/translate_manager_browsertest.cc", "../browser/ui/autofill/card_unmask_prompt_view_browsertest.cc", "../browser/ui/autofill/card_unmask_prompt_view_tester.h", "../browser/ui/autofill/password_generation_popup_view_browsertest.cc", @@ -1746,7 +1747,7 @@ test("browser_tests") { "../browser/ui/extensions/extension_message_bubble_browsertest.cc", "../browser/ui/extensions/extension_message_bubble_browsertest.h", "../browser/ui/extensions/hosted_app_browsertest.cc", - "../browser/ui/find_bar/find_bar_host_browsertest.cc", + #"../browser/ui/find_bar/find_bar_host_browsertest.cc", "../browser/ui/javascript_dialogs/javascript_dialog_browsertest.cc", "../browser/ui/location_bar/location_bar_browsertest.cc", "../browser/ui/login/login_handler_browsertest.cc", @@ -1787,18 +1788,18 @@ test("browser_tests") { "../browser/ui/webui/identity_internals_ui_browsertest.h", "../browser/ui/webui/inspect_ui_browsertest.cc", "../browser/ui/webui/interstitials/interstitial_ui_browsertest.cc", - "../browser/ui/webui/log_web_ui_url_browsertest.cc", + #"../browser/ui/webui/log_web_ui_url_browsertest.cc", "../browser/ui/webui/net_internals/net_internals_ui_browsertest.cc", "../browser/ui/webui/net_internals/net_internals_ui_browsertest.h", "../browser/ui/webui/ntp/new_tab_ui_browsertest.cc", "../browser/ui/webui/options/certificate_manager_browsertest.cc", - "../browser/ui/webui/options/clear_browser_data_browsertest.cc", - "../browser/ui/webui/options/content_settings_exception_area_browsertest.cc", + #"../browser/ui/webui/options/clear_browser_data_browsertest.cc", + #"../browser/ui/webui/options/content_settings_exception_area_browsertest.cc", "../browser/ui/webui/options/multilanguage_options_browsertest.cc", "../browser/ui/webui/options/multilanguage_options_browsertest.h", "../browser/ui/webui/options/options_browsertest.cc", - "../browser/ui/webui/options/options_ui_browsertest.cc", - "../browser/ui/webui/options/options_ui_browsertest.h", + #"../browser/ui/webui/options/options_ui_browsertest.cc", + #"../browser/ui/webui/options/options_ui_browsertest.h", "../browser/ui/webui/options/preferences_browsertest.cc", "../browser/ui/webui/options/preferences_browsertest.h", "../browser/ui/webui/password_manager_internals/password_manager_internals_ui_browsertest.cc", @@ -1809,7 +1810,7 @@ test("browser_tests") { "../browser/ui/webui/signin/inline_login_ui_browsertest.cc", "../browser/ui/webui/signin/user_manager_ui_browsertest.cc", "../browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui_browsertest.cc", - "../browser/ui/webui/uber/uber_ui_browsertest.cc", + #"../browser/ui/webui/uber/uber_ui_browsertest.cc", "../browser/ui/webui/web_ui_test_handler.cc", "../browser/ui/webui/web_ui_test_handler.h", "../browser/ui/webui/webui_browsertest.cc", @@ -1838,8 +1839,8 @@ test("browser_tests") { "../renderer/chrome_render_frame_observer_browsertest.cc", "../renderer/content_settings_observer_browsertest.cc", "../renderer/media/cast_session_browsertest.cc", - "../renderer/translate/translate_helper_browsertest.cc", - "../renderer/translate/translate_script_browsertest.cc", + #"../renderer/translate/translate_helper_browsertest.cc", + #"../renderer/translate/translate_script_browsertest.cc", "base/chrome_render_view_test.cc", "base/chrome_render_view_test.h", "base/in_process_browser_test_browsertest.cc", @@ -2126,11 +2127,11 @@ test("browser_tests") { "../browser/ui/views/frame/browser_non_client_frame_view_browsertest.cc", "../browser/ui/views/frame/browser_view_browsertest.cc", "../browser/ui/views/location_bar/zoom_bubble_view_browsertest.cc", - "../browser/ui/views/media_router/media_router_ui_browsertest.cc", + #"../browser/ui/views/media_router/media_router_ui_browsertest.cc", "../browser/ui/views/passwords/password_dialog_view_browsertest.cc", "../browser/ui/views/task_manager_view_browsertest.cc", "../browser/ui/views/toolbar/browser_actions_container_browsertest.cc", - "../browser/ui/views/translate/translate_bubble_view_browsertest.cc", + #"../browser/ui/views/translate/translate_bubble_view_browsertest.cc", "../browser/ui/views/web_dialog_view_browsertest.cc", ] } @@ -2407,7 +2408,7 @@ test("browser_tests") { "../browser/media/webrtc/webrtc_webcam_browsertest.cc", ] } - if (enable_media_router) { + if (false) { sources += [ "../browser/ui/webui/media_router/media_router_dialog_controller_impl_browsertest.cc" ] deps += [ "//chrome/test/media_router:media_router_browsertests" ] } @@ -3333,7 +3334,7 @@ test("unit_tests") { "../browser/ui/webui/browsing_history_handler_unittest.cc", "../browser/ui/webui/fileicon_source_unittest.cc", "../browser/ui/webui/local_state/local_state_ui_unittest.cc", - "../browser/ui/webui/log_web_ui_url_unittest.cc", + #"../browser/ui/webui/log_web_ui_url_unittest.cc", "../browser/update_client/chrome_update_query_params_delegate_unittest.cc", "../browser/win/chrome_elf_init_unittest.cc", "../browser/win/enumerate_modules_model_unittest.cc", @@ -4328,7 +4329,7 @@ test("unit_tests") { ] } - if (enable_media_router) { + if (false) { sources += [ "../browser/media/cast_remoting_connector_unittest.cc", "../browser/media/router/create_presentation_connection_request_unittest.cc", diff --git a/chrome/test/base/testing_browser_process.cc b/chrome/test/base/testing_browser_process.cc index 72409a87fca65..e97bf0dbe2cdd 100644 --- a/chrome/test/base/testing_browser_process.cc +++ b/chrome/test/base/testing_browser_process.cc @@ -314,6 +314,7 @@ net_log::ChromeNetLog* TestingBrowserProcess::net_log() { return nullptr; } +#if 0 component_updater::ComponentUpdateService* TestingBrowserProcess::component_updater() { return nullptr; @@ -332,6 +333,7 @@ component_updater::SupervisedUserWhitelistInstaller* TestingBrowserProcess::supervised_user_whitelist_installer() { return nullptr; } +#endif MediaFileSystemRegistry* TestingBrowserProcess::media_file_system_registry() { #if defined(OS_ANDROID) diff --git a/chrome/test/base/testing_browser_process.h b/chrome/test/base/testing_browser_process.h index 5cdbe16ac1413..cfcb9daf1c18e 100644 --- a/chrome/test/base/testing_browser_process.h +++ b/chrome/test/base/testing_browser_process.h @@ -112,12 +112,15 @@ class TestingBrowserProcess : public BrowserProcess { #endif net_log::ChromeNetLog* net_log() override; + +#if 0 component_updater::ComponentUpdateService* component_updater() override; CRLSetFetcher* crl_set_fetcher() override; component_updater::PnaclComponentInstaller* pnacl_component_installer() override; component_updater::SupervisedUserWhitelistInstaller* supervised_user_whitelist_installer() override; +#endif MediaFileSystemRegistry* media_file_system_registry() override; bool created_local_state() const override; diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc index 75d021ba7068d..14f08483d44ee 100644 --- a/chrome/test/chromedriver/capabilities.cc +++ b/chrome/test/chromedriver/capabilities.cc @@ -204,6 +204,20 @@ Status ParseSwitches(const base::Value& option, return Status(kOk); } +Status ParseArguments(const base::Value& option, + Capabilities* capabilities) { + const base::ListValue* arg_list = NULL; + if (!option.GetAsList(&arg_list)) + return Status(kUnknownError, "must be a list"); + for (size_t i = 0; i < arg_list->GetSize(); ++i) { + std::string arg_string; + if (!arg_list->GetString(i, &arg_string)) + return Status(kUnknownError, "each argument must be a string"); + capabilities->arguments.push_back(arg_string); + } + return Status(kOk); +} + Status ParseExtensions(const base::Value& option, Capabilities* capabilities) { const base::ListValue* extensions = NULL; if (!option.GetAsList(&extensions)) @@ -448,6 +462,7 @@ Status ParseChromeOptions( parser_map["debuggerAddress"] = base::Bind(&ParseUseRemoteBrowser); } else { parser_map["args"] = base::Bind(&ParseSwitches); + parser_map["nwargs"] = base::Bind(&ParseArguments); parser_map["binary"] = base::Bind(&ParseFilePath, &capabilities->binary); parser_map["detach"] = base::Bind(&ParseBoolean, &capabilities->detach); parser_map["excludeSwitches"] = base::Bind(&ParseExcludeSwitches); diff --git a/chrome/test/chromedriver/capabilities.h b/chrome/test/chromedriver/capabilities.h index 49a3a72bd8286..98fe0be977bcb 100644 --- a/chrome/test/chromedriver/capabilities.h +++ b/chrome/test/chromedriver/capabilities.h @@ -129,6 +129,8 @@ struct Capabilities { std::vector extensions; + std::vector arguments; + // True if should always use DevTools for taking screenshots. // This is experimental and may be removed at a later point. bool force_devtools_screenshot; diff --git a/chrome/test/chromedriver/chrome/chrome_finder.cc b/chrome/test/chromedriver/chrome/chrome_finder.cc index ecdbbb47ce5f9..ee094aa25fc6e 100644 --- a/chrome/test/chromedriver/chrome/chrome_finder.cc +++ b/chrome/test/chromedriver/chrome/chrome_finder.cc @@ -25,7 +25,7 @@ namespace { -#if defined(OS_WIN) +#if 0 void GetApplicationDirs(std::vector* locations) { std::vector installation_locations; base::FilePath local_app_data, program_files, program_files_x86; @@ -45,7 +45,7 @@ void GetApplicationDirs(std::vector* locations) { installation_locations[i].Append(L"Chromium\\Application")); } } -#elif defined(OS_LINUX) +#elif 0 void GetApplicationDirs(std::vector* locations) { locations->push_back(base::FilePath("/opt/google/chrome")); locations->push_back(base::FilePath("/usr/local/bin")); @@ -84,22 +84,18 @@ bool FindExe( } // namespace internal -#if defined(OS_MACOSX) +#if 0 void GetApplicationDirs(std::vector* locations); #endif bool FindChrome(base::FilePath* browser_exe) { base::FilePath browser_exes_array[] = { #if defined(OS_WIN) - base::FilePath(L"chrome.exe") + base::FilePath(L"nw.exe") #elif defined(OS_MACOSX) - base::FilePath("Google Chrome.app/Contents/MacOS/Google Chrome"), - base::FilePath("Chromium.app/Contents/MacOS/Chromium") + base::FilePath("nwjs.app/Contents/MacOS/nwjs") #elif defined(OS_LINUX) - base::FilePath("google-chrome"), - base::FilePath("chrome"), - base::FilePath("chromium"), - base::FilePath("chromium-browser") + base::FilePath("nw"), #else // it will compile but won't work on other OSes base::FilePath() @@ -120,7 +116,10 @@ bool FindChrome(base::FilePath* browser_exe) { } std::vector locations; - GetApplicationDirs(&locations); + base::FilePath exe_path; + PathService::Get(base::DIR_EXE, &exe_path); + locations.push_back(exe_path); + return internal::FindExe( base::Bind(&base::PathExists), browser_exes, diff --git a/chrome/test/chromedriver/chrome/chrome_impl.cc b/chrome/test/chromedriver/chrome/chrome_impl.cc index 5cee177811b8d..29f27d25dcc0a 100644 --- a/chrome/test/chromedriver/chrome/chrome_impl.cc +++ b/chrome/test/chromedriver/chrome/chrome_impl.cc @@ -7,6 +7,8 @@ #include #include +#include "base/strings/string_util.h" + #include "chrome/test/chromedriver/chrome/devtools_client.h" #include "chrome/test/chromedriver/chrome/devtools_event_listener.h" #include "chrome/test/chromedriver/chrome/devtools_http_client.h" @@ -43,13 +45,25 @@ Status ChromeImpl::GetWebViewIdForFirstTab(std::string* web_view_id) { if (status.IsError()) return status; UpdateWebViews(views_info); + std::string ret; for (size_t i = 0; i < views_info.GetSize(); ++i) { const WebViewInfo& view = views_info.Get(i); - if (view.type == WebViewInfo::kPage) { - *web_view_id = view.id; - return Status(kOk); + if (view.type == WebViewInfo::kPage || + view.type == WebViewInfo::kApp || + (view.type == WebViewInfo::kOther && + !base::StartsWith(view.url, "chrome-extension://", base::CompareCase::SENSITIVE) && + !base::StartsWith(view.url, "about:blank", base::CompareCase::SENSITIVE))) { + ret = view.id; + if (view.type != WebViewInfo::kOther) { + *web_view_id = view.id; + return Status(kOk); + } } } + if (!ret.empty()) { + *web_view_id = ret; + return Status(kOk); + } return Status(kUnknownError, "unable to discover open window in chrome"); } diff --git a/chrome/test/chromedriver/chrome/devtools_http_client.cc b/chrome/test/chromedriver/chrome/devtools_http_client.cc index 6409e8b8b2e1b..170542217c29c 100644 --- a/chrome/test/chromedriver/chrome/devtools_http_client.cc +++ b/chrome/test/chromedriver/chrome/devtools_http_client.cc @@ -161,6 +161,15 @@ bool DevToolsHttpClient::IsBrowserWindow(const WebViewInfo& view) const { return base::ContainsKey(*window_types_, view.type) || (view.type == WebViewInfo::kOther && (view.url == "chrome://print/" || + view.url == "" || view.url == "about:blank" || + // base::StartsWith(view.url, "chrome-extension://", + // base::CompareCase::SENSITIVE) || + base::StartsWith(view.url, "file://", + base::CompareCase::SENSITIVE) || + base::StartsWith(view.url, "http://", + base::CompareCase::SENSITIVE) || + base::StartsWith(view.url, "https://", + base::CompareCase::SENSITIVE) || view.url == "chrome://media-router/")); } diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc index 6ab1f3462e15d..11c0d838fff4a 100644 --- a/chrome/test/chromedriver/chrome/web_view_impl.cc +++ b/chrome/test/chromedriver/chrome/web_view_impl.cc @@ -273,9 +273,15 @@ Status WebViewImpl::CallFunction(const std::string& frame, const base::ListValue& args, std::unique_ptr* result) { std::string json; + bool skip_result = false; base::JSONWriter::Write(args, &json); // TODO(zachconrad): Second null should be array of shadow host ids. - std::string expression = base::StringPrintf( + std::string expression; + if (base::StartsWith(function.c_str(), "rawscript:", base::CompareCase::SENSITIVE)) { + expression = function.substr(10); + skip_result = true; + } else + expression = base::StringPrintf( "(%s).apply(null, [null, %s, %s])", kCallFunctionScript, function.c_str(), @@ -283,7 +289,10 @@ Status WebViewImpl::CallFunction(const std::string& frame, std::unique_ptr temp_result; Status status = EvaluateScript(frame, expression, &temp_result); if (status.IsError()) - return status; + return status; + + if (skip_result) + return Status(kOk); return internal::ParseCallFunctionResult(*temp_result, result); } diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc index 1312d01a96dd2..ebd98f37f850c 100644 --- a/chrome/test/chromedriver/chrome_launcher.cc +++ b/chrome/test/chromedriver/chrome_launcher.cc @@ -59,6 +59,8 @@ #include "chrome/test/chromedriver/keycode_text_conversion.h" #endif +#include "base/strings/string_number_conversions.h" + namespace { const char* const kCommonSwitches[] = { @@ -68,6 +70,7 @@ const char* const kCommonSwitches[] = { "metrics-recording-only", }; +#if 0 const char* const kDesktopSwitches[] = { "disable-hang-monitor", "disable-prompt-on-repost", @@ -84,6 +87,7 @@ const char* const kDesktopSwitches[] = { "use-mock-keychain", "test-type=webdriver", }; +#endif const char* const kAndroidSwitches[] = { "disable-fre", @@ -135,8 +139,10 @@ Status PrepareCommandLine(uint16_t port, for (auto* common_switch : kCommonSwitches) switches.SetUnparsedSwitch(common_switch); +#if 0 //FIXME if enabled, chromedriver cannot find chrome on windows for (auto* desktop_switch : kDesktopSwitches) switches.SetUnparsedSwitch(desktop_switch); +#endif switches.SetSwitch("remote-debugging-port", base::UintToString(port)); for (const auto& excluded_switch : capabilities.exclude_switches) { switches.RemoveSwitch(excluded_switch); @@ -148,7 +154,7 @@ Status PrepareCommandLine(uint16_t port, user_data_dir_path = base::FilePath( switches.GetSwitchValueNative("user-data-dir")); } else { - command.AppendArg("data:,"); + //command.AppendArg("data:,"); if (!user_data_dir->CreateUniqueTempDir()) return Status(kUnknownError, "cannot create temp dir for user data dir"); switches.SetSwitch("user-data-dir", user_data_dir->GetPath().value()); @@ -171,6 +177,10 @@ Status PrepareCommandLine(uint16_t port, if (status.IsError()) return status; switches.AppendToCommandLine(&command); + + for (size_t i = 0; i < capabilities.arguments.size(); i++) + command.AppendArg(capabilities.arguments[i]); + *prepared_command = command; return Status(kOk); } @@ -193,11 +203,17 @@ Status WaitForDevToolsAndCheckVersion( window_types.reset(new std::set()); } + base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + int timeout = 60; + if (cmd_line->HasSwitch("launch-timeout")) { + std::string s_timeout = cmd_line->GetSwitchValueASCII("launch-timeout"); + base::StringToInt(s_timeout, &timeout); + } std::unique_ptr client(new DevToolsHttpClient( address, context_getter, socket_factory, std::move(device_metrics), std::move(window_types), capabilities->page_load_strategy)); base::TimeTicks deadline = - base::TimeTicks::Now() + base::TimeDelta::FromSeconds(60); + base::TimeTicks::Now() + base::TimeDelta::FromSeconds(timeout); Status status = client->Init(deadline - base::TimeTicks::Now()); if (status.IsError()) return status; @@ -219,7 +235,6 @@ Status WaitForDevToolsAndCheckVersion( } } - base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); if (cmd_line->HasSwitch("disable-build-check")) { LOG(WARNING) << "You are using an unsupported command-line switch: " "--disable-build-check. Please don't report bugs that " @@ -233,7 +248,9 @@ Status WaitForDevToolsAndCheckVersion( WebViewsInfo views_info; client->GetWebViewsInfo(&views_info); for (size_t i = 0; i < views_info.GetSize(); ++i) { - if (views_info.Get(i).type == WebViewInfo::kPage) { + if (views_info.Get(i).type == WebViewInfo::kApp + || (views_info.Get(i).type == WebViewInfo::kOther && + !base::StartsWith(views_info.Get(i).url, "chrome-extension://", base::CompareCase::SENSITIVE))) { //node-remote page *user_client = std::move(client); return Status(kOk); } diff --git a/chrome/test/chromedriver/window_commands.cc b/chrome/test/chromedriver/window_commands.cc index ac2598a6dba35..8ff9f1a2d696a 100644 --- a/chrome/test/chromedriver/window_commands.cc +++ b/chrome/test/chromedriver/window_commands.cc @@ -9,6 +9,8 @@ #include #include +#include "base/strings/string_util.h" + #include "base/callback.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" @@ -305,7 +307,9 @@ Status ExecuteExecuteScript(Session* session, const base::ListValue* args; if (!params.GetList("args", &args)) return Status(kUnknownError, "'args' must be a list"); - + if (base::StartsWith(script.c_str(), "rawscript:", base::CompareCase::SENSITIVE)) + return web_view->CallFunction(session->GetCurrentFrameId(), + script, *args, value); return web_view->CallFunction(session->GetCurrentFrameId(), "function(){" + script + "}", *args, value); } diff --git a/chrome/tools/build/linux/FILES.cfg b/chrome/tools/build/linux/FILES.cfg index 3eed7b71a1e8a..69b777e84ffa1 100644 --- a/chrome/tools/build/linux/FILES.cfg +++ b/chrome/tools/build/linux/FILES.cfg @@ -36,11 +36,11 @@ FILES = [ 'buildtype': ['dev', 'official'], }, { - 'filename': 'chrome_100_percent.pak', + 'filename': 'nw_100_percent.pak', 'buildtype': ['dev', 'official'], }, { - 'filename': 'chrome_200_percent.pak', + 'filename': 'nw_200_percent.pak', 'buildtype': ['dev', 'official'], }, { diff --git a/chrome/tools/build/win/FILES.cfg b/chrome/tools/build/win/FILES.cfg index 877890ef3b4e5..63b42c39d97cf 100644 --- a/chrome/tools/build/win/FILES.cfg +++ b/chrome/tools/build/win/FILES.cfg @@ -80,11 +80,11 @@ FILES = [ 'filegroup': ['default', 'symsrc'], }, { - 'filename': 'chrome_100_percent.pak', + 'filename': 'nw_100_percent.pak', 'buildtype': ['dev', 'official'], }, { - 'filename': 'chrome_200_percent.pak', + 'filename': 'nw_200_percent.pak', 'buildtype': ['dev', 'official'], 'optional': ['dev', 'official'], }, diff --git a/chrome/tools/build/win/syzygy/BUILD.gn b/chrome/tools/build/win/syzygy/BUILD.gn index 08139f1bb3f59..25e8c3b35295e 100644 --- a/chrome/tools/build/win/syzygy/BUILD.gn +++ b/chrome/tools/build/win/syzygy/BUILD.gn @@ -12,7 +12,7 @@ syzygy_dest_dir = "$root_out_dir/syzygy" if (is_syzyasan) { syzygy_asan("chrome_dll_syzygy") { - binary_name = "chrome.dll" + binary_name = "nw.dll" dest_dir = syzygy_dest_dir deps = [ "//chrome:main_dll", @@ -32,7 +32,7 @@ if (is_syzyasan) { # uninstrumented. Otherwise, chrome_child is also instrumented to the # normal place. syzygy_asan("chrome_child_dll_syzygy") { - binary_name = "chrome_child.dll" + binary_name = "nw_child.dll" deps = [ "//chrome:chrome_child", ] diff --git a/chrome_elf/BUILD.gn b/chrome_elf/BUILD.gn index c2861e0f682d7..3b7a928a5fd78 100644 --- a/chrome_elf/BUILD.gn +++ b/chrome_elf/BUILD.gn @@ -32,6 +32,7 @@ windows_manifest("chrome_elf_manifest") { # We should move chrome_result_codes.h to another target which does not bring # in the world. shared_library("chrome_elf") { + output_name = "nw_elf" sources = [ "chrome_elf.def", "chrome_elf_main.cc", diff --git a/chrome_elf/chrome_elf.def b/chrome_elf/chrome_elf.def index 02a99fd20652e..e89aab7547374 100644 --- a/chrome_elf/chrome_elf.def +++ b/chrome_elf/chrome_elf.def @@ -2,7 +2,7 @@ ; Use of this source code is governed by a BSD-style license that can be ; found in the LICENSE file. -LIBRARY "chrome_elf.dll" +LIBRARY "nw_elf.dll" EXPORTS AddDllToBlacklist diff --git a/chrome_elf/chrome_elf.ver b/chrome_elf/chrome_elf.ver index 78f890e7ece7d..92d53efaa487f 100644 --- a/chrome_elf/chrome_elf.ver +++ b/chrome_elf/chrome_elf.ver @@ -1,2 +1,2 @@ -INTERNAL_NAME=chrome_elf_dll -ORIGINAL_FILENAME=chrome_elf.dll +INTERNAL_NAME=nw_elf_dll +ORIGINAL_FILENAME=nw_elf.dll diff --git a/chrome_elf/chrome_elf_constants.cc b/chrome_elf/chrome_elf_constants.cc index 7115aaf4d14b2..944b5a4d15541 100644 --- a/chrome_elf/chrome_elf_constants.cc +++ b/chrome_elf/chrome_elf_constants.cc @@ -10,7 +10,7 @@ // depend on BrowserDistribution. http://crbug.com/577820 #define PRODUCT_STRING_PATH L"Google\\Chrome" #elif defined(CHROMIUM_BUILD) -#define PRODUCT_STRING_PATH L"Chromium" +#define PRODUCT_STRING_PATH L"nwjs" #else #error Unknown branding #endif diff --git a/chrome_elf/chrome_elf_main.cc b/chrome_elf/chrome_elf_main.cc index 3a10376bae346..ed2f8e1330214 100644 --- a/chrome_elf/chrome_elf_main.cc +++ b/chrome_elf/chrome_elf_main.cc @@ -36,7 +36,7 @@ BOOL APIENTRY DllMain(HMODULE module, DWORD reason, LPVOID reserved) { // TerminateProcess. We need to hook CRT's attempt to set an exception. // NOTE: Do not hook if ASan is present, or ASan will fail to install // its own unhandled exception filter. -#if !defined(ADDRESS_SANITIZER) +#if 0 ////disable this or NW will fail with Enigma VB elf_crash::DisableSetUnhandledExceptionFilter(); #endif // !defined (ADDRESS_SANITIZER) diff --git a/components/about_ui/resources/about_credits.tmpl b/components/about_ui/resources/about_credits.tmpl index e9f119d67775f..3c4d32aa21670 100644 --- a/components/about_ui/resources/about_credits.tmpl +++ b/components/about_ui/resources/about_credits.tmpl @@ -44,7 +44,6 @@ body { background-color: #e8eef7; border-radius: 3px; clear: both; - display: none; padding: 16px; } .licence h3 { diff --git a/components/about_ui/resources/about_credits_entry.tmpl b/components/about_ui/resources/about_credits_entry.tmpl index d1810cd940294..99b354cf89fee 100644 --- a/components/about_ui/resources/about_credits_entry.tmpl +++ b/components/about_ui/resources/about_credits_entry.tmpl @@ -1,6 +1,5 @@
      {{name}} -show license homepage
      {{license}}
      diff --git a/components/app_modal/javascript_dialog_manager.cc b/components/app_modal/javascript_dialog_manager.cc index 561555a52584c..768b052960314 100644 --- a/components/app_modal/javascript_dialog_manager.cc +++ b/components/app_modal/javascript_dialog_manager.cc @@ -31,7 +31,7 @@ namespace { #if !defined(OS_ANDROID) // Keep in sync with kDefaultMessageWidth, but allow some space for the rest of // the text. -const int kUrlElideWidth = 350; +//const int kUrlElideWidth = 350; #endif class DefaultExtensionsClient : public JavaScriptDialogExtensionsClient { @@ -95,6 +95,8 @@ JavaScriptDialogManager::~JavaScriptDialogManager() { base::string16 JavaScriptDialogManager::GetTitle( content::WebContents* web_contents, const GURL& origin_url) { + return base::string16(); +#if 0 // For extensions, show the extension name, but only if the origin of // the alert matches the top-level WebContents. std::string name; @@ -123,6 +125,7 @@ base::string16 JavaScriptDialogManager::GetTitle( is_same_origin_as_main_frame ? IDS_JAVASCRIPT_MESSAGEBOX_TITLE_NONSTANDARD_URL : IDS_JAVASCRIPT_MESSAGEBOX_TITLE_NONSTANDARD_URL_IFRAME); +#endif } void JavaScriptDialogManager::RunJavaScriptDialog( @@ -189,7 +192,7 @@ void JavaScriptDialogManager::RunJavaScriptDialog( message_type, message_text, default_prompt_text, - ShouldDisplaySuppressCheckbox(extra_data), + false, //ShouldDisplaySuppressCheckbox(extra_data), false, // is_before_unload_dialog false, // is_reload base::Bind(&JavaScriptDialogManager::OnDialogClosed, diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc index 331de99845003..e09b96dc33c4e 100644 --- a/components/autofill/core/browser/autofill_download_manager.cc +++ b/components/autofill/core/browser/autofill_download_manager.cc @@ -63,7 +63,7 @@ const net::BackoffEntry::Policy kAutofillBackoffPolicy = { #if defined(GOOGLE_CHROME_BUILD) const char kClientName[] = "Google Chrome"; #else -const char kClientName[] = "Chromium"; +const char kClientName[] = "nwjs"; #endif // defined(GOOGLE_CHROME_BUILD) size_t CountActiveFieldsInForms(const std::vector& forms) { diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc index b147dca2b925e..dfa371113b633 100644 --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc @@ -177,7 +177,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IN_INCOGNITO); Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications", - CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, + CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(), ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK), diff --git a/components/cookie_config/cookie_store_util.cc b/components/cookie_config/cookie_store_util.cc index 7c1b44b270d85..ed5bfab3502ec 100644 --- a/components/cookie_config/cookie_store_util.cc +++ b/components/cookie_config/cookie_store_util.cc @@ -14,6 +14,8 @@ namespace cookie_config { #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) namespace { +bool g_should_encrypt = true; + // Use the operating system's mechanisms to encrypt cookies before writing // them to persistent store. Currently this only is done with desktop OS's // because ChromeOS and Android already protect the entire profile contents. @@ -39,7 +41,7 @@ bool CookieOSCryptoDelegate::ShouldEncrypt() { // rewritten. return false; #else - return true; + return g_should_encrypt; #endif } @@ -63,6 +65,11 @@ base::LazyInstance g_cookie_crypto_delegate = net::CookieCryptoDelegate* GetCookieCryptoDelegate() { return g_cookie_crypto_delegate.Pointer(); } + +void SetEnableCookieCrypto(bool enable) { + g_should_encrypt = enable; +} + #else // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) net::CookieCryptoDelegate* GetCookieCryptoDelegate() { return NULL; diff --git a/components/cookie_config/cookie_store_util.h b/components/cookie_config/cookie_store_util.h index 893e6a07db7c8..ea782212ec4ad 100644 --- a/components/cookie_config/cookie_store_util.h +++ b/components/cookie_config/cookie_store_util.h @@ -15,7 +15,7 @@ namespace cookie_config { // this platform. The object returned is a LazyInstance. Ownership is not // transferred. net::CookieCryptoDelegate* GetCookieCryptoDelegate(); - +void SetEnableCookieCrypto(bool enable); } // namespace cookie_config #endif // COMPONENTS_COOKIE_CONFIG_COOKIE_STORE_UTIL_H_ diff --git a/components/crash/content/app/breakpad_linux.cc b/components/crash/content/app/breakpad_linux.cc index 9ebc33f4f01ce..39fd80b5dc7ce 100644 --- a/components/crash/content/app/breakpad_linux.cc +++ b/components/crash/content/app/breakpad_linux.cc @@ -654,7 +654,7 @@ bool CrashDone(const MinidumpDescriptor& minidump, info.process_type_length = 7; info.distro = base::g_linux_distro; info.distro_length = my_strlen(base::g_linux_distro); - info.upload = upload; + info.upload = false; info.process_start_time = g_process_start_time; info.oom_size = base::g_oom_size; info.pid = g_pid; @@ -728,7 +728,7 @@ void EnableCrashDumping(bool unattended) { } else { minidump_descriptor.set_size_limit(kMaxMinidumpFileSize); } -#if defined(OS_ANDROID) +#if 1 unattended = true; // Android never uploads directly. #endif if (unattended) { diff --git a/components/crash/content/app/crash_reporter_client.h b/components/crash/content/app/crash_reporter_client.h index 25ae505335864..ceb3cca27ff1b 100644 --- a/components/crash/content/app/crash_reporter_client.h +++ b/components/crash/content/app/crash_reporter_client.h @@ -38,7 +38,7 @@ class CrashReporterClient; // runtime. void SetCrashReporterClient(CrashReporterClient* client); -#if defined(CRASH_IMPLEMENTATION) +#if 1 // The components's embedder API should only be used by the component. CrashReporterClient* GetCrashReporterClient(); #endif diff --git a/components/crx_file/id_util.cc b/components/crx_file/id_util.cc index 99a245606837e..afa087fef765c 100644 --- a/components/crx_file/id_util.cc +++ b/components/crx_file/id_util.cc @@ -80,6 +80,7 @@ base::FilePath MaybeNormalizePath(const base::FilePath& path) { } bool IdIsValid(const std::string& id) { +#if 0 // Verify that the id is legal. if (id.size() != (crx_file::id_util::kIdSize * 2)) return false; @@ -90,7 +91,7 @@ bool IdIsValid(const std::string& id) { for (size_t i = 0; i < temp.size(); i++) if (temp[i] < 'a' || temp[i] > 'p') return false; - +#endif return true; } diff --git a/components/gcm_driver/gcm_channel_status_syncer.cc b/components/gcm_driver/gcm_channel_status_syncer.cc index cbe1ba2fd4dcb..0ff9e239a4aba 100644 --- a/components/gcm_driver/gcm_channel_status_syncer.cc +++ b/components/gcm_driver/gcm_channel_status_syncer.cc @@ -20,6 +20,8 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" +#include "content/nw/src/nw_base.h" + namespace gcm { namespace { @@ -61,7 +63,7 @@ const char kCustomPollIntervalMinutes[] = "gcm-channel-poll-interval"; // static void GCMChannelStatusSyncer::RegisterPrefs(PrefRegistrySimple* registry) { - registry->RegisterBooleanPref(prefs::kGCMChannelStatus, true); + registry->RegisterBooleanPref(prefs::kGCMChannelStatus, nw::gcm_enabled()); registry->RegisterIntegerPref( prefs::kGCMChannelPollIntervalSeconds, GCMChannelStatusRequest::default_poll_interval_seconds()); @@ -71,7 +73,7 @@ void GCMChannelStatusSyncer::RegisterPrefs(PrefRegistrySimple* registry) { // static void GCMChannelStatusSyncer::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { - registry->RegisterBooleanPref(prefs::kGCMChannelStatus, true); + registry->RegisterBooleanPref(prefs::kGCMChannelStatus, nw::gcm_enabled()); registry->RegisterIntegerPref( prefs::kGCMChannelPollIntervalSeconds, GCMChannelStatusRequest::default_poll_interval_seconds()); @@ -95,7 +97,7 @@ GCMChannelStatusSyncer::GCMChannelStatusSyncer( user_agent_(user_agent), request_context_(request_context), started_(false), - gcm_enabled_(true), + gcm_enabled_(nw::gcm_enabled()), poll_interval_seconds_( GCMChannelStatusRequest::default_poll_interval_seconds()), custom_poll_interval_use_count_(0), diff --git a/components/gcm_driver/gcm_driver_desktop.cc b/components/gcm_driver/gcm_driver_desktop.cc index 599957d2a5979..775047887e63d 100644 --- a/components/gcm_driver/gcm_driver_desktop.cc +++ b/components/gcm_driver/gcm_driver_desktop.cc @@ -33,6 +33,8 @@ #include "components/timers/alarm_timer_chromeos.h" #endif +#include "content/nw/src/nw_base.h" + namespace gcm { class GCMDriverDesktop::IOWorker : public GCMClient::Delegate { @@ -1184,7 +1186,8 @@ GCMClient::Result GCMDriverDesktop::EnsureStarted( // Polling for channel status should be invoked when GCM is being requested, // no matter whether GCM is enabled or nor. - gcm_channel_status_syncer_->EnsureStarted(); + if (nw::gcm_enabled()) + gcm_channel_status_syncer_->EnsureStarted(); if (!gcm_enabled_) return GCMClient::GCM_DISABLED; diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc index b896440857adf..4352256ad2582 100644 --- a/components/metrics/metrics_service.cc +++ b/components/metrics/metrics_service.cc @@ -275,7 +275,7 @@ MetricsService::MetricsService(MetricsStateManager* state_manager, clean_exit_beacon_(client->GetRegistryBackupKey(), local_state), recording_state_(UNSET), reporting_active_(false), - test_mode_active_(false), + test_mode_active_(true), state_(INITIALIZED), log_upload_in_progress_(false), idle_since_last_transmission_(false), @@ -317,9 +317,9 @@ void MetricsService::InitializeMetricsRecordingState() { } void MetricsService::Start() { - HandleIdleSinceLastTransmission(false); + test_mode_active_ = true; EnableRecording(); - EnableReporting(); + DisableReporting(); } void MetricsService::StartRecordingForTests() { diff --git a/components/metrics_services_manager/metrics_services_manager.cc b/components/metrics_services_manager/metrics_services_manager.cc index 652edef82c8ed..3eaf0825d0c7e 100644 --- a/components/metrics_services_manager/metrics_services_manager.cc +++ b/components/metrics_services_manager/metrics_services_manager.cc @@ -35,11 +35,13 @@ metrics::MetricsService* MetricsServicesManager::GetMetricsService() { } rappor::RapporService* MetricsServicesManager::GetRapporService() { +#if 0 DCHECK(thread_checker_.CalledOnValidThread()); if (!rappor_service_) { rappor_service_ = client_->CreateRapporService(); rappor_service_->Initialize(client_->GetURLRequestContext()); } +#endif return rappor_service_.get(); } @@ -85,8 +87,8 @@ void MetricsServicesManager::UpdateRunningServices() { if (client_->OnlyDoMetricsRecording()) { metrics->StartRecordingForTests(); - GetRapporService()->Update( - rappor::UMA_RAPPOR_GROUP | rappor::SAFEBROWSING_RAPPOR_GROUP, false); + // GetRapporService()->Update( + // rappor::UMA_RAPPOR_GROUP | rappor::SAFEBROWSING_RAPPOR_GROUP, false); return; } @@ -104,8 +106,8 @@ void MetricsServicesManager::UpdateRunningServices() { metrics->Stop(); } - int recording_groups = 0; #if defined(GOOGLE_CHROME_BUILD) + int recording_groups = 0; if (may_record_) recording_groups |= rappor::UMA_RAPPOR_GROUP; @@ -119,7 +121,7 @@ void MetricsServicesManager::UpdateRunningServices() { if (client_->IsSafeBrowsingEnabled(on_safe_browsing_update_callback)) recording_groups |= rappor::SAFEBROWSING_RAPPOR_GROUP; #endif // defined(GOOGLE_CHROME_BUILD) - GetRapporService()->Update(recording_groups, may_upload_); + // GetRapporService()->Update(recording_groups, may_upload_); } void MetricsServicesManager::UpdateUploadPermissions(bool may_upload) { diff --git a/components/nacl/loader/BUILD.gn b/components/nacl/loader/BUILD.gn index cef8842020d8c..0c2fe1a1cf424 100644 --- a/components/nacl/loader/BUILD.gn +++ b/components/nacl/loader/BUILD.gn @@ -128,6 +128,12 @@ if (is_linux) { ldflags = [ "-pie" ] + if (is_linux) { + if (!is_component_build) { + # Set rpath to find our own libfreetype even in a non-component build. + configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] + } + } data_deps = [ "//native_client/src/trusted/service_runtime/linux:bootstrap", ] diff --git a/components/nacl/loader/nacl_helper_linux.cc b/components/nacl/loader/nacl_helper_linux.cc index cdbbafd01b80a..b6cb26e7c0fb7 100644 --- a/components/nacl/loader/nacl_helper_linux.cc +++ b/components/nacl/loader/nacl_helper_linux.cc @@ -287,7 +287,7 @@ bool HonorRequestAndReply(int reply_fd, } if (!have_to_reply) return false; - const std::vector empty; // We never send file descriptors back. + const std::vector empty = std::vector(); // We never send file descriptors back. if (!base::UnixDomainSocket::SendMsg(reply_fd, write_pickle.data(), write_pickle.size(), empty)) { LOG(ERROR) << "*** send() to zygote failed"; @@ -307,11 +307,13 @@ bool HandleZygoteRequest(int zygote_ipc_fd, &buf, sizeof(buf), &fds); // If the Zygote has started handling requests, we should be sandboxed via // the setuid sandbox. +#if 0 if (!nacl_sandbox->layer_one_enabled()) { LOG(ERROR) << "NaCl helper process running without a sandbox!\n" << "Most likely you need to configure your SUID sandbox " << "correctly"; } +#endif if (msglen == 0 || (msglen == -1 && errno == ECONNRESET)) { // EOF from the browser. Goodbye! _exit(0); @@ -456,7 +458,7 @@ int main(int argc, char* argv[]) { nacl_sandbox->InitializeLayerOneSandbox(); CHECK_EQ(is_init_process, nacl_sandbox->layer_one_enabled()); - const std::vector empty; + const std::vector empty = std::vector(); // Send the zygote a message to let it know we are ready to help if (!base::UnixDomainSocket::SendMsg(kNaClZygoteDescriptor, kNaClHelperStartupAck, diff --git a/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc b/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc index e3878c1cd03b1..f080c4e8a4490 100644 --- a/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc +++ b/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc @@ -179,7 +179,7 @@ void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) { // have a single thread running here. DCHECK(!layer_one_sealed_); CHECK(IsSingleThreaded()); - CheckForExpectedNumberOfOpenFds(); + //CheckForExpectedNumberOfOpenFds(); RestrictAddressSpaceUsage(); diff --git a/components/nacl/zygote/nacl_fork_delegate_linux.cc b/components/nacl/zygote/nacl_fork_delegate_linux.cc index b1b39eccd32c2..871f2d91006c0 100644 --- a/components/nacl/zygote/nacl_fork_delegate_linux.cc +++ b/components/nacl/zygote/nacl_fork_delegate_linux.cc @@ -409,7 +409,7 @@ bool NaClForkDelegate::GetTerminationStatus(pid_t pid, bool known_dead, write_pickle.WriteInt(pid); write_pickle.WriteBool(known_dead); - const std::vector empty_fds; + const std::vector empty_fds = std::vector(); char reply_buf[kNaClMaxIPCMessageLength]; ssize_t reply_size = 0; bool got_reply = diff --git a/components/os_crypt/keychain_password_mac.mm b/components/os_crypt/keychain_password_mac.mm index 1f60b9f0572ae..2e0e66fde0867 100644 --- a/components/os_crypt/keychain_password_mac.mm +++ b/components/os_crypt/keychain_password_mac.mm @@ -55,8 +55,8 @@ const std::string service_name = "Chrome Safe Storage"; const std::string account_name = "Chrome"; #else - const std::string service_name = "Chromium Safe Storage"; - const std::string account_name = "Chromium"; + const std::string service_name = "NWJS Safe Storage"; + const std::string account_name = "nwjs"; #endif UInt32 password_length = 0; diff --git a/components/os_crypt/os_crypt_mac.mm b/components/os_crypt/os_crypt_mac.mm index f999d25654e13..1e8856673f9b3 100644 --- a/components/os_crypt/os_crypt_mac.mm +++ b/components/os_crypt/os_crypt_mac.mm @@ -34,7 +34,7 @@ const size_t kEncryptionIterations = 1003; // TODO(dhollowa): Refactor to allow dependency injection of Keychain. -static bool use_mock_keychain = false; +static bool use_mock_keychain = true; // Prefix for cypher text returned by current encryption version. We prefix // the cypher text with this string so that future data migration can detect diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn index 4384ea21b7306..908c485ffdf6e 100644 --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn @@ -84,3 +84,9 @@ action("about_credits") { rebase_path(about_credits_file, root_build_dir), ] } + +copy("about_credits_nw") { + sources = [ about_credits_file ] + outputs = [ "$root_build_dir/credits.html" ] + deps = [ ":about_credits" ] +} \ No newline at end of file diff --git a/components/spellcheck/browser/feedback.cc b/components/spellcheck/browser/feedback.cc index 3f54ec2f0764e..9333e4cd7e023 100644 --- a/components/spellcheck/browser/feedback.cc +++ b/components/spellcheck/browser/feedback.cc @@ -26,7 +26,7 @@ namespace spellcheck { Feedback::Feedback(size_t max_total_text_size) - : max_total_text_size_(max_total_text_size), total_text_size_(0) { + : empty_hash_collection_(), max_total_text_size_(max_total_text_size), total_text_size_(0) { DCHECK_GE(max_total_text_size, 1024U); } diff --git a/components/storage_monitor/portable_device_watcher_win.cc b/components/storage_monitor/portable_device_watcher_win.cc index 1fa2e2320f5f6..6ec977ead6a4c 100644 --- a/components/storage_monitor/portable_device_watcher_win.cc +++ b/components/storage_monitor/portable_device_watcher_win.cc @@ -30,7 +30,7 @@ namespace storage_monitor { namespace { // Name of the client application that communicates with the MTP device. -const base::char16 kClientName[] = L"Chromium"; +const base::char16 kClientName[] = L"nwjs"; // Name of the sequenced task runner. const char kMediaTaskRunnerName[] = "media-task-runner"; diff --git a/components/sync/driver/generic_change_processor.cc b/components/sync/driver/generic_change_processor.cc index 47f6217c88bbf..63bf833cee2ac 100644 --- a/components/sync/driver/generic_change_processor.cc +++ b/components/sync/driver/generic_change_processor.cc @@ -166,7 +166,7 @@ void GenericChangeProcessor::ApplyChangesFromSyncModel( ->mutable_client_only_encrypted_data() ->CopyFrom(it->extra->unencrypted()); } - const AttachmentIdList empty_list_of_attachment_ids; + const AttachmentIdList empty_list_of_attachment_ids = AttachmentIdList(); syncer_changes_.push_back(SyncChange( FROM_HERE, SyncChange::ACTION_DELETE, SyncData::CreateRemoteData( diff --git a/components/test_runner/web_view_test_proxy.h b/components/test_runner/web_view_test_proxy.h index 7a46951099df6..e324e57e86949 100644 --- a/components/test_runner/web_view_test_proxy.h +++ b/components/test_runner/web_view_test_proxy.h @@ -197,7 +197,7 @@ class WebViewTestProxy : public Base, public WebViewTestProxyBase { policy, suppress_opener)) return nullptr; return Base::createView(creator, request, features, frame_name, policy, - suppress_opener); + suppress_opener, nullptr); } void setStatusText(const blink::WebString& text) override { view_test_client()->setStatusText(text); diff --git a/components/translate/content/renderer/BUILD.gn b/components/translate/content/renderer/BUILD.gn index 17ab7fa3fccce..91f9e57ae6145 100644 --- a/components/translate/content/renderer/BUILD.gn +++ b/components/translate/content/renderer/BUILD.gn @@ -19,7 +19,7 @@ static_library("renderer") { "//content/public/renderer", "//services/service_manager/public/cpp", "//third_party/WebKit/public:blink", - "//third_party/cld", + #"//third_party/cld", "//url", "//v8", ] diff --git a/components/translate/core/language_detection/BUILD.gn b/components/translate/core/language_detection/BUILD.gn index d40e3bb81291f..629a8715e2dc2 100644 --- a/components/translate/core/language_detection/BUILD.gn +++ b/components/translate/core/language_detection/BUILD.gn @@ -13,7 +13,7 @@ static_library("language_detection") { deps = [ "//base", "//components/translate/core/common", - "//third_party/cld", + #"//third_party/cld", "//url", ] } diff --git a/content/BUILD.gn b/content/BUILD.gn index 64033c017f476..e27bda838cccc 100644 --- a/content/BUILD.gn +++ b/content/BUILD.gn @@ -58,6 +58,7 @@ config("content_implementation") { if (!is_nacl_nonsfi) { content_shared_components = [ + "//content/nw:nw_base", "//content/gpu:gpu_sources", "//content/public/browser:browser_sources", "//content/public/child:child_sources", @@ -79,6 +80,7 @@ if (is_component_build) { content_shared_components + [ "//content/public/app:both_sources" ] deps = [ "//build/config/sanitizers:deps", + "//content/nw:nw_content", ] } } else if (is_nacl_nonsfi) { diff --git a/content/app/content_main.cc b/content/app/content_main.cc index b983bf8191d9d..0a145323b72a2 100644 --- a/content/app/content_main.cc +++ b/content/app/content_main.cc @@ -8,6 +8,8 @@ #include "content/public/app/content_main_runner.h" +#include "content/nw/src/nw_base.h" + namespace content { int ContentMain(const ContentMainParams& params) { @@ -19,6 +21,8 @@ int ContentMain(const ContentMainParams& params) { exit_code = main_runner->Run(); + exit_code = nw::ExitCodeHook(); + main_runner->Shutdown(); return exit_code; diff --git a/content/app/content_main_runner.cc b/content/app/content_main_runner.cc index 8dd59dd15828a..11a6d71d3dfef 100644 --- a/content/app/content_main_runner.cc +++ b/content/app/content_main_runner.cc @@ -224,14 +224,14 @@ void CommonSubprocessInit(const std::string& process_type) { setlocale(LC_NUMERIC, "C"); #endif -#if !defined(OFFICIAL_BUILD) +#if 0 // Print stack traces to stderr when crashes occur. This opens up security // holes so it should never be enabled for official builds. if (!base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableInProcessStackTraces)) { base::debug::EnableInProcessStackDumping(); } -#if defined(OS_WIN) +#if 0 base::RouteStdioToConsole(false); LoadLibraryA("dbghelp.dll"); #endif @@ -535,7 +535,7 @@ class ContentMainRunnerImpl : public ContentMainRunner { if (delegate_ && delegate_->ShouldEnableProfilerRecording()) tracked_objects::ScopedTracker::Enable(); - SetProcessTitleFromCommandLine(argv); + //SetProcessTitleFromCommandLine(argv); #endif // !OS_ANDROID int exit_code = 0; @@ -750,7 +750,7 @@ class ContentMainRunnerImpl : public ContentMainRunner { int Run() override { DCHECK(is_initialized_); DCHECK(!is_shutdown_); - const base::CommandLine& command_line = + base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); std::string process_type = command_line.GetSwitchValueASCII(switches::kProcessType); @@ -763,6 +763,9 @@ class ContentMainRunnerImpl : public ContentMainRunner { base::HistogramBase::EnableActivityReportHistogram(process_type); + if (process_type.empty()) + command_line.AppendSwitch(switches::kNoSandbox); + MainFunctionParams main_params(command_line); main_params.ui_task = ui_task_; #if defined(OS_WIN) diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc index d4d4f14d881c1..56661bf16699f 100644 --- a/content/browser/browser_plugin/browser_plugin_guest.cc +++ b/content/browser/browser_plugin/browser_plugin_guest.cc @@ -4,6 +4,10 @@ #include "content/browser/browser_plugin/browser_plugin_guest.h" +#include "content/nw/src/nw_base.h" +#include "content/nw/src/common/shell_switches.h" +#include "base/files/file_util.h" + #include #include @@ -348,6 +352,20 @@ void BrowserPluginGuest::InitInternal( // Disable "client blocked" error page for browser plugin. renderer_prefs->disable_client_blocked_error_page = true; + base::ThreadRestrictions::ScopedAllowIO allow_io; + nw::Package* package = nw::package(); + std::string js_doc_start, js_doc_end; + package->root()->GetString(::switches::kmInjectJSDocStart, &js_doc_start); + if (!js_doc_start.empty()) { + std::string fpath = base::MakeAbsoluteFilePath(package->path()).AppendASCII(js_doc_start).AsUTF8Unsafe(); + renderer_prefs->nw_inject_js_doc_start = fpath; + } + package->root()->GetString(::switches::kmInjectJSDocEnd, &js_doc_end); + if (!js_doc_end.empty()) { + std::string fpath = base::MakeAbsoluteFilePath(package->path()).AppendASCII(js_doc_end).AsUTF8Unsafe(); + renderer_prefs->nw_inject_js_doc_end = fpath; + } + embedder_visibility_observer_.reset(new EmbedderVisibilityObserver(this)); DCHECK(GetWebContents()->GetRenderViewHost()); diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc index 39864532a1299..cbe63ed59ea22 100644 --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc @@ -99,7 +99,8 @@ bool IsMalformedBlobUrl(const GURL& url) { class ChildProcessSecurityPolicyImpl::SecurityState { public: SecurityState() - : enabled_bindings_(0), + : grant_all_(false), + enabled_bindings_(0), can_read_raw_cookies_(false), can_send_midi_sysex_(false) { } @@ -116,6 +117,9 @@ class ChildProcessSecurityPolicyImpl::SecurityState { file_permissions_.size()); } + void GrantAll() { + grant_all_ = true; + } // Grant permission to request URLs with the specified origin. void GrantOrigin(const url::Origin& origin) { origin_set_.insert(origin); @@ -208,6 +212,8 @@ class ChildProcessSecurityPolicyImpl::SecurityState { bool CanCommitURL(const GURL& url) { DCHECK(!url.SchemeIsBlob() && !url.SchemeIsFileSystem()) << "inner_url extraction should be done already."; + if (grant_all_) + return true; // Having permission to a scheme implies permission to all of its URLs. SchemeMap::const_iterator scheme_judgment( scheme_policy_.find(url.scheme())); @@ -235,6 +241,8 @@ class ChildProcessSecurityPolicyImpl::SecurityState { if (file.IsContentUri()) return HasPermissionsForContentUri(file, permissions); #endif + if (grant_all_) + return true; if (!permissions || file.empty() || !file.IsAbsolute()) return false; base::FilePath current_path = file.StripTrailingSeparators(); @@ -294,6 +302,8 @@ class ChildProcessSecurityPolicyImpl::SecurityState { typedef std::map FileSystemMap; typedef std::set FileSet; + bool grant_all_; + // Maps URL schemes to whether permission has been granted or revoked: // |true| means the scheme has been granted. // |false| means the scheme has been revoked. @@ -338,7 +348,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() { // IsWebSafeScheme(), and then eliminate the next two lines. RegisterWebSafeScheme(url::kBlobScheme); RegisterWebSafeScheme(url::kFileSystemScheme); - + //RegisterWebSafeScheme("chrome-devtools"); // We know about the following pseudo schemes and treat them specially. RegisterPseudoScheme(url::kAboutScheme); RegisterPseudoScheme(url::kJavaScriptScheme); @@ -478,6 +488,15 @@ void ChildProcessSecurityPolicyImpl::GrantRequestSpecificFileURL( } } +void ChildProcessSecurityPolicyImpl::GrantAll(int child_id) { + base::AutoLock lock(lock_); + SecurityStateMap::iterator state = security_state_.find(child_id); + if (state == security_state_.end()) + return; + + state->second->GrantAll(); +} + void ChildProcessSecurityPolicyImpl::GrantReadFile(int child_id, const base::FilePath& file) { GrantPermissionsForFile(child_id, file, READ_FILE_GRANT); diff --git a/content/browser/child_process_security_policy_impl.h b/content/browser/child_process_security_policy_impl.h index 82f0e9be22c66..8ae63422c9018 100644 --- a/content/browser/child_process_security_policy_impl.h +++ b/content/browser/child_process_security_policy_impl.h @@ -42,6 +42,7 @@ class CONTENT_EXPORT ChildProcessSecurityPolicyImpl static ChildProcessSecurityPolicyImpl* GetInstance(); // ChildProcessSecurityPolicy implementation. + void GrantAll(int child_id) override; void RegisterWebSafeScheme(const std::string& scheme) override; void RegisterWebSafeIsolatedScheme( const std::string& scheme, diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc index 7d1cf0c2d283a..0fa6ee23a4b93 100644 --- a/content/browser/compositor/gpu_process_transport_factory.cc +++ b/content/browser/compositor/gpu_process_transport_factory.cc @@ -161,6 +161,8 @@ bool IsCALayersDisabledFromCommandLine() { namespace content { +DISPLAY_EXPORT extern bool g_force_cpu_draw; + struct GpuProcessTransportFactory::PerCompositorData { gpu::SurfaceHandle surface_handle = gpu::kNullSurfaceHandle; BrowserCompositorOutputSurface* display_output_surface = nullptr; @@ -212,8 +214,10 @@ GpuProcessTransportFactory::CreateSoftwareOutputDevice( return std::unique_ptr( new SoftwareOutputDeviceX11(compositor)); #elif defined(OS_MACOSX) - return std::unique_ptr( - new SoftwareOutputDeviceMac(compositor)); + if (g_force_cpu_draw) + return std::unique_ptr(new SoftwareOutputDeviceForceCPUMac(compositor)); + else + return std::unique_ptr(new SoftwareOutputDeviceMac(compositor)); #else NOTREACHED(); return std::unique_ptr(); diff --git a/content/browser/compositor/software_output_device_mac.h b/content/browser/compositor/software_output_device_mac.h index e0a1b1f0c499a..5483ee2f6afeb 100644 --- a/content/browser/compositor/software_output_device_mac.h +++ b/content/browser/compositor/software_output_device_mac.h @@ -26,6 +26,21 @@ class Compositor; namespace content { +class SoftwareOutputDeviceForceCPUMac : public cc::SoftwareOutputDevice { + public: + explicit SoftwareOutputDeviceForceCPUMac(ui::Compositor* compositor); + ~SoftwareOutputDeviceForceCPUMac() override; + + void Resize(const gfx::Size& pixel_size, float scale_factor) override; + void EndPaint() override; + + private: + ui::Compositor* compositor_; + float scale_factor_; + + DISALLOW_COPY_AND_ASSIGN(SoftwareOutputDeviceForceCPUMac); +}; + class SoftwareOutputDeviceMac : public cc::SoftwareOutputDevice, public gfx::VSyncProvider { diff --git a/content/browser/compositor/software_output_device_mac.mm b/content/browser/compositor/software_output_device_mac.mm index bff1570c1fe17..d08cdb69fc07d 100644 --- a/content/browser/compositor/software_output_device_mac.mm +++ b/content/browser/compositor/software_output_device_mac.mm @@ -13,7 +13,29 @@ #include "ui/gfx/skia_util.h" namespace content { +extern bool g_force_cpu_draw; + +SoftwareOutputDeviceForceCPUMac::SoftwareOutputDeviceForceCPUMac(ui::Compositor* compositor) + : compositor_(compositor), scale_factor_(1) { + // this class should be created for g_force_cpu_draw + assert(g_force_cpu_draw); +} + +SoftwareOutputDeviceForceCPUMac::~SoftwareOutputDeviceForceCPUMac() { +} +void SoftwareOutputDeviceForceCPUMac::Resize(const gfx::Size& pixel_size, + float scale_factor) { + scale_factor_ = scale_factor; + cc::SoftwareOutputDevice::Resize(pixel_size, scale_factor); +} + +void SoftwareOutputDeviceForceCPUMac::EndPaint() { + SoftwareOutputDevice::EndPaint(); + ui::AcceleratedWidgetMacGotSoftwareFrame( + compositor_->widget(), scale_factor_, surface_->getCanvas()); +} + SoftwareOutputDeviceMac::SoftwareOutputDeviceMac(ui::Compositor* compositor) : compositor_(compositor), scale_factor_(1), current_index_(0) {} diff --git a/content/browser/compositor/software_output_device_win.cc b/content/browser/compositor/software_output_device_win.cc index c48bed4fa0ebf..9cade2b14f186 100644 --- a/content/browser/compositor/software_output_device_win.cc +++ b/content/browser/compositor/software_output_device_win.cc @@ -4,6 +4,8 @@ #include "content/browser/compositor/software_output_device_win.h" +#include "ui/display/display.h" + #include "base/debug/alias.h" #include "base/memory/shared_memory.h" #include "cc/resources/shared_bitmap.h" @@ -12,6 +14,9 @@ #include "ui/compositor/compositor.h" #include "ui/gfx/gdi_util.h" #include "ui/gfx/skia_util.h" +#include "ui/gfx/win/hwnd_util.h" +#include "ui/views/win/hwnd_message_handler.h" +#include "ui/views/win/hwnd_message_handler_delegate.h" namespace content { @@ -165,6 +170,13 @@ void SoftwareOutputDeviceWin::EndPaint() { if (rect.IsEmpty()) return; + if (g_force_cpu_draw) { + LONG style = GetWindowLong(hwnd_, GWL_EXSTYLE); + is_hwnd_composited_ = !!(style & (WS_EX_COMPOSITED | WS_EX_LAYERED)); + views::HWNDMessageHandler* window = reinterpret_cast(gfx::GetWindowUserData(hwnd_)); + is_hwnd_composited_ &= !(window->delegate_->HasFrame()); + } + if (is_hwnd_composited_) { RECT wr; GetWindowRect(hwnd_, &wr); diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser/devtools/devtools_http_handler.cc index 98841ec8cec7a..5e79e34824c72 100644 --- a/content/browser/devtools/devtools_http_handler.cc +++ b/content/browser/devtools/devtools_http_handler.cc @@ -713,6 +713,7 @@ DevToolsHttpHandler::DevToolsHttpHandler( delegate_(delegate), socket_factory_(nullptr), weak_factory_(this) { +#if defined(NWJS_SDK) bool bundles_resources = frontend_url_.empty(); if (frontend_url_.empty()) frontend_url_ = "/devtools/inspector.html"; @@ -725,6 +726,7 @@ DevToolsHttpHandler::DevToolsHttpHandler( output_directory, debug_frontend_dir, bundles_resources)); +#endif } void DevToolsHttpHandler::ServerStarted( diff --git a/content/browser/dom_storage/dom_storage_area.cc b/content/browser/dom_storage/dom_storage_area.cc index 884082f15dee8..31dfffb200157 100644 --- a/content/browser/dom_storage/dom_storage_area.cc +++ b/content/browser/dom_storage/dom_storage_area.cc @@ -45,7 +45,7 @@ const int kCommitDefaultDelaySecs = 5; // To avoid excessive IO we apply limits to the amount of data being written // and the frequency of writes. The specific values used are somewhat arbitrary. const int kMaxBytesPerHour = kPerStorageAreaQuota; -const int kMaxCommitsPerHour = 60; +const int kMaxCommitsPerHour = 60 * 3600; } // namespace diff --git a/content/browser/dom_storage/dom_storage_context_wrapper.cc b/content/browser/dom_storage/dom_storage_context_wrapper.cc index 67353fd7b879b..af7ce6ab53141 100644 --- a/content/browser/dom_storage/dom_storage_context_wrapper.cc +++ b/content/browser/dom_storage/dom_storage_context_wrapper.cc @@ -243,7 +243,7 @@ void DOMStorageContextWrapper::MojoState::BindLocalStorage( // To avoid excessive IO we apply limits to the amount of data being written // and the frequency of writes. const int kMaxBytesPerHour = kPerStorageAreaQuota; - const int kMaxCommitsPerHour = 60; + const int kMaxCommitsPerHour = std::numeric_limits::max(); auto found = level_db_wrappers_.find(origin); if (found == level_db_wrappers_.end()) { diff --git a/content/browser/frame_host/interstitial_page_impl.cc b/content/browser/frame_host/interstitial_page_impl.cc index 4fbe4425e62ab..2b052d80832c7 100644 --- a/content/browser/frame_host/interstitial_page_impl.cc +++ b/content/browser/frame_host/interstitial_page_impl.cc @@ -364,6 +364,9 @@ bool InterstitialPageImpl::OnMessageReceived(RenderFrameHost* render_frame_host, IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + if (!handled) { + handled = static_cast(web_contents_)->OnMessageReceived(render_frame_host, message); + } return handled; } diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc index 71063d8c46ba4..7275c4db8db10 100644 --- a/content/browser/frame_host/navigator_impl.cc +++ b/content/browser/frame_host/navigator_impl.cc @@ -50,6 +50,11 @@ #include "url/gurl.h" #include "url/url_constants.h" +namespace nw { + typedef bool(*RphGuestFilterURLHookFn)(content::RenderProcessHost* rph, const GURL* url); + extern RphGuestFilterURLHookFn gRphGuestFilterURLHook; +} + namespace content { namespace { @@ -157,9 +162,9 @@ void NavigatorImpl::DidStartProvisionalLoad( ChildProcessSecurityPolicyImpl::GetInstance(); if (render_process_host->IsForGuestsOnly() && !policy->IsWebSafeScheme(validated_url.scheme())) { + if (!(nw::gRphGuestFilterURLHook && nw::gRphGuestFilterURLHook(render_process_host, &validated_url))) //NWJS#5682 validated_url = GURL(url::kAboutBlankURL); } - if (is_main_frame && !is_error_page) { DidStartMainFrameNavigation(validated_url, render_frame_host->GetSiteInstance(), diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc index e09458913785c..d344875a76a0a 100644 --- a/content/browser/indexed_db/indexed_db_backing_store.cc +++ b/content/browser/indexed_db/indexed_db_backing_store.cc @@ -1232,8 +1232,20 @@ leveldb::Status IndexedDBBackingStore::GetIDBDatabaseMetaData( INTERNAL_READ_ERROR(GET_IDBDATABASE_METADATA); return s; } - if (!*found) - return leveldb::Status::OK(); + if (!*found) { + // migrate from 0.12 origin + const Origin origin(GURL("file://")); + std::string nw12_origin = ComputeOriginIdentifier(origin); + const std::string key2 = DatabaseNameKey::Encode(nw12_origin, name); + s = GetInt(db_.get(), key2, &metadata->id, found); + if (!s.ok() || !*found) + return leveldb::Status::OK(); + scoped_refptr transaction = + IndexedDBClassFactory::Get()->CreateLevelDBTransaction(db_.get()); + PutInt(transaction.get(), key, metadata->id); + transaction->Commit(); + LOG(INFO) << "migrated indexed db: " << name; + } s = GetVarInt(db_.get(), DatabaseMetaDataKey::Encode( metadata->id, DatabaseMetaDataKey::USER_VERSION), diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 001d6d32eda46..e5ca15d5a7746 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -247,9 +247,19 @@ #define IntToStringType base::IntToString #endif +#include "content/nw/src/common/shell_switches.h" +#include "content/nw/src/nw_content.h" + +namespace nw { +typedef bool (*RphGuestFilterURLHookFn)(content::RenderProcessHost* rph, const GURL* url); +CONTENT_EXPORT RphGuestFilterURLHookFn gRphGuestFilterURLHook = nullptr; +} + namespace content { namespace { +RenderProcessHost* g_first_host = nullptr; + const char kSiteProcessMapKeyName[] = "content_site_process_map"; #ifdef ENABLE_WEBRTC @@ -840,6 +850,8 @@ bool RenderProcessHostImpl::Init() { RegisterMojoInterfaces(); if (run_renderer_in_process()) { + base::ThreadRestrictions::ScopedAllowIO allow_io; + nw::LoadNodeSymbols(); DCHECK(g_renderer_main_thread_factory); // Crank up a thread and run the initialization there. With the way that // messages flow between the browser and renderer, this thread is required @@ -861,6 +873,8 @@ bool RenderProcessHostImpl::Init() { // in-process plugins. options.message_loop_type = base::MessageLoop::TYPE_DEFAULT; #endif + options.message_loop_type = base::MessageLoop::TYPE_NODE; + // As for execution sequence, this callback should have no any dependency // on starting in-process-render-thread. // So put it here to trigger ChannelMojo initialization earlier to enable @@ -1592,6 +1606,10 @@ void RenderProcessHostImpl::AppendRendererCommandLine( GetContentClient()->browser()->GetApplicationLocale(); command_line->AppendSwitchASCII(switches::kLang, locale); + bool allow_nw = false; + if (IsForGuestsOnly() && nw::GetInWebViewApplyAttr(&allow_nw) && allow_nw) { + command_line->AppendSwitch("nwjs-guest"); + } GetContentClient()->browser()->AppendExtraCommandLineSwitches(command_line, GetID()); @@ -1618,6 +1636,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( // Propagate the following switches to the renderer command line (along // with any associated values) if present in the browser command line. static const char* const kSwitchNames[] = { + switches::kDisableRAFThrottling, + switches::kEnableNodeWorker, + switches::kEnableSpellChecking, switches::kAgcStartupMinVolume, switches::kAecRefinedAdaptiveFilter, switches::kAllowLoopbackInPeerConnection, @@ -2329,6 +2350,8 @@ bool RenderProcessHostImpl::FastShutdownStarted() const { // static void RenderProcessHostImpl::RegisterHost(int host_id, RenderProcessHost* host) { g_all_hosts.Get().AddWithID(host, host_id); + if (g_all_hosts.Get().size() == 1) + g_first_host = host; } // static @@ -2339,6 +2362,8 @@ void RenderProcessHostImpl::UnregisterHost(int host_id) { g_all_hosts.Get().Remove(host_id); + if (g_first_host == host) + g_first_host = nullptr; // Look up the map of site to process for the given browser_context, // in case we need to remove this process from it. It will be registered // under any sites it rendered that use process-per-site mode. @@ -2376,6 +2401,8 @@ void RenderProcessHostImpl::FilterURL(RenderProcessHost* rph, // If this renderer is not permitted to request this URL, we invalidate the // URL. This prevents us from storing the blocked URL and becoming confused // later. + if (nw::gRphGuestFilterURLHook && nw::gRphGuestFilterURLHook(rph, url)) + return; VLOG(1) << "Blocked URL " << url->spec(); *url = GURL(url::kAboutBlankURL); } @@ -2500,6 +2527,8 @@ RenderProcessHost* RenderProcessHost::GetExistingProcessHost( if (GetContentClient()->browser()->MayReuseHost(iter.GetCurrentValue()) && RenderProcessHostImpl::IsSuitableHost(iter.GetCurrentValue(), browser_context, site_url)) { + if (iter.GetCurrentValue() == g_first_host) + return g_first_host; suitable_renderers.push_back(iter.GetCurrentValue()); } iter.Advance(); @@ -2507,9 +2536,11 @@ RenderProcessHost* RenderProcessHost::GetExistingProcessHost( // Now pick a random suitable renderer, if we have any. if (!suitable_renderers.empty()) { - int suitable_count = static_cast(suitable_renderers.size()); - int random_index = base::RandInt(0, suitable_count - 1); - return suitable_renderers[random_index]; + //int suitable_count = static_cast(suitable_renderers.size()); + //int random_index = base::RandInt(0, suitable_count - 1); + //NWJS: reuse first renderer, the main process for valid nw.Window.open + //callback value. see also app_window_api.cc:416 + return suitable_renderers[0]; } return NULL; @@ -2578,7 +2609,10 @@ void RenderProcessHostImpl::RegisterProcessHostForSite( // appropriate bindings here, because the bindings have not yet been granted. std::string site = SiteInstance::GetSiteForURL(browser_context, url).possibly_invalid_spec(); - if (!site.empty()) + // don't register process when we're opening new_instance window, or + // the map slot will be took over and following same-instance window + // opening will return null; NWJS#4691 + if (!site.empty() && nw::PinningRenderer()) map->RegisterProcess(site, process); } diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index 93d929c4f2bd1..044868cdcb770 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "content/browser/renderer_host/render_widget_host_view_mac.h" +#include "content/public/common/content_switches.h" #import #import @@ -111,6 +112,11 @@ using blink::WebMouseWheelEvent; using blink::WebGestureEvent; +namespace content { + extern bool g_support_transparency; + extern bool g_force_cpu_draw; +} + namespace { // Whether a keyboard event has been reserved by OSX. @@ -464,9 +470,11 @@ float FlipYFromRectToScreen(float y, float rect_height) { background_layer_.reset([[CALayer alloc] init]); // Set the default color to be white. This is the wrong thing to do, but many // UI components expect this view to be opaque. - [background_layer_ setBackgroundColor:CGColorGetConstantColor(kCGColorWhite)]; + bool isOpaque = [cocoa_view_ isOpaque]; + [background_layer_ setBackgroundColor: (isOpaque || !content::g_support_transparency) ? + CGColorGetConstantColor(kCGColorWhite) : CGColorGetConstantColor(kCGColorClear)]; [cocoa_view_ setLayer:background_layer_]; - [cocoa_view_ setWantsLayer:YES]; + [cocoa_view_ setWantsLayer:!content::g_force_cpu_draw]; browser_compositor_.reset(new BrowserCompositorMac( this, this, render_widget_host_->is_hidden(), [cocoa_view_ window])); @@ -759,6 +767,7 @@ float FlipYFromRectToScreen(float y, float rect_height) { [cocoa_view_ setHidden:YES]; render_widget_host_->WasHidden(); + if (!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableRAFThrottling)) browser_compositor_->SetRenderWidgetHostIsHidden(true); } @@ -778,6 +787,7 @@ float FlipYFromRectToScreen(float y, float rect_height) { } render_widget_host_->WasHidden(); + if (!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableRAFThrottling)) browser_compositor_->SetRenderWidgetHostIsHidden(true); } @@ -1829,6 +1839,16 @@ - (id)forwardingTargetForSelector:(SEL)selector { return [super forwardingTargetForSelector:selector]; } +- (void)drawRect:(NSRect)dirty { + if (content::g_force_cpu_draw) { + CGContextRef ctx = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]; + CGContextClipToRect(ctx, NSRectToCGRect(dirty)); + [[self layer] renderInContext:ctx]; + } else { + [super drawRect:dirty]; + } +} + - (void)setCanBeKeyView:(BOOL)can { canBeKeyView_ = can; } @@ -3450,7 +3470,7 @@ - (BOOL)readSelectionFromPasteboard:(NSPasteboard*)pboard { } - (BOOL)isOpaque { - return opaque_; + return content::g_support_transparency ? [super isOpaque] : opaque_; } // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding diff --git a/content/browser/shared_worker/shared_worker_host.cc b/content/browser/shared_worker/shared_worker_host.cc index d3f4e1d711748..38ebcefc343f3 100644 --- a/content/browser/shared_worker/shared_worker_host.cc +++ b/content/browser/shared_worker/shared_worker_host.cc @@ -85,6 +85,10 @@ bool SharedWorkerHost::Send(IPC::Message* message) { void SharedWorkerHost::Start(bool pause_on_start) { WorkerProcessMsg_CreateWorker_Params params; + params.nodejs = instance_->nodejs(); + if (params.nodejs) { + params.root_path = instance_->root_path(); + } params.url = instance_->url(); params.name = instance_->name(); params.content_security_policy = instance_->content_security_policy(); diff --git a/content/browser/shared_worker/shared_worker_instance.cc b/content/browser/shared_worker/shared_worker_instance.cc index 282cf19051577..cd708fcfd70d5 100644 --- a/content/browser/shared_worker/shared_worker_instance.cc +++ b/content/browser/shared_worker/shared_worker_instance.cc @@ -8,7 +8,7 @@ namespace content { -SharedWorkerInstance::SharedWorkerInstance( +SharedWorkerInstance::SharedWorkerInstance(bool is_node_js, const base::FilePath& root_path, const GURL& url, const base::string16& name, const base::string16& content_security_policy, @@ -17,7 +17,8 @@ SharedWorkerInstance::SharedWorkerInstance( ResourceContext* resource_context, const WorkerStoragePartitionId& partition_id, blink::WebSharedWorkerCreationContextType creation_context_type) - : url_(url), + : is_node_js_(is_node_js), root_path_(root_path), + url_(url), name_(name), content_security_policy_(content_security_policy), security_policy_type_(security_policy_type), @@ -29,7 +30,7 @@ SharedWorkerInstance::SharedWorkerInstance( } SharedWorkerInstance::SharedWorkerInstance(const SharedWorkerInstance& other) - : url_(other.url_), + : is_node_js_(other.is_node_js_), root_path_(other.root_path_), url_(other.url_), name_(other.name_), content_security_policy_(other.content_security_policy_), security_policy_type_(other.security_policy_type_), diff --git a/content/browser/shared_worker/shared_worker_instance.h b/content/browser/shared_worker/shared_worker_instance.h index 947621e126108..77bf63026712e 100644 --- a/content/browser/shared_worker/shared_worker_instance.h +++ b/content/browser/shared_worker/shared_worker_instance.h @@ -7,6 +7,8 @@ #include +#include "base/files/file_path.h" + #include "content/browser/shared_worker/worker_storage_partition.h" #include "content/common/content_export.h" #include "third_party/WebKit/public/platform/WebAddressSpace.h" @@ -21,7 +23,7 @@ class ResourceContext; // the UI thread and be used for comparison in SharedWorkerDevToolsManager. class CONTENT_EXPORT SharedWorkerInstance { public: - SharedWorkerInstance( + SharedWorkerInstance(bool is_node_js, const base::FilePath& root_path, const GURL& url, const base::string16& name, const base::string16& content_security_policy, @@ -46,6 +48,8 @@ class CONTENT_EXPORT SharedWorkerInstance { bool Matches(const SharedWorkerInstance& other) const; // Accessors. + bool nodejs() const { return is_node_js_; } + const base::FilePath& root_path() const { return root_path_; } const GURL& url() const { return url_; } const base::string16 name() const { return name_; } const base::string16 content_security_policy() const { @@ -66,6 +70,8 @@ class CONTENT_EXPORT SharedWorkerInstance { } private: + bool is_node_js_; + const base::FilePath root_path_; const GURL url_; const base::string16 name_; const base::string16 content_security_policy_; diff --git a/content/browser/shared_worker/shared_worker_service_impl.cc b/content/browser/shared_worker/shared_worker_service_impl.cc index 291df2c487247..8a0a376746745 100644 --- a/content/browser/shared_worker/shared_worker_service_impl.cc +++ b/content/browser/shared_worker/shared_worker_service_impl.cc @@ -302,7 +302,7 @@ blink::WebWorkerCreationError SharedWorkerServiceImpl::CreateWorker( ResourceContext* resource_context, const WorkerStoragePartitionId& partition_id) { DCHECK_CURRENTLY_ON(BrowserThread::IO); - std::unique_ptr instance(new SharedWorkerInstance( + std::unique_ptr instance(new SharedWorkerInstance(params.is_node_js, params.root_path, params.url, params.name, params.content_security_policy, params.security_policy_type, params.creation_address_space, resource_context, partition_id, params.creation_context_type)); diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc index 7980783a7d3ed..39bc8a5aba756 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc @@ -4,6 +4,9 @@ #include "content/browser/site_instance_impl.h" +#include "content/nw/src/nw_content.h" +#include "extensions/common/constants.h" + #include "content/browser/browsing_instance.h" #include "content/browser/child_process_security_policy_impl.h" #include "content/browser/frame_host/debug_urls.h" @@ -98,7 +101,7 @@ RenderProcessHost* SiteInstanceImpl::GetProcess() { // given site), then look for an existing RenderProcessHost for the site. bool use_process_per_site = has_site_ && RenderProcessHost::ShouldUseProcessPerSite(browser_context, site_); - if (use_process_per_site) { + if (use_process_per_site && nw::PinningRenderer()) { process_ = RenderProcessHostImpl::GetProcessHostForSite(browser_context, site_); } @@ -348,6 +351,10 @@ GURL SiteInstance::GetSiteForURL(BrowserContext* browser_context, std::string domain = net::registry_controlled_domains::GetDomainAndRegistry( origin.host(), net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); + //NWJS: chrome-extension://test.foo.com was changed to foo.com + //without this + if (real_url.SchemeIs("chrome-extension")) + domain = origin.host(); std::string site = origin.scheme(); site += url::kStandardSchemeSeparator; site += domain.empty() ? origin.host() : domain; diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 574053731784a..20252440641cc 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -9,6 +9,8 @@ #include #include +#include "content/nw/src/nw_base.h" + #include "base/command_line.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" @@ -2146,10 +2148,11 @@ void WebContentsImpl::CreateNewWindow( AddDestructionObserver(new_contents); } + nw::SetCurrentNewWinManifest(params.nw_window_manifest); if (delegate_) { delegate_->WebContentsCreated( - this, render_process_id, params.opener_render_frame_id, - params.frame_name, params.target_url, new_contents); + this, render_process_id, params.opener_render_frame_id, params.frame_name, + params.target_url, new_contents, params.nw_window_manifest); } if (params.opener_suppressed) { diff --git a/content/browser/webui/url_data_manager_backend.cc b/content/browser/webui/url_data_manager_backend.cc index 72c035a202690..37a3f036d12de 100644 --- a/content/browser/webui/url_data_manager_backend.cc +++ b/content/browser/webui/url_data_manager_backend.cc @@ -7,6 +7,8 @@ #include #include +#include "content/nw/src/nw_content.h" + #include "base/bind.h" #include "base/command_line.h" #include "base/compiler_specific.h" @@ -53,6 +55,11 @@ #include "net/url_request/url_request_job_factory.h" #include "url/url_util.h" +namespace nw { +typedef bool (*CheckStoragePartitionMatchesFn)(int render_process_id, const GURL& url); +CONTENT_EXPORT CheckStoragePartitionMatchesFn gCheckStoragePartitionMatches = nullptr; +} + namespace content { namespace { diff --git a/content/browser/zygote_host/zygote_communication_linux.cc b/content/browser/zygote_host/zygote_communication_linux.cc index c72bdaf3f5f15..2fb535451e030 100644 --- a/content/browser/zygote_host/zygote_communication_linux.cc +++ b/content/browser/zygote_host/zygote_communication_linux.cc @@ -4,6 +4,7 @@ #include "content/browser/zygote_host/zygote_communication_linux.h" +#include "content/nw/src/common/shell_switches.h" #include #include @@ -248,6 +249,7 @@ void ZygoteCommunication::Init() { // to the zygote/renderers. // Should this list be obtained from browser_render_process_host.cc? static const char* const kForwardSwitches[] = { + switches::kEnableSpellChecking, switches::kAllowSandboxDebugging, switches::kAndroidFontsPath, switches::kDisableSeccompFilterSandbox, switches::kEnableHeapProfiling, diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc index 38b8cf6b3b584..b12be8fe73268 100644 --- a/content/browser/zygote_host/zygote_host_impl_linux.cc +++ b/content/browser/zygote_host/zygote_host_impl_linux.cc @@ -21,6 +21,8 @@ #include "sandbox/linux/suid/client/setuid_sandbox_host.h" #include "sandbox/linux/suid/common/sandbox.h" +#include "content/nw/src/common/shell_switches.h" + namespace content { namespace { @@ -70,7 +72,7 @@ ZygoteHostImpl* ZygoteHostImpl::GetInstance() { } void ZygoteHostImpl::Init(const base::CommandLine& command_line) { - if (command_line.HasSwitch(switches::kNoSandbox)) { + if (true && command_line.HasSwitch(switches::kNoSandbox)) { return; } @@ -96,7 +98,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& command_line) { #endif } else if (!command_line.HasSwitch(switches::kDisableSetuidSandbox) && !sandbox_binary_.empty()) { - use_suid_sandbox_ = true; + use_suid_sandbox_ = false; // Use the SUID sandbox for adjusting OOM scores when we are using // the setuid sandbox. This is needed beacuse the processes are diff --git a/content/child/child_process.cc b/content/child/child_process.cc index 2763ee03cffdb..c1e886f7f8bc9 100644 --- a/content/child/child_process.cc +++ b/content/child/child_process.cc @@ -123,7 +123,7 @@ void ChildProcess::WaitForDebugger(const std::string& label) { #if defined(GOOGLE_CHROME_BUILD) std::string title = "Google Chrome"; #else // CHROMIUM_BUILD - std::string title = "Chromium"; + std::string title = "NWJS"; #endif // CHROMIUM_BUILD title += " "; title += label; // makes attaching to process easier diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc index 7f2755b3e00f3..77781f481807d 100644 --- a/content/child/child_thread_impl.cc +++ b/content/child/child_thread_impl.cc @@ -547,7 +547,7 @@ void ChildThreadImpl::Init(const Options& options) { new base::PowerMonitor(std::move(power_monitor_source))); } -#if defined(OS_POSIX) +#if 0 // for supporting 'exit' event of process // Check that --process-type is specified so we don't do this in unit tests // and single-process mode. if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kProcessType)) diff --git a/content/common/dom_storage/dom_storage_map.cc b/content/common/dom_storage/dom_storage_map.cc index 71368bdd55039..49f1faeaba7c9 100644 --- a/content/common/dom_storage/dom_storage_map.cc +++ b/content/common/dom_storage/dom_storage_map.cc @@ -16,10 +16,14 @@ size_t size_of_item(const base::string16& key, const base::string16& value) { } // namespace +size_t DOMStorageMap::quota_override_ = 0; + DOMStorageMap::DOMStorageMap(size_t quota) : bytes_used_(0), quota_(quota) { ResetKeyIterator(); + if (quota_override_) + quota_ = quota_override_; } DOMStorageMap::~DOMStorageMap() {} diff --git a/content/common/dom_storage/dom_storage_map.h b/content/common/dom_storage/dom_storage_map.h index 002833392606a..137e523a02d49 100644 --- a/content/common/dom_storage/dom_storage_map.h +++ b/content/common/dom_storage/dom_storage_map.h @@ -24,6 +24,7 @@ class CONTENT_EXPORT DOMStorageMap : public base::RefCountedThreadSafe { public: explicit DOMStorageMap(size_t quota); + static void SetQuotaOverride(size_t quota) {quota_override_ = quota; } unsigned Length() const; base::NullableString16 Key(unsigned index); @@ -46,7 +47,7 @@ class CONTENT_EXPORT DOMStorageMap size_t bytes_used() const { return bytes_used_; } size_t quota() const { return quota_; } - void set_quota(size_t quota) { quota_ = quota; } + void set_quota(size_t quota) { quota_ = quota > quota_override_ ? quota : quota_override_; } static size_t CountBytes(const DOMStorageValuesMap& values); @@ -61,6 +62,7 @@ class CONTENT_EXPORT DOMStorageMap unsigned last_key_index_; size_t bytes_used_; size_t quota_; + static size_t quota_override_; }; } // namespace content diff --git a/content/common/dom_storage/dom_storage_types.h b/content/common/dom_storage/dom_storage_types.h index e913aa80f95fe..d0f567d50a562 100644 --- a/content/common/dom_storage/dom_storage_types.h +++ b/content/common/dom_storage/dom_storage_types.h @@ -21,13 +21,13 @@ typedef std::map DOMStorageValuesMap; // The quota for each storage area. // This value is enforced in renderer processes and the browser process. -const size_t kPerStorageAreaQuota = 10 * 1024 * 1024; +const size_t kPerStorageAreaQuota = std::numeric_limits::max(); // In the browser process we allow some overage to // accomodate concurrent writes from different renderers // that were allowed because the limit imposed in the renderer // wasn't exceeded. -const size_t kPerStorageAreaOverQuotaAllowance = 100 * 1024; +const size_t kPerStorageAreaOverQuotaAllowance = 0; // Value to indicate the localstorage namespace vs non-zero // values for sessionstorage namespaces. diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h index 47c2f4007d48c..167828d60d183 100644 --- a/content/common/frame_messages.h +++ b/content/common/frame_messages.h @@ -540,6 +540,8 @@ IPC_STRUCT_TRAITS_BEGIN(content::FileChooserParams) IPC_STRUCT_TRAITS_MEMBER(capture) #endif IPC_STRUCT_TRAITS_MEMBER(requestor) + IPC_STRUCT_TRAITS_MEMBER(initial_path) + IPC_STRUCT_TRAITS_MEMBER(extract_directory) IPC_STRUCT_TRAITS_END() #if defined(USE_EXTERNAL_POPUP_MENU) diff --git a/content/common/render_message_filter.mojom b/content/common/render_message_filter.mojom index be6a9a97cdfc6..860abcdb0ac97 100644 --- a/content/common/render_message_filter.mojom +++ b/content/common/render_message_filter.mojom @@ -10,6 +10,7 @@ import "third_party/WebKit/public/platform/referrer.mojom"; import "third_party/WebKit/public/web/window_features.mojom"; import "ui/base/mojo/window_open_disposition.mojom"; import "url/mojo/url.mojom"; +import "mojo/common/common_custom_types.mojom"; struct CreateNewWindowParams { // Routing ID of the view initiating the open. @@ -57,6 +58,8 @@ struct CreateNewWindowParams { // The window features to use for the new view. blink.mojom.WindowFeatures features; + + mojo.common.mojom.String16 nw_window_manifest; }; struct CreateNewWindowReply { diff --git a/content/common/sandbox_linux/sandbox_linux.cc b/content/common/sandbox_linux/sandbox_linux.cc index 9823b2020f447..0ac20bff57489 100644 --- a/content/common/sandbox_linux/sandbox_linux.cc +++ b/content/common/sandbox_linux/sandbox_linux.cc @@ -121,9 +121,11 @@ LinuxSandbox::LinuxSandbox() } LinuxSandbox::~LinuxSandbox() { +#if 0 if (pre_initialized_) { CHECK(initialize_sandbox_ran_); } +#endif } LinuxSandbox* LinuxSandbox::GetInstance() { diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc index 5602261f68182..f5c370137a729 100644 --- a/content/common/user_agent.cc +++ b/content/common/user_agent.cc @@ -163,6 +163,16 @@ std::string BuildUserAgentFromProduct(const std::string& product) { return BuildUserAgentFromOSAndProduct(os_info, product); } +std::string BuildOSInfo() { + std::string os_info; + base::StringAppendF( + &os_info, + "%s%s", + getUserAgentPlatform().c_str(), + BuildOSCpuInfo().c_str()); + return os_info; +} + std::string BuildUserAgentFromProductAndExtraOSInfo( const std::string& product, const std::string& extra_os_info) { diff --git a/content/common/view_messages.h b/content/common/view_messages.h index 26143d401d4c8..c2313edb24325 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h @@ -265,6 +265,8 @@ IPC_STRUCT_TRAITS_BEGIN(content::RendererPreferences) IPC_STRUCT_TRAITS_MEMBER(arrow_bitmap_width_horizontal_scroll_bar_in_dips) #endif IPC_STRUCT_TRAITS_MEMBER(default_font_size) + IPC_STRUCT_TRAITS_MEMBER(nw_inject_js_doc_start) + IPC_STRUCT_TRAITS_MEMBER(nw_inject_js_doc_end) IPC_STRUCT_TRAITS_END() IPC_STRUCT_TRAITS_BEGIN(media::MediaLogEvent) @@ -289,6 +291,8 @@ IPC_STRUCT_TRAITS_BEGIN(content::TextInputState) IPC_STRUCT_TRAITS_END() IPC_STRUCT_BEGIN(ViewHostMsg_CreateWorker_Params) + IPC_STRUCT_MEMBER(bool, is_node_js) + IPC_STRUCT_MEMBER(base::FilePath, root_path) // URL for the worker script. IPC_STRUCT_MEMBER(GURL, url) diff --git a/content/common/worker_messages.h b/content/common/worker_messages.h index e49ce80e525f1..217ebb45f2e47 100644 --- a/content/common/worker_messages.h +++ b/content/common/worker_messages.h @@ -37,6 +37,8 @@ IPC_STRUCT_END() // Parameter structure for WorkerProcessMsg_CreateWorker. IPC_STRUCT_BEGIN(WorkerProcessMsg_CreateWorker_Params) + IPC_STRUCT_MEMBER(bool, nodejs) + IPC_STRUCT_MEMBER(base::FilePath, root_path) IPC_STRUCT_MEMBER(GURL, url) IPC_STRUCT_MEMBER(base::string16, name) IPC_STRUCT_MEMBER(base::string16, content_security_policy) diff --git a/content/ppapi_plugin/ppapi_plugin_main.cc b/content/ppapi_plugin/ppapi_plugin_main.cc index fcc23cbfa7f3c..ef57028331c0b 100644 --- a/content/ppapi_plugin/ppapi_plugin_main.cc +++ b/content/ppapi_plugin/ppapi_plugin_main.cc @@ -121,7 +121,7 @@ int PpapiPluginMain(const MainFunctionParams& parameters) { #endif #if defined(OS_LINUX) - LinuxSandbox::InitializeSandbox(); + //LinuxSandbox::InitializeSandbox(); #endif ChildProcess ppapi_process; diff --git a/content/public/browser/child_process_security_policy.h b/content/public/browser/child_process_security_policy.h index 1bbe218dc6009..b6fe5fa0fe266 100644 --- a/content/public/browser/child_process_security_policy.h +++ b/content/public/browser/child_process_security_policy.h @@ -65,6 +65,7 @@ class ChildProcessSecurityPolicy { // change it to accept an URL instead. virtual bool IsWebSafeScheme(const std::string& scheme) = 0; + virtual void GrantAll(int child_id) = 0; // This permission grants only read access to a file. // Whenever the user picks a file from a element, the // browser should call this function to grant the child process the capability diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc index 2f853a6d88cb9..70c0b3b70afe6 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -194,6 +194,10 @@ void ContentBrowserClient::AllowWorkerFileSystem( callback.Run(true); } +base::FilePath ContentBrowserClient::GetRootPath() { + return base::FilePath(); +} + bool ContentBrowserClient::AllowWorkerIndexedDB( const GURL& url, const base::string16& name, diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h index a802ecec8992b..c50629ef5b342 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -362,6 +362,7 @@ class CONTENT_EXPORT ContentBrowserClient { const std::vector >& render_frames, base::Callback callback); + virtual base::FilePath GetRootPath(); // Allow the embedder to control if access to IndexedDB by a shared worker // is allowed. // This is called on the IO thread. diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h index 2beb83c3b721b..a34fb7e56a94a 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -312,7 +312,8 @@ class CONTENT_EXPORT WebContentsDelegate { int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - WebContents* new_contents) {} + WebContents* new_contents, + const base::string16& nw_window_manifest) {} // Notification that the tab is hung. virtual void RendererUnresponsive( diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index 33b2e4c3ea31d..7284ee77973ed 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc @@ -144,9 +144,17 @@ const char kDisableGestureRequirementForPresentation[] = // then the GPU process won't launch. const char kDisableGpu[] = "disable-gpu"; +// Disable apps transparency support +const char kDisableTransparency[] = "disable-transparency"; + +// Force CPU drawing, needed to enable click through on transparent window +const char kForceCpuDraw[] = "force-cpu-draw"; + // Prevent the compositor from using its GPU implementation. const char kDisableGpuCompositing[] = "disable-gpu-compositing"; - +const char kDisableRAFThrottling[] = "disable-raf-throttling"; +const char kEnableNodeWorker[] = "enable-node-worker"; +const char kNWAppPath[] = "nwapp-path"; // Disable proactive early init of GPU process. const char kDisableGpuEarlyInit[] = "disable-gpu-early-init"; diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index 84babfd450c15..f71b224387a38 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h @@ -53,7 +53,12 @@ CONTENT_EXPORT extern const char kDisableGestureRequirementForMediaPlayback[]; CONTENT_EXPORT extern const char kDisableGestureRequirementForPresentation[]; CONTENT_EXPORT extern const char kDisableGpu[]; CONTENT_EXPORT extern const char kDisableGpuAsyncWorkerContext[]; +CONTENT_EXPORT extern const char kDisableTransparency[]; +CONTENT_EXPORT extern const char kForceCpuDraw[]; CONTENT_EXPORT extern const char kDisableGpuCompositing[]; +CONTENT_EXPORT extern const char kDisableRAFThrottling[]; +CONTENT_EXPORT extern const char kEnableNodeWorker[]; +CONTENT_EXPORT extern const char kNWAppPath[]; CONTENT_EXPORT extern const char kDisableGpuEarlyInit[]; CONTENT_EXPORT extern const char kDisableGpuMemoryBufferCompositorResources[]; CONTENT_EXPORT extern const char kDisableGpuMemoryBufferVideoFrames[]; diff --git a/content/public/common/file_chooser_params.h b/content/public/common/file_chooser_params.h index c189785370bdc..9c466e3b1c387 100644 --- a/content/public/common/file_chooser_params.h +++ b/content/public/common/file_chooser_params.h @@ -62,6 +62,9 @@ struct CONTENT_EXPORT FileChooserParams { // initiated by a document. Note that this value should be considered // untrustworthy since it is specified by the sandbox and not validated. GURL requestor; + + base::FilePath initial_path; + bool extract_directory; }; } // namespace content diff --git a/content/public/common/renderer_preferences.h b/content/public/common/renderer_preferences.h index d32e93c534331..e3059422184b7 100644 --- a/content/public/common/renderer_preferences.h +++ b/content/public/common/renderer_preferences.h @@ -176,6 +176,8 @@ struct CONTENT_EXPORT RendererPreferences { // The default font size used for rendering on Linux. int default_font_size; + std::string nw_inject_js_doc_start; + std::string nw_inject_js_doc_end; }; } // namespace content diff --git a/content/public/common/user_agent.h b/content/public/common/user_agent.h index 8a095a81c92ea..fc5d94b9933ea 100644 --- a/content/public/common/user_agent.h +++ b/content/public/common/user_agent.h @@ -19,6 +19,8 @@ CONTENT_EXPORT std::string GetWebKitRevision(); // Builds a User-agent compatible string that describes the OS and CPU type. CONTENT_EXPORT std::string BuildOSCpuInfo(); +CONTENT_EXPORT std::string BuildOSInfo(); + // Helper function to generate a full user agent string from a short // product name. CONTENT_EXPORT std::string BuildUserAgentFromProduct( diff --git a/content/public/common/web_preferences.cc b/content/public/common/web_preferences.cc index da49d445705c1..5962681319ac3 100644 --- a/content/public/common/web_preferences.cc +++ b/content/public/common/web_preferences.cc @@ -185,13 +185,13 @@ WebPreferences::WebPreferences() expensive_background_throttling_initial_budget(-1.0f), expensive_background_throttling_max_budget(-1.0f), expensive_background_throttling_max_delay(-1.0f), + double_tap_to_zoom_enabled(false), #if defined(OS_ANDROID) text_autosizing_enabled(true), font_scale_factor(1.0f), device_scale_adjustment(1.0f), force_enable_zoom(false), fullscreen_supported(true), - double_tap_to_zoom_enabled(true), user_gesture_required_for_media_playback(true), support_deprecated_target_density_dpi(false), use_legacy_background_size_shorthand_behavior(false), diff --git a/content/public/common/web_preferences.h b/content/public/common/web_preferences.h index b853dd3f2ee13..26508b1a61dd6 100644 --- a/content/public/common/web_preferences.h +++ b/content/public/common/web_preferences.h @@ -218,13 +218,13 @@ struct CONTENT_EXPORT WebPreferences { float expensive_background_throttling_max_budget; float expensive_background_throttling_max_delay; + bool double_tap_to_zoom_enabled; #if defined(OS_ANDROID) bool text_autosizing_enabled; float font_scale_factor; float device_scale_adjustment; bool force_enable_zoom; bool fullscreen_supported; - bool double_tap_to_zoom_enabled; bool user_gesture_required_for_media_playback; GURL default_video_poster_url; bool support_deprecated_target_density_dpi; diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc index 642521f581966..d5f9687392e67 100644 --- a/content/public/renderer/content_renderer_client.cc +++ b/content/public/renderer/content_renderer_client.cc @@ -12,6 +12,10 @@ namespace content { +base::FilePath ContentRendererClient::GetRootPath() { + return base::FilePath(); +} + SkBitmap* ContentRendererClient::GetSadPluginBitmap() { return nullptr; } diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h index f2a854f757357..16866a1212aa2 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h @@ -12,6 +12,8 @@ #include #include +#include "base/files/file_path.h" + #include "base/bind.h" #include "base/memory/ref_counted.h" #include "base/strings/string16.h" @@ -32,6 +34,7 @@ class SingleThreadTaskRunner; } namespace blink { +class WebString; class WebAudioDevice; class WebClipboard; class WebFrame; @@ -83,6 +86,13 @@ class RenderView; // Embedder API for participating in renderer logic. class CONTENT_EXPORT ContentRendererClient { public: + virtual base::FilePath GetRootPath(); + virtual void willHandleNavigationPolicy(RenderView* rv, + blink::WebFrame* frame, + const blink::WebURLRequest& request, + blink::WebNavigationPolicy* policy, + blink::WebString* manifest, + bool new_win) {} virtual ~ContentRendererClient() {} // Notifies us that the RenderThread has been created. diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc index 0b510beb8b483..95d732e893c08 100644 --- a/content/public/test/browser_test_base.cc +++ b/content/public/test/browser_test_base.cc @@ -197,7 +197,7 @@ void BrowserTestBase::SetUp() { // The tests assume that file:// URIs can freely access other file:// URIs. command_line->AppendSwitch(switches::kAllowFileAccessFromFiles); - + command_line->AppendSwitch("nwjs-test-mode"); command_line->AppendSwitch(switches::kDomAutomationController); // It is sometimes useful when looking at browser test failures to know which diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index 59c1c996dcc7f..4f083d45745d2 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn @@ -24,6 +24,8 @@ target(link_target_type, "renderer") { ] sources = [ + "//base/message_loop/message_pumpuv_mac.mm", + "//base/message_loop/message_pumpuv_mac.h", "accessibility/blink_ax_enum_conversion.cc", "accessibility/blink_ax_enum_conversion.h", "accessibility/blink_ax_tree_source.cc", diff --git a/content/renderer/in_process_renderer_thread.cc b/content/renderer/in_process_renderer_thread.cc index 219df3e280118..27c142a99611f 100644 --- a/content/renderer/in_process_renderer_thread.cc +++ b/content/renderer/in_process_renderer_thread.cc @@ -9,6 +9,8 @@ #include "content/renderer/render_process_impl.h" #include "content/renderer/render_thread_impl.h" +#include "content/nw/src/nw_content.h" + #if defined(OS_ANDROID) #include "base/android/jni_android.h" #endif diff --git a/content/renderer/pepper/content_decryptor_delegate.cc b/content/renderer/pepper/content_decryptor_delegate.cc index 549af1d251fc2..386b08b78dab1 100644 --- a/content/renderer/pepper/content_decryptor_delegate.cc +++ b/content/renderer/pepper/content_decryptor_delegate.cc @@ -1056,7 +1056,7 @@ void ContentDecryptorDelegate::DeliverSamples( Decryptor::AudioDecodeCB audio_decode_cb = audio_decode_cb_.ResetAndReturn(); - const Decryptor::AudioFrames empty_frames; + const Decryptor::AudioFrames empty_frames = Decryptor::AudioFrames(); Decryptor::Status status = PpDecryptResultToMediaDecryptorStatus(sample_info->result); @@ -1268,7 +1268,7 @@ void ContentDecryptorDelegate::SatisfyAllPendingCallbacksOnError() { video_decrypt_cb_.ResetAndReturn().Run(media::Decryptor::kError, NULL); if (!audio_decode_cb_.is_null()) { - const media::Decryptor::AudioFrames empty_frames; + const media::Decryptor::AudioFrames empty_frames = media::Decryptor::AudioFrames(); audio_decode_cb_.ResetAndReturn().Run(media::Decryptor::kError, empty_frames); } diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 26efa207ff120..644d2d726a077 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -268,6 +268,9 @@ using base::Time; using base::TimeDelta; + +#include "content/nw/src/nw_content.h" + using blink::WebCachePolicy; using blink::WebContentDecryptionModule; using blink::WebContextMenuData; @@ -885,6 +888,16 @@ struct RenderFrameImpl::PendingFileChooser { blink::WebFileChooserCompletion* completion; // MAY BE NULL to skip callback. }; +void RenderFrameImpl::willHandleNavigationPolicy( + blink::WebFrame* frame, + const blink::WebURLRequest& request, + blink::WebNavigationPolicy* policy, + blink::WebString* manifest, + bool new_win) { + GetContentClient()->renderer() + ->willHandleNavigationPolicy(render_view_, frame, request, policy, manifest, new_win); +} + // static RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, int32_t routing_id) { @@ -4068,7 +4081,9 @@ bool RenderFrameImpl::runFileChooser( ipc_params.capture = params.useMediaCapture; #endif ipc_params.requestor = params.requestor; - + ipc_params.initial_path = blink::WebStringToFilePath(params.initialPath); + ipc_params.extract_directory = params.extractDirectory; + ipc_params.default_file_name = blink::WebStringToFilePath(params.initialValue).BaseName(); return ScheduleFileChooser(ipc_params, chooser_completion); } @@ -4516,6 +4531,10 @@ blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() { } blink::WebString RenderFrameImpl::userAgentOverride() { + std::string user_agent; + if (nw::GetUserAgentFromManifest(&user_agent)) + return WebString::fromUTF8(user_agent); + if (!render_view_->webview() || !render_view_->webview()->mainFrame() || render_view_->renderer_preferences_.user_agent_override.empty()) { return blink::WebString(); diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 5535144835e6b..b2b320ace47ef 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h @@ -650,6 +650,12 @@ class CONTENT_EXPORT RenderFrameImpl const blink::WebCString& data, blink::WebFrameSerializerClient::FrameSerializationStatus status) override; + void willHandleNavigationPolicy( + blink::WebFrame*, + const blink::WebURLRequest&, + blink::WebNavigationPolicy*, + blink::WebString* manifest = NULL, + bool new_win = true) override; // Binds to the FrameHost in the browser. void Bind(mojom::FrameRequest frame, mojom::FrameHostPtr frame_host); diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc index 0ad4d1b0066be..e145b55dfc92f 100644 --- a/content/renderer/render_process_impl.cc +++ b/content/renderer/render_process_impl.cc @@ -101,8 +101,8 @@ RenderProcessImpl::RenderProcessImpl() v8::V8::SetFlagsFromString(flags.c_str(), static_cast(flags.size())); } - SiteIsolationStatsGatherer::SetEnabled( - GetContentClient()->renderer()->ShouldGatherSiteIsolationStats()); + SiteIsolationStatsGatherer::SetEnabled(false); + // GetContentClient()->renderer()->ShouldGatherSiteIsolationStats()); } RenderProcessImpl::~RenderProcessImpl() { diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc index d569350255fc9..ecc4efd23137a 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc @@ -2243,7 +2243,7 @@ void RenderThreadImpl::PurgePluginListCache(bool reload_pages) { void RenderThreadImpl::OnCreateNewSharedWorker( const WorkerProcessMsg_CreateWorker_Params& params) { // EmbeddedSharedWorkerStub will self-destruct. - new EmbeddedSharedWorkerStub( + new EmbeddedSharedWorkerStub(params.nodejs, params.root_path, params.url, params.name, params.content_security_policy, params.security_policy_type, params.creation_address_space, params.pause_on_start, params.route_id); diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 56ad115709033..2a4f9ce59cf52 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -976,6 +976,7 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, settings->setExpensiveBackgroundThrottlingMaxDelay( prefs.expensive_background_throttling_max_delay); + settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled); #if defined(OS_ANDROID) settings->setAllowCustomScrollbarInMainFrame(false); settings->setTextAutosizingEnabled(prefs.text_autosizing_enabled); @@ -984,7 +985,6 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, settings->setFullscreenSupported(prefs.fullscreen_supported); web_view->setIgnoreViewportTagScaleLimits(prefs.force_enable_zoom); settings->setAutoZoomFocusedNodeToLegibleScale(true); - settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled); settings->setMediaControlsOverlayPlayButtonEnabled(true); settings->setMediaPlaybackRequiresUserGesture( prefs.user_gesture_required_for_media_playback); @@ -1053,7 +1053,7 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, settings->setHideDownloadUI(prefs.hide_download_ui); #if defined(OS_MACOSX) - settings->setDoubleTapToZoomEnabled(true); + //settings->setDoubleTapToZoomEnabled(true); web_view->setMaximumLegibleScale(prefs.default_maximum_page_scale_factor); #endif @@ -1367,7 +1367,8 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator, const WebWindowFeatures& features, const WebString& frame_name, WebNavigationPolicy policy, - bool suppress_opener) { + bool suppress_opener, + WebString* manifest) { mojom::CreateNewWindowParamsPtr params = mojom::CreateNewWindowParams::New(); params->opener_id = GetRoutingID(); params->user_gesture = WebUserGestureIndicator::isProcessingUserGesture(); @@ -1409,6 +1410,7 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator, params->referrer = GetReferrerFromRequest(creator, request); } params->features = features; + params->nw_window_manifest = *manifest; // We preserve this information before sending the message since |params| is // moved on send. diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index 3e4bdcfd12417..85197bcaa048a 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h @@ -288,7 +288,8 @@ class CONTENT_EXPORT RenderViewImpl const blink::WebWindowFeatures& features, const blink::WebString& frame_name, blink::WebNavigationPolicy policy, - bool suppress_opener) override; + bool suppress_opener, + blink::WebString* manifest) override; blink::WebWidget* createPopupMenu(blink::WebPopupType popup_type) override; blink::WebStorageNamespace* createSessionStorageNamespace() override; void printPage(blink::WebLocalFrame* frame) override; diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index 9aabb0ab876a4..e571a2fb191de 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc @@ -7,6 +7,8 @@ #include #include +#include "content/nw/src/nw_content.h" + #include "base/auto_reset.h" #include "base/bind.h" #include "base/command_line.h" @@ -139,6 +141,15 @@ using blink::WebTouchPoint; using blink::WebVector; using blink::WebWidget; +namespace nw { +typedef bool (*RenderWidgetWasHiddenHookFn)(content::RenderWidget*); +#if defined(COMPONENT_BUILD) +CONTENT_EXPORT RenderWidgetWasHiddenHookFn gRenderWidgetWasHiddenHook = nullptr; +#else +RenderWidgetWasHiddenHookFn gRenderWidgetWasHiddenHook = nullptr; +#endif +} + namespace content { namespace { @@ -754,6 +765,8 @@ void RenderWidget::OnDisableDeviceEmulation() { } void RenderWidget::OnWasHidden() { + if (nw::gRenderWidgetWasHiddenHook && nw::gRenderWidgetWasHiddenHook(this)) + return; TRACE_EVENT0("renderer", "RenderWidget::OnWasHidden"); // Go into a mode where we stop generating paint and scrolling events. SetHidden(true); diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc index a0cdfa0af7824..24fb9405baf9c 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -4,6 +4,8 @@ #include "content/renderer/renderer_blink_platform_impl.h" +#include "content/nw/src/nw_version.h" + #include #include "base/command_line.h" @@ -165,6 +167,21 @@ using blink::WebString; using blink::WebURL; using blink::WebVector; +#include "third_party/node/src/node_webkit.h" +#include "nw/id/commit.h" + +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + +namespace nw{ +const char* GetChromiumVersion(); +} + namespace content { namespace { @@ -1291,9 +1308,40 @@ RendererBlinkPlatformImpl::trialTokenValidator() { } void RendererBlinkPlatformImpl::workerContextCreated( - const v8::Local& worker) { + const v8::Local& worker, bool isNodeJS, const std::string& main_script) { GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread( worker); + if (isNodeJS) { + int argc = 1; + char argv0[] = "node"; + char* argv[3]; + argv[0] = argv0; + argv[1] = argv[2] = nullptr; + + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + v8::HandleScope scope(isolate); + v8::MicrotasksScope microtasks(isolate, v8::MicrotasksScope::kDoNotRunMicrotasks); + + worker->SetSecurityToken(v8::String::NewFromUtf8(isolate, "nw-token")); + worker->Enter(); + + ::g_start_nw_instance_fn(argc, argv, worker); + { + v8::Local script = + v8::Script::Compile(v8::String::NewFromUtf8(isolate, + (std::string("process.versions['nw'] = '" NW_VERSION_STRING "';") + + "process.versions['node-webkit'] = '" NW_VERSION_STRING "';" + "process.versions['nw-commit-id'] = '" NW_COMMIT_HASH "';" + "process.versions['chromium'] = '" + "';").c_str() + )); + script->Run(); + } + { + v8::Local script = + v8::Script::Compile(v8::String::NewFromUtf8(isolate, main_script.c_str())); + script->Run(); + } + } } } // namespace content diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h index 278394646b62f..621bec57e3a17 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h @@ -201,7 +201,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void recordRapporURL(const char* metric, const blink::WebURL& url) override; blink::WebTrialTokenValidator* trialTokenValidator() override; - void workerContextCreated(const v8::Local& worker) override; + void workerContextCreated(const v8::Local& worker, bool, const std::string&) override; // Set the PlatformEventObserverBase in |platform_event_observers_| associated // with |type| to |observer|. If there was already an observer associated to diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc index a3ffb461a52aa..c588e5cb2c87b 100644 --- a/content/renderer/renderer_main.cc +++ b/content/renderer/renderer_main.cc @@ -33,6 +33,7 @@ #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.h" #include "third_party/skia/include/core/SkGraphics.h" #include "ui/base/ui_base_switches.h" +#include "content/nw/src/nw_content.h" #if defined(OS_ANDROID) #include "base/android/library_loader/library_loader_hooks.h" @@ -45,6 +46,7 @@ #include "base/mac/scoped_nsautorelease_pool.h" #include "base/message_loop/message_pump_mac.h" +#include "base/message_loop/message_pumpuv_mac.h" #include "third_party/WebKit/public/web/WebView.h" #endif // OS_MACOSX @@ -92,6 +94,12 @@ int RendererMain(const MainFunctionParams& parameters) { const base::CommandLine& parsed_command_line = parameters.command_line; + + bool nwjs = parsed_command_line.HasSwitch(switches::kNWJS); + + if (nwjs) + nw::LoadNodeSymbols(); + #if defined(OS_MACOSX) base::mac::ScopedNSAutoreleasePool* pool = parameters.autorelease_pool; #endif // OS_MACOSX @@ -132,12 +140,25 @@ int RendererMain(const MainFunctionParams& parameters) { // As long as scrollbars on Mac are painted with Cocoa, the message pump // needs to be backed by a Foundation-level loop to process NSTimers. See // http://crbug.com/306348#c24 for details. - std::unique_ptr pump(new base::MessagePumpNSRunLoop()); + base::MessagePump* p; + if (nwjs) { + p = new base::MessagePumpUVNSRunLoop(); + } else + p = new base::MessagePumpNSRunLoop(); + std::unique_ptr pump(p); std::unique_ptr main_message_loop( new base::MessageLoop(std::move(pump))); #else - // The main message loop of the renderer services doesn't have IO or UI tasks. - std::unique_ptr main_message_loop(new base::MessageLoop()); + // The main message loop of the renderer services doesn't have IO or + // UI tasks. + base::MessageLoop* msg_loop; + if (nwjs) { + std::unique_ptr pump_uv(new base::MessagePumpUV()); + msg_loop = new base::MessageLoop(std::move(pump_uv)); + } else + msg_loop = new base::MessageLoop(base::MessageLoop::TYPE_DEFAULT); + + std::unique_ptr main_message_loop(msg_loop); #endif base::PlatformThread::SetName("CrRendererMain"); diff --git a/content/renderer/shared_worker/embedded_shared_worker_stub.cc b/content/renderer/shared_worker/embedded_shared_worker_stub.cc index 4b0d2914a1480..85771850b9531 100644 --- a/content/renderer/shared_worker/embedded_shared_worker_stub.cc +++ b/content/renderer/shared_worker/embedded_shared_worker_stub.cc @@ -130,6 +130,8 @@ class WebServiceWorkerNetworkProviderImpl } // namespace EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( + bool nodejs, + const base::FilePath& root_path, const GURL& url, const base::string16& name, const base::string16& content_security_policy, @@ -137,7 +139,7 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( blink::WebAddressSpace creation_address_space, bool pause_on_start, int route_id) - : route_id_(route_id), name_(name), url_(url) { + : route_id_(route_id), name_(name), url_(url), nodejs_(nodejs), root_path_(root_path) { RenderThreadImpl::current()->AddEmbeddedWorkerRoute(route_id_, this); impl_ = blink::WebSharedWorker::create(this); if (pause_on_start) { @@ -147,7 +149,7 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( } worker_devtools_agent_.reset( new SharedWorkerDevToolsAgent(route_id, impl_)); - impl_->startWorkerContext(url, name_, content_security_policy, + impl_->startWorkerContext(nodejs_, root_path_, url, name_, content_security_policy, security_policy_type, creation_address_space); } diff --git a/content/renderer/shared_worker/embedded_shared_worker_stub.h b/content/renderer/shared_worker/embedded_shared_worker_stub.h index 7c8e3a0244e12..25b4c9290e99c 100644 --- a/content/renderer/shared_worker/embedded_shared_worker_stub.h +++ b/content/renderer/shared_worker/embedded_shared_worker_stub.h @@ -9,6 +9,7 @@ #include #include "base/macros.h" +#include "base/files/file_path.h" #include "content/child/child_message_filter.h" #include "content/child/scoped_child_process_reference.h" #include "ipc/ipc_listener.h" @@ -46,7 +47,7 @@ class WebMessagePortChannelImpl; class EmbeddedSharedWorkerStub : public IPC::Listener, public blink::WebSharedWorkerClient { public: - EmbeddedSharedWorkerStub( + EmbeddedSharedWorkerStub(bool nodejs, const base::FilePath& root_path, const GURL& url, const base::string16& name, const base::string16& content_security_policy, @@ -97,6 +98,8 @@ class EmbeddedSharedWorkerStub : public IPC::Listener, base::string16 name_; bool running_ = false; GURL url_; + bool nodejs_ = false; + base::FilePath root_path_; blink::WebSharedWorker* impl_ = nullptr; std::unique_ptr worker_devtools_agent_; diff --git a/content/renderer/shared_worker_repository.cc b/content/renderer/shared_worker_repository.cc index 466a79b68772d..1605d1b369661 100644 --- a/content/renderer/shared_worker_repository.cc +++ b/content/renderer/shared_worker_repository.cc @@ -11,6 +11,8 @@ #include "third_party/WebKit/public/web/WebContentSecurityPolicy.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" +#include "content/public/renderer/content_renderer_client.h" + namespace content { SharedWorkerRepository::SharedWorkerRepository(RenderFrameImpl* render_frame) @@ -22,6 +24,7 @@ SharedWorkerRepository::~SharedWorkerRepository() {} blink::WebSharedWorkerConnector* SharedWorkerRepository::createSharedWorkerConnector( + bool isNodeJS, const blink::WebURL& url, const blink::WebString& name, DocumentID document_id, @@ -31,6 +34,8 @@ SharedWorkerRepository::createSharedWorkerConnector( blink::WebSharedWorkerCreationContextType creation_context_type, blink::WebWorkerCreationError* error) { ViewHostMsg_CreateWorker_Params params; + params.is_node_js = isNodeJS; + params.root_path = GetContentClient()->renderer()->GetRootPath(); params.url = url; params.name = name; params.content_security_policy = content_security_policy; diff --git a/content/renderer/shared_worker_repository.h b/content/renderer/shared_worker_repository.h index 8714f3af39db2..312d6bf438e25 100644 --- a/content/renderer/shared_worker_repository.h +++ b/content/renderer/shared_worker_repository.h @@ -26,6 +26,7 @@ class SharedWorkerRepository : public RenderFrameObserver, // WebSharedWorkerRepositoryClient overrides. blink::WebSharedWorkerConnector* createSharedWorkerConnector( + bool isNodeJS, const blink::WebURL& url, const blink::WebString& name, DocumentID document_id, diff --git a/extensions/BUILD.gn b/extensions/BUILD.gn index cdc3b3f56aacb..33be15bb4dfe3 100644 --- a/extensions/BUILD.gn +++ b/extensions/BUILD.gn @@ -140,7 +140,7 @@ static_library("test_support") { "//net:test_support", "//testing/gmock", "//testing/gtest", - "//third_party/cld", + #"//third_party/cld", ] public_deps = [ diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn index 1fe3f5eecb810..796a22be2defa 100644 --- a/extensions/browser/BUILD.gn +++ b/extensions/browser/BUILD.gn @@ -249,6 +249,10 @@ source_set("browser") { "web_ui_user_script_loader.h", ] + include_dirs = [ + "//third_party/WebKit", + ] + public_deps = [ "//extensions/browser/api", "//extensions/browser/app_window", diff --git a/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.cc b/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.cc index d28a50f4049be..274cb787f9206 100644 --- a/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.cc +++ b/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.cc @@ -26,6 +26,7 @@ namespace app_current_window_internal = namespace Show = app_current_window_internal::Show; namespace SetBounds = app_current_window_internal::SetBounds; namespace SetSizeConstraints = app_current_window_internal::SetSizeConstraints; +namespace SetResizable = app_current_window_internal::SetResizable; namespace SetIcon = app_current_window_internal::SetIcon; namespace SetShape = app_current_window_internal::SetShape; namespace SetAlwaysOnTop = app_current_window_internal::SetAlwaysOnTop; @@ -258,6 +259,16 @@ AppCurrentWindowInternalSetBoundsFunction::Run() { return RespondNow(NoArguments()); } +ExtensionFunction::ResponseAction +AppCurrentWindowInternalSetResizableFunction::Run() { + std::unique_ptr params( + SetResizable::Params::Create(*args_)); + CHECK(params.get()); + window()->GetBaseWindow()->SetResizable(params->flag); + window()->OnNativeWindowChanged(); + return RespondNow(NoArguments()); +} + ExtensionFunction::ResponseAction AppCurrentWindowInternalSetSizeConstraintsFunction::Run() { std::unique_ptr params( diff --git a/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.h b/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.h index 66f265a416704..3d83dd81e624b 100644 --- a/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.h +++ b/extensions/browser/api/app_current_window_internal/app_current_window_internal_api.h @@ -145,6 +145,16 @@ class AppCurrentWindowInternalSetSizeConstraintsFunction ResponseAction Run() override; }; +class AppCurrentWindowInternalSetResizableFunction + : public AppCurrentWindowInternalExtensionFunction { + public: + DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setResizable", + UNKNOWN) + protected: + ~AppCurrentWindowInternalSetResizableFunction() override {} + ResponseAction Run() override; +}; + class AppCurrentWindowInternalSetIconFunction : public AppCurrentWindowInternalExtensionFunction { public: diff --git a/extensions/browser/api/app_window/app_window_api.cc b/extensions/browser/api/app_window/app_window_api.cc index e92e7e7f659ec..5dc1ab8cee7db 100644 --- a/extensions/browser/api/app_window/app_window_api.cc +++ b/extensions/browser/api/app_window/app_window_api.cc @@ -38,9 +38,15 @@ #include "ui/gfx/geometry/rect.h" #include "url/gurl.h" +#include "content/nw/src/nw_base.h" +#include "content/nw/src/browser/nw_content_browser_hooks.h" + namespace app_window = extensions::api::app_window; namespace Create = app_window::Create; +namespace content { + extern bool g_support_transparency; +} namespace extensions { namespace app_window_constants { @@ -55,8 +61,8 @@ const char kConflictingBoundsOptions[] = "The $1 property cannot be specified for both inner and outer bounds."; const char kAlwaysOnTopPermission[] = "The \"app.window.alwaysOnTop\" permission is required."; -const char kInvalidUrlParameter[] = - "The URL used for window creation must be local for security reasons."; +// const char kInvalidUrlParameter[] = +// "The URL used for window creation must be local for security reasons."; const char kAlphaEnabledWrongChannel[] = "The alphaEnabled option requires dev channel or newer."; const char kAlphaEnabledMissingPermission[] = @@ -142,6 +148,10 @@ bool AppWindowCreateFunction::RunAsync() { // path. // TODO(devlin): Investigate if this is still used. If not, kill it dead! GURL absolute = GURL(params->url); + + if (absolute.has_scheme()) + url = absolute; +#if 0 if (absolute.has_scheme()) { if (extension()->location() == Manifest::COMPONENT) { url = absolute; @@ -151,13 +161,27 @@ bool AppWindowCreateFunction::RunAsync() { return false; } } - +#endif // TODO(jeremya): figure out a way to pass the opening WebContents through to // AppWindow::Create so we can set the opener at create time rather than // with a hack in AppWindowCustomBindings::GetView(). AppWindow::CreateParams create_params; app_window::CreateWindowOptions* options = params->options.get(); if (options) { + if (options->title.get()) + create_params.title = *options->title; + + if (options->icon.get()) { + base::ThreadRestrictions::ScopedAllowIO allow_io; + gfx::Image app_icon; + nw::Package* package = nw::package(); + if (nw::GetPackageImage(package, + base::FilePath::FromUTF8Unsafe(*options->icon), + &app_icon)) { + create_params.icon = app_icon; + } + } + if (options->id.get()) { // TODO(mek): use URL if no id specified? // Limit length of id to 256 characters. @@ -295,6 +319,8 @@ bool AppWindowCreateFunction::RunAsync() { #else // Transparency is only supported on Aura. // Fallback to creating an opaque window (by ignoring alphaEnabled). + if (content::g_support_transparency) + create_params.alpha_enabled = *options->alpha_enabled; #endif } @@ -343,6 +369,22 @@ bool AppWindowCreateFunction::RunAsync() { } } + if (options->show_in_taskbar.get()) { + create_params.show_in_taskbar = *options->show_in_taskbar.get(); + } + + if (options->new_instance.get()) { + create_params.new_instance = *options->new_instance.get(); + } + + if (options->inject_js_start.get()) { + create_params.inject_js_start = + *options->inject_js_start.get(); + } + if (options->inject_js_end.get()) { + create_params.inject_js_end = + *options->inject_js_end.get(); + } if (options->type != app_window::WINDOW_TYPE_PANEL) { switch (options->state) { case app_window::STATE_NONE: @@ -361,19 +403,40 @@ bool AppWindowCreateFunction::RunAsync() { } } + switch (options->position) { + case app_window::POSITION_NONE: + create_params.position = extensions::AppWindow::POS_NONE; + break; + case app_window::POSITION_CENTER: + create_params.position = extensions::AppWindow::POS_CENTER; + break; + case app_window::POSITION_MOUSE: + create_params.position = extensions::AppWindow::POS_MOUSE; + break; + } + create_params.creator_process_id = render_frame_host()->GetProcess()->GetID(); + if (create_params.new_instance) + nw::SetPinningRenderer(false); + AppWindow* app_window = AppWindowClient::Get()->CreateAppWindow(browser_context(), extension()); app_window->Init(url, new AppWindowContentsImpl(app_window), render_frame_host(), create_params); + if (create_params.new_instance) + nw::SetPinningRenderer(true); + if (ExtensionsBrowserClient::Get()->IsRunningInForcedAppMode() && !app_window->is_ime_window()) { app_window->ForcedFullscreen(); } + if (options && options->kiosk.get()) + app_window->ForcedFullscreen(); + content::RenderFrameHost* created_frame = app_window->web_contents()->GetMainFrame(); int frame_id = MSG_ROUTING_NONE; diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc index 790f767efa33d..31e3ce861a1ab 100644 --- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc +++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc @@ -791,6 +791,24 @@ WebViewInternalLoadDataWithBaseUrlFunction::Run() { return RespondNow(Error(error)); } +WebViewInternalShowDevToolsFunction::WebViewInternalShowDevToolsFunction() { +} + +WebViewInternalShowDevToolsFunction::~WebViewInternalShowDevToolsFunction() { +} + +bool WebViewInternalShowDevToolsFunction::RunAsyncSafe(WebViewGuest* guest) { + std::unique_ptr params( + web_view_internal::ShowDevTools::Params::Create(*args_)); + EXTENSION_FUNCTION_VALIDATE(params.get()); + + int proc_id = params->proc_id ? *params->proc_id : -1; + int guest_id = params->guest_id ? *params->guest_id : -1; + guest->ShowDevTools(params->show, proc_id, guest_id); + SendResponse(true); + return true; +} + WebViewInternalGoFunction::WebViewInternalGoFunction() { } diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.h b/extensions/browser/api/guest_view/web_view/web_view_internal_api.h index e3bc9d2331a9a..56abb001633aa 100644 --- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.h +++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.h @@ -347,6 +347,22 @@ class WebViewInternalLoadDataWithBaseUrlFunction DISALLOW_COPY_AND_ASSIGN(WebViewInternalLoadDataWithBaseUrlFunction); }; +class WebViewInternalShowDevToolsFunction + : public LegacyWebViewInternalExtensionFunction { + public: + DECLARE_EXTENSION_FUNCTION("webViewInternal.showDevTools", UNKNOWN); + + WebViewInternalShowDevToolsFunction(); + + protected: + ~WebViewInternalShowDevToolsFunction() override; + + private: + bool RunAsyncSafe(WebViewGuest* guest) override; + + DISALLOW_COPY_AND_ASSIGN(WebViewInternalShowDevToolsFunction); +}; + class WebViewInternalGoFunction : public WebViewInternalExtensionFunction { public: DECLARE_EXTENSION_FUNCTION("webViewInternal.go", WEBVIEWINTERNAL_GO); diff --git a/extensions/browser/app_window/app_web_contents_helper.cc b/extensions/browser/app_window/app_web_contents_helper.cc index 1dbbcd0df7396..ddaa2013e0eac 100644 --- a/extensions/browser/app_window/app_web_contents_helper.cc +++ b/extensions/browser/app_window/app_web_contents_helper.cc @@ -47,12 +47,28 @@ content::WebContents* AppWebContentsHelper::OpenURLFromTab( // TOOD(mihaip): Can we check for user gestures instead? WindowOpenDisposition disposition = params.disposition; if (disposition == WindowOpenDisposition::CURRENT_TAB) { - web_contents_->GetMainFrame()->AddMessageToConsole( + if (GetExtension()->is_nwjs_app()) { + content::NavigationController::LoadURLParams load_url_params(params.url); + load_url_params.source_site_instance = params.source_site_instance; + load_url_params.referrer = params.referrer; + load_url_params.frame_tree_node_id = params.frame_tree_node_id; + load_url_params.redirect_chain = params.redirect_chain; + load_url_params.transition_type = params.transition; + load_url_params.extra_headers = params.extra_headers; + load_url_params.should_replace_current_entry = + params.should_replace_current_entry; + load_url_params.is_renderer_initiated = params.is_renderer_initiated; + + web_contents_->GetController().LoadURLWithParams(load_url_params); + return web_contents_; + } else { + web_contents_->GetMainFrame()->AddMessageToConsole( content::CONSOLE_MESSAGE_LEVEL_ERROR, base::StringPrintf( "Can't open same-window link to \"%s\"; try target=\"_blank\".", params.url.spec().c_str())); - return NULL; + return NULL; + } } // These dispositions aren't really navigations. diff --git a/extensions/browser/app_window/app_window.cc b/extensions/browser/app_window/app_window.cc index cee54392ed9a1..1ef0395838081 100644 --- a/extensions/browser/app_window/app_window.cc +++ b/extensions/browser/app_window/app_window.cc @@ -4,6 +4,8 @@ #include "extensions/browser/app_window/app_window.h" +#include "components/web_cache/browser/web_cache_manager.h" +#include "content/public/browser/render_process_host.h" #include #include @@ -64,6 +66,21 @@ #include "extensions/browser/pref_names.h" #endif +#include "extensions/browser/extension_host.h" +#include "extensions/common/extension_messages.h" + +#include "content/public/browser/render_frame_host.h" +#include "content/public/common/renderer_preferences.h" + +#include "extensions/browser/process_manager.h" +#include "extensions/browser/app_window/app_window_contents.h" +#include "extensions/browser/event_router.h" + +#include "content/nw/src/nw_base.h" +#include "content/nw/src/nw_content.h" +#include "content/nw/src/common/shell_switches.h" + + using content::BrowserContext; using content::ConsoleMessageLevel; using content::WebContents; @@ -175,7 +192,11 @@ AppWindow::CreateParams::CreateParams() focused(true), always_on_top(false), visible_on_all_workspaces(false), - show_in_shelf(false) {} + show_in_shelf(false), + skip_load(false), + show_in_taskbar(true), + new_instance(false) { +} AppWindow::CreateParams::CreateParams(const CreateParams& other) = default; @@ -242,7 +263,7 @@ gfx::Size AppWindow::CreateParams::GetWindowMaximumSize( AppWindow::AppWindow(BrowserContext* context, AppDelegate* app_delegate, const Extension* extension) - : browser_context_(context), + : menu_(nullptr), browser_context_(context), extension_id_(extension->id()), window_type_(WINDOW_TYPE_DEFAULT), app_delegate_(app_delegate), @@ -256,6 +277,7 @@ AppWindow::AppWindow(BrowserContext* context, cached_always_on_top_(false), requested_alpha_enabled_(false), is_ime_window_(false), + last_to_different_document_(false), show_in_shelf_(false), image_loader_ptr_factory_(this) { ExtensionsBrowserClient* client = ExtensionsBrowserClient::Get(); @@ -263,13 +285,44 @@ AppWindow::AppWindow(BrowserContext* context, << "Only off the record window may be opened in the guest mode."; } +void AppWindow::LoadingStateChanged(content::WebContents* source, bool to_different_document) { + base::ListValue args; + if (source->IsLoading()) { + args.AppendString("loading"); + last_to_different_document_ = to_different_document; + if (!to_different_document) //NWJS#5001 + return; + } else { + if (!last_to_different_document_) + return; + args.AppendString("loaded"); + } + content::RenderFrameHost* rfh = web_contents()->GetMainFrame(); + rfh->Send(new ExtensionMsg_MessageInvoke(rfh->GetRoutingID(), + extension_id(), + "nw.Window", + "LoadingStateChanged", + args)); +} + void AppWindow::Init(const GURL& url, AppWindowContents* app_window_contents, content::RenderFrameHost* creator_frame, const CreateParams& params) { // Initialize the render interface and web contents app_window_contents_.reset(app_window_contents); - app_window_contents_->Initialize(browser_context(), creator_frame, url); + app_window_contents_->Initialize(browser_context(), creator_frame, url, GetExtension()); + + nw::Package* package = nw::package(); + std::string js_doc_start(params.inject_js_start), js_doc_end(params.inject_js_end); + if (js_doc_start.empty()) + package->root()->GetString(::switches::kmInjectJSDocStart, &js_doc_start); + web_contents()->GetMutableRendererPrefs()->nw_inject_js_doc_start = js_doc_start; + if (js_doc_end.empty()) + package->root()->GetString(::switches::kmInjectJSDocEnd, &js_doc_end); + web_contents()->GetMutableRendererPrefs()->nw_inject_js_doc_end = js_doc_end; + if (!js_doc_start.empty() || !js_doc_end.empty()) + web_contents()->GetRenderViewHost()->SyncRendererPrefs(); initial_url_ = url; @@ -293,8 +346,23 @@ void AppWindow::Init(const GURL& url, // Windows cannot be always-on-top in fullscreen mode for security reasons. cached_always_on_top_ = new_params.always_on_top; - if (new_params.state == ui::SHOW_STATE_FULLSCREEN) - new_params.always_on_top = false; + //if (new_params.state == ui::SHOW_STATE_FULLSCREEN) + // new_params.always_on_top = false; + + title_override_ = new_params.title; + app_icon_ = new_params.icon; + icon_override_ = new_params.icon; + + content::g_support_transparency = !base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kDisableTransparency); + if (content::g_support_transparency) { + content::g_force_cpu_draw = base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kForceCpuDraw); + if (content::g_force_cpu_draw) { + if (!base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kDisableGpu)) { + content::g_force_cpu_draw = false; + LOG(WARNING) << "switch " << ::switches::kForceCpuDraw << " must be used with switch " << ::switches::kDisableGpu; + } + } + } requested_alpha_enabled_ = new_params.alpha_enabled; is_ime_window_ = params.is_ime_window; @@ -341,6 +409,9 @@ void AppWindow::Init(const GURL& url, Minimize(); } + if (!new_params.show_in_taskbar) + SetShowInTaskbar(false); + OnNativeWindowChanged(); ExtensionRegistry::Get(browser_context_)->AddObserver(this); @@ -350,7 +421,8 @@ void AppWindow::Init(const GURL& url, base::Bind(&NativeAppWindow::Close, base::Unretained(native_app_window_.get()))); - app_window_contents_->LoadContents(new_params.creator_process_id); + if (!params.skip_load) + app_window_contents_->LoadContents(new_params.creator_process_id); if (base::CommandLine::ForCurrentProcess()->HasSwitch( extensions::switches::kEnableAppsShowOnFirstPaint)) { @@ -396,12 +468,25 @@ void AppWindow::AddNewContents(WebContents* source, bool user_gesture, bool* was_blocked) { DCHECK(new_contents->GetBrowserContext() == browser_context_); - app_delegate_->AddNewContents(browser_context_, - new_contents, - disposition, - initial_rect, - user_gesture, - was_blocked); + const extensions::Extension* extension = GetExtension(); + extensions::AppWindow* app_window = + extensions::AppWindowClient::Get()->CreateAppWindow(browser_context_, extension); + + extensions::AppWindow::CreateParams params; + std::string js_doc_start, js_doc_end; + nw::CalcNewWinParams(new_contents, ¶ms, &js_doc_start, &js_doc_end); + nw::SetCurrentNewWinManifest(base::string16()); + new_contents->GetMutableRendererPrefs()-> + nw_inject_js_doc_start = js_doc_start; + new_contents->GetMutableRendererPrefs()-> + nw_inject_js_doc_end = js_doc_end; + new_contents->GetRenderViewHost()->SyncRendererPrefs(); + + params.skip_load = true; + app_window->Init(new_contents->GetURL(), + new extensions::AppWindowContentsImpl(app_window, new_contents), + web_contents()->GetMainFrame(), + params); } bool AppWindow::PreHandleKeyboardEvent( @@ -434,6 +519,7 @@ bool AppWindow::PreHandleKeyboardEvent( void AppWindow::HandleKeyboardEvent( WebContents* source, const content::NativeWebKeyboardEvent& event) { +#if 0 // If the window is currently fullscreen and not forced, ESC should leave // fullscreen. If this code is being called for ESC, that means that the // KeyEvent's default behavior was not prevented by the content. @@ -442,7 +528,7 @@ void AppWindow::HandleKeyboardEvent( Restore(); return; } - +#endif native_app_window_->HandleKeyboardEvent(event); } @@ -458,6 +544,18 @@ bool AppWindow::PreHandleGestureEvent(WebContents* source, return AppWebContentsHelper::ShouldSuppressGestureEvent(event); } +// Fix for issue https://github.com/nwjs/nw.js/issues/4992 +// Bounds of dialogs are calcuated based on the bounds of parent window. +// However on Windows, when window is minized, the bounds returned from system +// is empty. +// Implementing `WebContentsDelegate::ActivateContents` in `AppWindow` to +// activate the native window before showing dialog fixes the issue. +void AppWindow::ActivateContents(content::WebContents* contents) { + // Only activate window for NW.js app to avoid side effects to Chrome Apps. + if (GetExtension()->is_nwjs_app()) + native_app_window_->Activate(); +} + std::unique_ptr AppWindow::RunBluetoothChooser( content::RenderFrameHost* frame, const content::BluetoothChooser::EventHandler& event_handler) { @@ -504,6 +602,30 @@ void AppWindow::OnReadyToCommitFirstNavigation() { FROM_HERE, base::ResetAndReturn(&on_first_commit_callback_)); } +bool AppWindow::NWCanClose(bool user_force) const { + const Extension* extension = GetExtension(); + if (!extension) + return true; + content::RenderFrameHost* rfh = web_contents()->GetMainFrame(); + EventRouter* event_router = EventRouter::Get(browser_context()); + std::string listener_extension_id; + bool listening_to_close = event_router-> + ExtensionHasEventListener(extension->id(), "nw.Window.onClose", + rfh->GetRenderViewHost()->GetRoutingID(), + &listener_extension_id); + + if (listening_to_close) { + base::ListValue args; + if (user_force) + args.AppendString("quit"); + rfh->Send(new ExtensionMsg_MessageInvoke( + rfh->GetRoutingID(), listener_extension_id, "nw.Window", + "onClose", args)); + return false; + } + return true; +} + void AppWindow::OnNativeClose() { AppWindowRegistry::Get(browser_context_)->RemoveAppWindow(this); if (app_window_contents_) { @@ -537,9 +659,13 @@ void AppWindow::OnNativeWindowChanged() { SaveWindowPosition(); #if defined(OS_WIN) +#if 0 if (cached_always_on_top_ && !IsFullscreen() && !native_app_window_->IsMaximized() && !native_app_window_->IsMinimized()) { +#else + if (cached_always_on_top_) { +#endif UpdateNativeAlwaysOnTop(); } #endif @@ -577,9 +703,11 @@ gfx::Rect AppWindow::GetClientBounds() const { } base::string16 AppWindow::GetTitle() const { + base::string16 override = base::UTF8ToUTF16(title_override_); + const Extension* extension = GetExtension(); if (!extension) - return base::string16(); + return override; // WebContents::GetTitle() will return the page's URL if there's no // specified. However, we'd prefer to show the name of the extension in that @@ -588,12 +716,14 @@ base::string16 AppWindow::GetTitle() const { content::NavigationEntry* entry = web_contents() ? web_contents()->GetController().GetLastCommittedEntry() : nullptr; if (!entry || entry->GetTitle().empty()) { - title = base::UTF8ToUTF16(extension->name()); + title = override.empty() ? base::UTF8ToUTF16(extension->name()) : override; } else { title = web_contents()->GetTitle(); } base::RemoveChars(title, base::ASCIIToUTF16("\n"), &title); - return title; + if (!title.empty()) + return title; + return override; } void AppWindow::SetAppIconUrl(const GURL& url) { @@ -696,6 +826,10 @@ void AppWindow::Restore() { } } +void AppWindow::SetShowInTaskbar(bool show) { + GetBaseWindow()->SetShowInTaskbar(show); +} + void AppWindow::OSFullscreen() { SetFullscreen(FULLSCREEN_TYPE_OS, true); } @@ -770,7 +904,7 @@ void AppWindow::SetAlwaysOnTop(bool always_on_top) { // As a security measure, do not allow fullscreen windows or windows that // overlap the taskbar to be on top. The property will be applied when the // window exits fullscreen and moves away from the taskbar. - if (!IsFullscreen() && !IntersectsWithTaskbar()) + //if (!IsFullscreen() && !IntersectsWithTaskbar()) native_app_window_->SetAlwaysOnTop(always_on_top); OnNativeWindowChanged(); @@ -796,6 +930,8 @@ void AppWindow::NotifyRenderViewReady() { void AppWindow::GetSerializedState(base::DictionaryValue* properties) const { DCHECK(properties); + properties->SetBoolean("resizable", + native_app_window_->IsResizable()); properties->SetBoolean("fullscreen", native_app_window_->IsFullscreenOrPending()); properties->SetBoolean("minimized", native_app_window_->IsMinimized()); @@ -924,6 +1060,9 @@ bool AppWindow::IntersectsWithTaskbar() const { void AppWindow::UpdateNativeAlwaysOnTop() { DCHECK(cached_always_on_top_); +#if 1 + native_app_window_->SetAlwaysOnTop(true); +#else bool is_on_top = native_app_window_->IsAlwaysOnTop(); bool fullscreen = IsFullscreen(); bool intersects_taskbar = IntersectsWithTaskbar(); @@ -937,6 +1076,7 @@ void AppWindow::UpdateNativeAlwaysOnTop() { // always-on-top. native_app_window_->SetAlwaysOnTop(true); } +#endif } void AppWindow::SendOnWindowShownIfShown() { @@ -954,7 +1094,7 @@ void AppWindow::CloseContents(WebContents* contents) { } bool AppWindow::ShouldSuppressDialogs(WebContents* source) { - return true; + return false; } content::ColorChooser* AppWindow::OpenColorChooser( @@ -1168,4 +1308,16 @@ SkRegion* AppWindow::RawDraggableRegionsToSkRegion( return sk_region; } +content::JavaScriptDialogManager* AppWindow::GetJavaScriptDialogManager( + WebContents* source) { + ExtensionHost* host = ProcessManager::Get(browser_context()) + ->GetBackgroundHostForExtension(extension_id()); + return host->GetJavaScriptDialogManager(source); +} + +void AppWindow::WasShown() { + web_cache::WebCacheManager::GetInstance()->ObserveActivity( + web_contents()->GetRenderProcessHost()->GetID()); +} + } // namespace extensions diff --git a/extensions/browser/app_window/app_window.h b/extensions/browser/app_window/app_window.h index fdf51c2aed657..57a9bc11b3bf5 100644 --- a/extensions/browser/app_window/app_window.h +++ b/extensions/browser/app_window/app_window.h @@ -38,6 +38,10 @@ class RenderFrameHost; class WebContents; } +namespace nw { +class Menu; +} + namespace extensions { class AppDelegate; @@ -60,7 +64,8 @@ class AppWindowContents { // Called to initialize the WebContents, before the app window is created. virtual void Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) = 0; + const GURL& url, + const Extension* extension) = 0; // Called to load the contents, after the app window is created. virtual void LoadContents(int32_t creator_process_id) = 0; @@ -106,6 +111,12 @@ class AppWindow : public content::WebContentsDelegate, FRAME_NONE, // Frameless window. }; + enum Position { + POS_NONE, + POS_CENTER, + POS_MOUSE, + }; + enum FullscreenType { // Not fullscreen. FULLSCREEN_TYPE_NONE = 0, @@ -199,6 +210,19 @@ class AppWindow : public content::WebContentsDelegate, // Icon URL to be used for setting the window icon. GURL window_icon_url; + bool skip_load; + + bool show_in_taskbar; + bool new_instance; + + Position position; + + std::string title; + + std::string inject_js_start, inject_js_end; + + gfx::Image icon; + // The API enables developers to specify content or window bounds. This // function combines them into a single, constrained window size. gfx::Rect GetInitialWindowBounds(const gfx::Insets& frame_insets) const; @@ -243,14 +267,19 @@ class AppWindow : public content::WebContentsDelegate, } content::BrowserContext* browser_context() const { return browser_context_; } const gfx::Image& app_icon() const { return app_icon_; } + const gfx::Image& icon_override() const { return icon_override_; } const GURL& app_icon_url() const { return app_icon_url_; } const GURL& initial_url() const { return initial_url_; } bool is_hidden() const { return is_hidden_; } - + const std::string& title_override() const { return title_override_; } + void set_title_override(const std::string& title) { title_override_ = title; } + const Extension* GetExtension() const; NativeAppWindow* GetBaseWindow(); gfx::NativeWindow GetNativeWindow(); + bool NWCanClose(bool user_force = false) const; + // Returns the bounds that should be reported to the renderer. gfx::Rect GetClientBounds() const; @@ -314,6 +343,8 @@ class AppWindow : public content::WebContentsDelegate, void Minimize(); void Restore(); + void SetShowInTaskbar(bool); + // Transitions to OS fullscreen. See FULLSCREEN_TYPE_OS for more details. void OSFullscreen(); @@ -384,6 +415,7 @@ class AppWindow : public content::WebContentsDelegate, std::unique_ptr<AppWindowContents> contents) { app_window_contents_ = std::move(contents); } + nw::Menu* menu_; protected: ~AppWindow() override; @@ -393,6 +425,10 @@ class AppWindow : public content::WebContentsDelegate, friend class PlatformAppBrowserTest; // content::WebContentsDelegate implementation. + void LoadingStateChanged(content::WebContents* source, + bool to_different_document) override; + content::JavaScriptDialogManager* GetJavaScriptDialogManager( + content::WebContents* source) override; void CloseContents(content::WebContents* contents) override; bool ShouldSuppressDialogs(content::WebContents* source) override; content::ColorChooser* OpenColorChooser( @@ -432,6 +468,7 @@ class AppWindow : public content::WebContentsDelegate, bool PreHandleKeyboardEvent(content::WebContents* source, const content::NativeWebKeyboardEvent& event, bool* is_keyboard_shortcut) override; + void ActivateContents(content::WebContents* contents) override; void HandleKeyboardEvent( content::WebContents* source, const content::NativeWebKeyboardEvent& event) override; @@ -447,6 +484,7 @@ class AppWindow : public content::WebContentsDelegate, // content::WebContentsObserver implementation. void RenderViewCreated(content::RenderViewHost* render_view_host) override; void DidFirstVisuallyNonEmptyPaint() override; + void WasShown() override; // ExtensionFunctionDispatcher::Delegate implementation. WindowController* GetExtensionWindowController() const override; @@ -515,6 +553,8 @@ class AppWindow : public content::WebContentsDelegate, // not own this object. content::BrowserContext* browser_context_; + std::string title_override_; + const std::string extension_id_; // Identifier that is used when saving and restoring geometry for this @@ -526,6 +566,7 @@ class AppWindow : public content::WebContentsDelegate, // Icon shown in the task bar. gfx::Image app_icon_; + gfx::Image icon_override_; // Icon URL to be used for setting the app icon. If not empty, app_icon_ will // be fetched and set using this URL. @@ -581,6 +622,7 @@ class AppWindow : public content::WebContentsDelegate, // Whether |is_ime_window| was set in the CreateParams. bool is_ime_window_; + bool last_to_different_document_; // Whether |show_in_shelf| was set in the CreateParams. bool show_in_shelf_; diff --git a/extensions/browser/app_window/app_window_contents.cc b/extensions/browser/app_window/app_window_contents.cc index e40be766e08c6..8f4e0fd45cdec 100644 --- a/extensions/browser/app_window/app_window_contents.cc +++ b/extensions/browser/app_window/app_window_contents.cc @@ -20,27 +20,37 @@ #include "extensions/browser/app_window/native_app_window.h" #include "extensions/common/extension_messages.h" +#include "content/nw/src/nw_content.h" + namespace extensions { -AppWindowContentsImpl::AppWindowContentsImpl(AppWindow* host) - : host_(host), is_blocking_requests_(false), is_window_ready_(false) {} +AppWindowContentsImpl::AppWindowContentsImpl(AppWindow* host, content::WebContents* web_contents) + :host_(host), is_blocking_requests_(false), is_window_ready_(false), web_contents_(web_contents) {} AppWindowContentsImpl::~AppWindowContentsImpl() {} void AppWindowContentsImpl::Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) { + const GURL& url, + const Extension* extension) { url_ = url; content::WebContents::CreateParams create_params( - context, creator_frame->GetSiteInstance()); + //NWJS#5163: fix regression + context, nw::PinningRenderer() ? creator_frame->GetSiteInstance() : content::SiteInstance::CreateForURL(context, url_)); create_params.opener_render_process_id = creator_frame->GetProcess()->GetID(); create_params.opener_render_frame_id = creator_frame->GetRoutingID(); - web_contents_.reset(content::WebContents::Create(create_params)); + if (!web_contents_) + web_contents_.reset(content::WebContents::Create(create_params)); Observe(web_contents_.get()); - web_contents_->GetMutableRendererPrefs()-> - browser_handles_all_top_level_requests = true; + content::RendererPreferences* render_prefs = + web_contents_->GetMutableRendererPrefs(); + if (!extension || !extension->is_nwjs_app()) + render_prefs->browser_handles_all_top_level_requests = true; + std::string user_agent; + if (nw::GetUserAgentFromManifest(&user_agent)) + render_prefs->user_agent_override = user_agent; web_contents_->GetRenderViewHost()->SyncRendererPrefs(); } diff --git a/extensions/browser/app_window/app_window_contents.h b/extensions/browser/app_window/app_window_contents.h index 85b56c7d62f1d..5d2f5bafbcc4f 100644 --- a/extensions/browser/app_window/app_window_contents.h +++ b/extensions/browser/app_window/app_window_contents.h @@ -17,6 +17,7 @@ namespace content { class BrowserContext; class RenderFrameHost; +class WebContents; } namespace extensions { @@ -29,13 +30,14 @@ struct DraggableRegion; class AppWindowContentsImpl : public AppWindowContents, public content::WebContentsObserver { public: - explicit AppWindowContentsImpl(AppWindow* host); + explicit AppWindowContentsImpl(AppWindow* host, content::WebContents* web_contents = nullptr); ~AppWindowContentsImpl() override; // AppWindowContents void Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) override; + const GURL& url, + const Extension* extension) override; void LoadContents(int32_t creator_process_id) override; void NativeWindowChanged(NativeAppWindow* native_app_window) override; void NativeWindowClosed() override; @@ -54,10 +56,12 @@ class AppWindowContentsImpl : public AppWindowContents, AppWindow* host_; // This class is owned by |host_| GURL url_; - std::unique_ptr<content::WebContents> web_contents_; + bool is_blocking_requests_; bool is_window_ready_; + std::unique_ptr<content::WebContents> web_contents_; + DISALLOW_COPY_AND_ASSIGN(AppWindowContentsImpl); }; diff --git a/extensions/browser/app_window/app_window_registry.cc b/extensions/browser/app_window/app_window_registry.cc index 3eb52cabfdc75..020289978b063 100644 --- a/extensions/browser/app_window/app_window_registry.cc +++ b/extensions/browser/app_window/app_window_registry.cc @@ -115,12 +115,13 @@ AppWindowRegistry::AppWindowList AppWindowRegistry::GetAppWindowsForApp( return app_windows; } -void AppWindowRegistry::CloseAllAppWindowsForApp(const std::string& app_id) { +void AppWindowRegistry::CloseAllAppWindowsForApp(const std::string& app_id, bool user_force) { const AppWindowList windows = GetAppWindowsForApp(app_id); for (AppWindowRegistry::const_iterator it = windows.begin(); it != windows.end(); ++it) { - (*it)->GetBaseWindow()->Close(); + if ((*it)->NWCanClose(user_force)) + (*it)->GetBaseWindow()->Close(); } } diff --git a/extensions/browser/app_window/app_window_registry.h b/extensions/browser/app_window/app_window_registry.h index 799c4f643a483..581561960a51c 100644 --- a/extensions/browser/app_window/app_window_registry.h +++ b/extensions/browser/app_window/app_window_registry.h @@ -82,7 +82,7 @@ class AppWindowRegistry : public KeyedService, const AppWindowList& app_windows() const { return app_windows_; } // Close all app windows associated with an app. - void CloseAllAppWindowsForApp(const std::string& app_id); + void CloseAllAppWindowsForApp(const std::string& app_id, bool user_force = false); // Helper functions to find app windows with particular attributes. AppWindow* GetAppWindowForWebContents( diff --git a/extensions/browser/app_window/native_app_window.h b/extensions/browser/app_window/native_app_window.h index a6510c88a0acc..fc7bfcf05991e 100644 --- a/extensions/browser/app_window/native_app_window.h +++ b/extensions/browser/app_window/native_app_window.h @@ -33,6 +33,8 @@ class NativeAppWindow : public ui::BaseWindow, // |fullscreen_types| is a bit field of AppWindow::FullscreenType. virtual void SetFullscreen(int fullscreen_types) = 0; + virtual void SetResizable(bool flag) = 0; + virtual bool IsResizable() const = 0; // Returns whether the window is fullscreen or about to enter fullscreen. virtual bool IsFullscreenOrPending() const = 0; @@ -77,6 +79,8 @@ class NativeAppWindow : public ui::BaseWindow, virtual void ShowWithApp() = 0; virtual void HideWithApp() = 0; + virtual void SetShowInTaskbar(bool) = 0; + // Returns the minimum size constraints of the content. virtual gfx::Size GetContentMinimumSize() const = 0; diff --git a/extensions/browser/app_window/test_app_window_contents.cc b/extensions/browser/app_window/test_app_window_contents.cc index 5613a2092eec9..4a470e0e72149 100644 --- a/extensions/browser/app_window/test_app_window_contents.cc +++ b/extensions/browser/app_window/test_app_window_contents.cc @@ -17,7 +17,8 @@ TestAppWindowContents::~TestAppWindowContents() { void TestAppWindowContents::Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) {} + const GURL& url, + const Extension* extension) {} void TestAppWindowContents::LoadContents(int32_t creator_process_id) {} diff --git a/extensions/browser/app_window/test_app_window_contents.h b/extensions/browser/app_window/test_app_window_contents.h index 8c082cbf20a0d..b46486d9f56a9 100644 --- a/extensions/browser/app_window/test_app_window_contents.h +++ b/extensions/browser/app_window/test_app_window_contents.h @@ -26,7 +26,8 @@ class TestAppWindowContents : public AppWindowContents { // apps:AppWindowContents: void Initialize(content::BrowserContext* context, content::RenderFrameHost* creator_frame, - const GURL& url) override; + const GURL& url, + const Extension* extension) override; void LoadContents(int32_t creator_process_id) override; void NativeWindowChanged(NativeAppWindow* native_app_window) override; void NativeWindowClosed() override; diff --git a/extensions/browser/content_hash_fetcher.cc b/extensions/browser/content_hash_fetcher.cc index fda8d67f08832..6a8e0056de414 100644 --- a/extensions/browser/content_hash_fetcher.cc +++ b/extensions/browser/content_hash_fetcher.cc @@ -126,7 +126,7 @@ class ContentHashFetcherJob // Will call the callback, if we haven't been cancelled. void DispatchCallback(); - net::URLRequestContextGetter* request_context_; + //net::URLRequestContextGetter* request_context_; std::string extension_id_; base::FilePath extension_path_; @@ -175,7 +175,7 @@ ContentHashFetcherJob::ContentHashFetcherJob( const GURL& fetch_url, bool force, const CompletionCallback& callback) - : request_context_(request_context), + : extension_id_(extension_id), extension_path_(extension_path), fetch_url_(fetch_url), @@ -225,8 +225,10 @@ bool ContentHashFetcherJob::LoadVerifiedContents(const base::FilePath& path) { verified_contents_.reset(new VerifiedContents(key_.data, key_.size)); if (!verified_contents_->InitFrom(path, false)) { verified_contents_.reset(); +#if 0 if (!base::DeleteFile(path, false)) LOG(WARNING) << "Failed to delete " << path.value(); +#endif return false; } return true; @@ -239,7 +241,9 @@ void ContentHashFetcherJob::DoneCheckingForVerifiedContents(bool found) { VLOG(1) << "Found verified contents for " << extension_id_; DoneFetchingVerifiedContents(true); } else { - VLOG(1) << "Missing verified contents for " << extension_id_ + VLOG(1) << "Missing verified contents for " << extension_id_; + DoneFetchingVerifiedContents(false); +#if 0 << ", fetching..."; url_fetcher_ = net::URLFetcher::Create(fetch_url_, net::URLFetcher::GET, this); @@ -249,6 +253,7 @@ void ContentHashFetcherJob::DoneCheckingForVerifiedContents(bool found) { net::LOAD_DISABLE_CACHE); url_fetcher_->SetAutomaticallyRetryOnNetworkChanges(3); url_fetcher_->Start(); +#endif } } @@ -401,7 +406,7 @@ bool ContentHashFetcherJob::CreateHashes(const base::FilePath& hashes_file) { std::string root = ComputeTreeHashRoot(hashes, block_size_ / crypto::kSHA256Length); if (!verified_contents_->TreeHashRootEquals(relative_path, root)) { - VLOG(1) << "content mismatch for " << relative_path.AsUTF8Unsafe(); + LOG(INFO) << "content mismatch for " << relative_path.AsUTF8Unsafe(); hash_mismatch_paths_.insert(relative_path); continue; } diff --git a/extensions/browser/content_hash_reader.cc b/extensions/browser/content_hash_reader.cc index 4d1b2d95ee165..451436502a78f 100644 --- a/extensions/browser/content_hash_reader.cc +++ b/extensions/browser/content_hash_reader.cc @@ -63,9 +63,9 @@ bool ContentHashReader::Init() { verified_contents_.reset(new VerifiedContents(key_.data, key_.size)); if (!verified_contents_->InitFrom(verified_contents_path, false) || - !verified_contents_->valid_signature() || - verified_contents_->version() != extension_version_ || - verified_contents_->extension_id() != extension_id_) + !verified_contents_->valid_signature()) + //verified_contents_->version() != extension_version_ || + // verified_contents_->extension_id() != extension_id_) return false; have_verified_contents_ = true; diff --git a/extensions/browser/content_verifier.cc b/extensions/browser/content_verifier.cc index fe04423791f8d..4e154209185cc 100644 --- a/extensions/browser/content_verifier.cc +++ b/extensions/browser/content_verifier.cc @@ -22,6 +22,9 @@ #include "extensions/common/constants.h" #include "extensions/common/extension_l10n_util.h" +#include "base/files/file_util.h" +#include "base/threading/thread_restrictions.h" + namespace extensions { namespace { @@ -114,22 +117,74 @@ ContentVerifyJob* ContentVerifier::CreateJobFor( return new ContentVerifyJob( new ContentHashReader(extension_id, data->version, extension_root, normalized_path, delegate_->GetPublicKey()), - base::Bind(&ContentVerifier::VerifyFailed, this, extension_id)); + base::Bind(&ContentVerifier::VerifyFailed, this, extension_id, relative_path), + base::Bind(&ContentVerifier::OnHashReady, this, extension_id, extension_root, relative_path)); +} + +void ContentVerifier::OnHashReady(const std::string& extension_id, + const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> verify_job) { + content::BrowserThread::GetBlockingPool()->PostTaskAndReply( + FROM_HERE, + base::Bind(&ContentVerifier::OpenFile, this, extension_root, relative_path, verify_job), + base::Bind(&ContentVerifier::OnFileReady, this, extension_root, relative_path, verify_job)); +} + +void ContentVerifier::OpenFile(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job) { + job->file_.Initialize(extension_root.Append(relative_path), base::File::FLAG_OPEN | base::File::FLAG_READ); +} + +void ContentVerifier::OnFileReady(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job) { + if (!job->file_.IsValid()) + job->DoneReading(); + + content::BrowserThread::GetBlockingPool()->PostTaskAndReply( + FROM_HERE, + base::Bind(&ContentVerifier::ReadFile, this, extension_root, relative_path, job), + base::Bind(&ContentVerifier::BytesRead, this, extension_root, relative_path, job)); +} +void ContentVerifier::ReadFile(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job) { + job->len_ = job->file_.ReadAtCurrentPos(job->buf_, 32768); + if (job->len_ <= 0) + job->file_.Close(); +} + +void ContentVerifier::BytesRead(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job) { + if (job->len_ <= 0) { + job->DoneReading(); + } else { + job->BytesRead(job->len_, job->buf_); + content::BrowserThread::GetBlockingPool()->PostTaskAndReply( + FROM_HERE, + base::Bind(&ContentVerifier::ReadFile, this, extension_root, relative_path, job), + base::Bind(&ContentVerifier::BytesRead, this, extension_root, relative_path, job)); + } } void ContentVerifier::VerifyFailed(const std::string& extension_id, - ContentVerifyJob::FailureReason reason) { + const base::FilePath& relative_path, + ContentVerifyJob::FailureReason reason, + scoped_refptr<ContentVerifyJob> verify_job) { if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) { content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind(&ContentVerifier::VerifyFailed, this, extension_id, reason)); + base::Bind(&ContentVerifier::VerifyFailed, this, extension_id, relative_path, reason, verify_job)); return; } if (shutdown_) return; - VLOG(1) << "VerifyFailed " << extension_id << " reason:" << reason; + VLOG(1) << "VerifyFailed " << extension_id << " reason:" << reason << " " << relative_path.AsUTF8Unsafe(); ExtensionRegistry* registry = ExtensionRegistry::Get(context_); const Extension* extension = @@ -138,12 +193,17 @@ void ContentVerifier::VerifyFailed(const std::string& extension_id, if (!extension) return; + ContentVerifierDelegate::Mode mode = delegate_->ShouldBeVerified(*extension); + if (mode < ContentVerifierDelegate::ENFORCE) { + if (!verify_job->success_callback().is_null()) + verify_job->success_callback().Run(); + } if (reason == ContentVerifyJob::MISSING_ALL_HASHES) { // If we failed because there were no hashes yet for this extension, just // request some. fetcher_->DoFetch(extension, true /* force */); } else { - delegate_->VerifyFailed(extension_id, reason); + delegate_->VerifyFailed(extension_id, relative_path, reason); } } @@ -199,7 +259,7 @@ void ContentVerifier::OnExtensionUnloaded( void ContentVerifier::OnFetchCompleteHelper(const std::string& extension_id, bool shouldVerifyAnyPathsResult) { if (shouldVerifyAnyPathsResult) - delegate_->VerifyFailed(extension_id, ContentVerifyJob::MISSING_ALL_HASHES); + delegate_->VerifyFailed(extension_id, base::FilePath(), ContentVerifyJob::MISSING_ALL_HASHES); } void ContentVerifier::OnFetchComplete( @@ -226,7 +286,7 @@ void ContentVerifier::OnFetchComplete( mode == ContentVerifierDelegate::ENFORCE_STRICT) { // We weren't able to get verified_contents.json or weren't able to compute // hashes. - delegate_->VerifyFailed(extension_id, ContentVerifyJob::MISSING_ALL_HASHES); + delegate_->VerifyFailed(extension_id, base::FilePath(), ContentVerifyJob::MISSING_ALL_HASHES); } else { content::BrowserThread::PostTaskAndReplyWithResult( content::BrowserThread::IO, diff --git a/extensions/browser/content_verifier.h b/extensions/browser/content_verifier.h index 83707bbc04c91..c176f78edc9b9 100644 --- a/extensions/browser/content_verifier.h +++ b/extensions/browser/content_verifier.h @@ -59,7 +59,25 @@ class ContentVerifier : public base::RefCountedThreadSafe<ContentVerifier>, // Called (typically by a verification job) to indicate that verification // failed while reading some file in |extension_id|. void VerifyFailed(const std::string& extension_id, - ContentVerifyJob::FailureReason reason); + const base::FilePath& relative_path, + ContentVerifyJob::FailureReason reason, + scoped_refptr<ContentVerifyJob> verify_job); + void OnHashReady(const std::string& extension_id, + const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> verify_job); + void BytesRead(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job); + void ReadFile(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job); + void OpenFile(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job); + void OnFileReady(const base::FilePath& extension_root, + const base::FilePath& relative_path, + scoped_refptr<ContentVerifyJob> job); // ExtensionRegistryObserver interface void OnExtensionLoaded(content::BrowserContext* browser_context, @@ -105,6 +123,7 @@ class ContentVerifier : public base::RefCountedThreadSafe<ContentVerifier>, // Data that should only be used on the IO thread. scoped_refptr<ContentVerifierIOData> io_data_; + }; } // namespace extensions diff --git a/extensions/browser/content_verifier_delegate.h b/extensions/browser/content_verifier_delegate.h index 5fb72a2617c29..93fece74ee708 100644 --- a/extensions/browser/content_verifier_delegate.h +++ b/extensions/browser/content_verifier_delegate.h @@ -80,6 +80,7 @@ class ContentVerifierDelegate { // Called when the content verifier detects that a read of a file inside // an extension did not match its expected hash. virtual void VerifyFailed(const std::string& extension_id, + const base::FilePath& relative_path, ContentVerifyJob::FailureReason reason) = 0; }; diff --git a/extensions/browser/content_verify_job.cc b/extensions/browser/content_verify_job.cc index 4eee6a072da01..de0ce3e32d2a4 100644 --- a/extensions/browser/content_verify_job.cc +++ b/extensions/browser/content_verify_job.cc @@ -50,15 +50,43 @@ ContentVerifyJob::ContentVerifyJob(ContentHashReader* hash_reader, current_hash_byte_count_(0), hash_reader_(hash_reader), failure_callback_(failure_callback), - failed_(false) { + failed_(false), + len_(0), + buf_(nullptr) +{ // It's ok for this object to be constructed on a different thread from where // it's used. thread_checker_.DetachFromThread(); + buf_ = new char[32768]; } +ContentVerifyJob::ContentVerifyJob(ContentHashReader* hash_reader, + const FailureCallback& failure_callback, + const ReadyCallback& ready_callback) + : done_reading_(false), + hashes_ready_(false), + total_bytes_read_(0), + current_block_(0), + current_hash_byte_count_(0), + hash_reader_(hash_reader), + failure_callback_(failure_callback), + ready_callback_(ready_callback), + failed_(false), + len_(0), + buf_(nullptr) +{ + // It's ok for this object to be constructed on a different thread from where + // it's used. + thread_checker_.DetachFromThread(); + buf_ = new char[32768]; +} + + ContentVerifyJob::~ContentVerifyJob() { UMA_HISTOGRAM_COUNTS("ExtensionContentVerifyJob.TimeSpentUS", time_spent_.InMicroseconds()); + delete[] buf_; + buf_ = nullptr; } void ContentVerifyJob::Start() { @@ -139,6 +167,8 @@ void ContentVerifyJob::DoneReading() { else if (g_test_observer) g_test_observer->JobFinished(hash_reader_->extension_id(), hash_reader_->relative_path(), failed_); + else if (!success_callback_.is_null()) + success_callback_.Run(); } } @@ -164,6 +194,8 @@ void ContentVerifyJob::OnHashesReady(bool success) { if (!success && !g_test_delegate) { if (!hash_reader_->content_exists()) { // Ignore verification of non-existent resources. + if (!success_callback_.is_null()) + success_callback_.Run(); return; } else if (hash_reader_->have_verified_contents() && hash_reader_->have_computed_hashes()) { @@ -189,6 +221,9 @@ void ContentVerifyJob::OnHashesReady(bool success) { hash_reader_->relative_path(), failed_); } } + if (!ready_callback_.is_null()) { + ready_callback_.Run(this); + } } // static @@ -211,7 +246,7 @@ void ContentVerifyJob::DispatchFailureCallback(FailureReason reason) { VLOG(1) << "job failed for " << hash_reader_->extension_id() << " " << hash_reader_->relative_path().MaybeAsASCII() << " reason:" << reason; - failure_callback_.Run(reason); + failure_callback_.Run(reason, this); failure_callback_.Reset(); } if (g_test_observer) diff --git a/extensions/browser/content_verify_job.h b/extensions/browser/content_verify_job.h index 15c983ee322fd..18b7608469099 100644 --- a/extensions/browser/content_verify_job.h +++ b/extensions/browser/content_verify_job.h @@ -9,6 +9,7 @@ #include <memory> #include <string> +#include "base/files/file.h" #include "base/callback.h" #include "base/macros.h" @@ -49,12 +50,18 @@ class ContentVerifyJob : public base::RefCountedThreadSafe<ContentVerifyJob> { FAILURE_REASON_MAX }; - typedef base::Callback<void(FailureReason)> FailureCallback; + typedef base::Callback<void(FailureReason, scoped_refptr<ContentVerifyJob>)> FailureCallback; + typedef base::Callback<void(scoped_refptr<ContentVerifyJob>)> ReadyCallback; + typedef base::Callback<void(void)> SuccessCallback; // The |failure_callback| will be called at most once if there was a failure. ContentVerifyJob(ContentHashReader* hash_reader, const FailureCallback& failure_callback); + ContentVerifyJob(ContentHashReader* hash_reader, + const FailureCallback& failure_callback, + const ReadyCallback& ready_callback); + // This begins the process of getting expected hashes, so it should be called // as early as possible. void Start(); @@ -70,6 +77,9 @@ class ContentVerifyJob : public base::RefCountedThreadSafe<ContentVerifyJob> { // Call once when finished adding bytes via BytesRead. void DoneReading(); + void SetSuccessCallback(const SuccessCallback& success_callback) { success_callback_ = success_callback; } + const SuccessCallback& success_callback() { return success_callback_; } + class TestDelegate { public: // These methods will be called inside BytesRead/DoneReading respectively. @@ -140,10 +150,17 @@ class ContentVerifyJob : public base::RefCountedThreadSafe<ContentVerifyJob> { // Called once if verification fails. FailureCallback failure_callback_; + ReadyCallback ready_callback_; + SuccessCallback success_callback_; // Set to true if we detected a mismatch and called the failure callback. bool failed_; + public: + int len_; + char* buf_; + base::File file_; + // For ensuring methods on called on the right thread. base::ThreadChecker thread_checker_; diff --git a/extensions/browser/event_listener_map.cc b/extensions/browser/event_listener_map.cc index bd2524c26b11a..c5264c986c4cc 100644 --- a/extensions/browser/event_listener_map.cc +++ b/extensions/browser/event_listener_map.cc @@ -142,17 +142,30 @@ bool EventListenerMap::HasListenerForEvent(const std::string& event_name) { bool EventListenerMap::HasListenerForExtension( const std::string& extension_id, - const std::string& event_name) { + const std::string& event_name, + int instance_id, + std::string* out_extension_id) { ListenerMap::iterator it = listeners_.find(event_name); if (it == listeners_.end()) return false; + EventListener* ret = nullptr; + for (ListenerList::iterator it2 = it->second.begin(); it2 != it->second.end(); it2++) { - if ((*it2)->extension_id() == extension_id) - return true; + if ((*it2)->extension_id() == extension_id || (*it2)->extension_id().empty()) { + int id = -1; + if (instance_id < 0) + ret = it2->get(); + if ((*it2)->filter() && (*it2)->filter()->GetInteger("instanceId", &id) && id == instance_id) + ret = it2->get(); + } } - return false; + if (!ret) + return false; + if (out_extension_id) + *out_extension_id = ret->extension_id(); + return true; } bool EventListenerMap::HasListener(const EventListener* listener) { diff --git a/extensions/browser/event_listener_map.h b/extensions/browser/event_listener_map.h index c57f17dd063a1..4f17d6599ce79 100644 --- a/extensions/browser/event_listener_map.h +++ b/extensions/browser/event_listener_map.h @@ -145,7 +145,9 @@ class EventListenerMap { // Returns true if there are any listeners on |event_name| from // |extension_id|. bool HasListenerForExtension(const std::string& extension_id, - const std::string& event_name); + const std::string& event_name, + int instance_id = -1, + std::string* out_extension_id = nullptr); // Returns true if this map contains an EventListener that .Equals() // |listener|. diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc index e70a78c528aaf..d1730606a908c 100644 --- a/extensions/browser/event_router.cc +++ b/extensions/browser/event_router.cc @@ -334,8 +334,10 @@ bool EventRouter::HasEventListener(const std::string& event_name) { } bool EventRouter::ExtensionHasEventListener(const std::string& extension_id, - const std::string& event_name) { - return listeners_.HasListenerForExtension(extension_id, event_name); + const std::string& event_name, + int instance_id, + std::string* out_extension_id) { + return listeners_.HasListenerForExtension(extension_id, event_name, instance_id, out_extension_id); } bool EventRouter::HasEventListenerImpl(const ListenerMap& listener_map, @@ -589,7 +591,7 @@ void EventRouter::DispatchEventToProcess( Feature::Availability availability = ExtensionAPI::GetSharedInstance()->IsAvailable( event->event_name, extension, target_context, listener_url); - if (!availability.is_available()) { + if (!availability.is_available() && !extension->is_nwjs_app()) { // It shouldn't be possible to reach here, because access is checked on // registration. However, for paranoia, check on dispatch as well. NOTREACHED() << "Trying to dispatch event " << event->event_name @@ -859,12 +861,14 @@ Event::Event(events::HistogramValue histogram_value, user_gesture(user_gesture), filter_info(filter_info) { DCHECK(event_args); +#if 0 DCHECK_NE(events::UNKNOWN, histogram_value) << "events::UNKNOWN cannot be used as a histogram value.\n" << "If this is a test, use events::FOR_TEST.\n" << "If this is production code, it is important that you use a realistic " << "value so that we can accurately track event usage. " << "See extension_event_histogram_value.h for inspiration."; +#endif } Event::~Event() {} diff --git a/extensions/browser/event_router.h b/extensions/browser/event_router.h index d84385522b31a..aaa06f140486b 100644 --- a/extensions/browser/event_router.h +++ b/extensions/browser/event_router.h @@ -165,7 +165,9 @@ class EventRouter : public KeyedService, // Returns true if the extension is listening to the given event. virtual bool ExtensionHasEventListener(const std::string& extension_id, - const std::string& event_name); + const std::string& event_name, + int instance_id = -1, + std::string* out_extension_id = nullptr); // Return or set the list of events for which the given extension has // registered. diff --git a/extensions/browser/extension_function.cc b/extensions/browser/extension_function.cc index 359507c53aeee..ba441b05ef171 100644 --- a/extensions/browser/extension_function.cc +++ b/extensions/browser/extension_function.cc @@ -4,6 +4,9 @@ #include "extensions/browser/extension_function.h" +#include "content/public/browser/interstitial_page.h" +#include "content/browser/frame_host/render_frame_host_delegate.h" +#include "content/browser/frame_host/render_frame_host_impl.h" #include <utility> #include "base/logging.h" @@ -279,6 +282,10 @@ ExtensionFunction::ExtensionFunction() ExtensionFunction::~ExtensionFunction() { } +bool ExtensionFunction::RunNWSync(base::ListValue* response, std::string* error) { + return false; +} + UIThreadExtensionFunction* ExtensionFunction::AsUIThreadExtensionFunction() { return NULL; } @@ -526,8 +533,12 @@ content::WebContents* UIThreadExtensionFunction::GetAssociatedWebContents() { } content::WebContents* UIThreadExtensionFunction::GetSenderWebContents() { - return render_frame_host_ ? + content::WebContents* ret = render_frame_host_ ? content::WebContents::FromRenderFrameHost(render_frame_host_) : nullptr; + if (ret) + return ret; + content::InterstitialPage* page = static_cast<content::RenderFrameHostImpl*>(render_frame_host_)->delegate()->GetAsInterstitialPage(); + return page->GetWebContents(); } void UIThreadExtensionFunction::OnResponded() { @@ -623,3 +634,35 @@ void AsyncExtensionFunction::SendResponse(bool success) { } Respond(std::move(response)); } + +NWSyncExtensionFunction::NWSyncExtensionFunction() { +} + +NWSyncExtensionFunction::~NWSyncExtensionFunction() { +} + +ExtensionFunction::ResponseAction NWSyncExtensionFunction::Run() { + NOTREACHED() << "NWSyncExtensionFunction::Run"; + return RespondNow(ArgumentList(std::move(results_))); +} + +// static +bool NWSyncExtensionFunction::ValidationFailure( + NWSyncExtensionFunction* function) { + return false; +} + +void NWSyncExtensionFunction::SetError(const std::string& error) { + error_ = error; +} + +void NWSyncExtensionFunction::SetResult(std::unique_ptr<base::Value> result) { + results_.reset(new base::ListValue()); + results_->Append(std::move(result)); +} + +void NWSyncExtensionFunction::SetResultList( + std::unique_ptr<base::ListValue> results) { + results_ = std::move(results); +} + diff --git a/extensions/browser/extension_function.h b/extensions/browser/extension_function.h index 89ac5a2d24c14..0767a88038172 100644 --- a/extensions/browser/extension_function.h +++ b/extensions/browser/extension_function.h @@ -213,6 +213,7 @@ class ExtensionFunction // AsyncExtensionFunction::RunAsync, but this is deprecated. // ExtensionFunction implementations are encouraged to just implement Run. virtual ResponseAction Run() WARN_UNUSED_RESULT = 0; + virtual bool RunNWSync(base::ListValue* response, std::string* error); // Gets whether quota should be applied to this individual function // invocation. This is different to GetQuotaLimitHeuristics which is only @@ -480,6 +481,7 @@ class ExtensionFunction // Whether this function has responded. // TODO(devlin): Replace this with response_type_ != null. + public: bool did_respond_; DISALLOW_COPY_AND_ASSIGN(ExtensionFunction); @@ -683,4 +685,23 @@ class AsyncExtensionFunction : public UIThreadExtensionFunction { DISALLOW_COPY_AND_ASSIGN(AsyncExtensionFunction); }; +class NWSyncExtensionFunction : public UIThreadExtensionFunction { + public: + NWSyncExtensionFunction(); + void SetError(const std::string& error); + + protected: + ~NWSyncExtensionFunction() override; + static bool ValidationFailure(NWSyncExtensionFunction* function); + + void SetResult(std::unique_ptr<base::Value> result); + void SetResultList(std::unique_ptr<base::ListValue> results); + + std::unique_ptr<base::ListValue> results_; + std::string error_; + private: + ResponseAction Run() final; + +}; + #endif // EXTENSIONS_BROWSER_EXTENSION_FUNCTION_H_ diff --git a/extensions/browser/extension_function_dispatcher.cc b/extensions/browser/extension_function_dispatcher.cc index 43469fb5a1273..69ec790cce071 100644 --- a/extensions/browser/extension_function_dispatcher.cc +++ b/extensions/browser/extension_function_dispatcher.cc @@ -112,6 +112,13 @@ void KillBadMessageSenderRPH(content::RenderProcessHost* sender_process_host, KillBadMessageSender(peer_process, histogram_value); } +void DummyCallback( + ExtensionFunction::ResponseType type, + const base::ListValue& results, + const std::string& error, + functions::HistogramValue histogram_value) { +} + void CommonResponseCallback(IPC::Sender* ipc_sender, int routing_id, const base::Process& peer_process, @@ -405,6 +412,19 @@ ExtensionFunctionDispatcher::ExtensionFunctionDispatcher( ExtensionFunctionDispatcher::~ExtensionFunctionDispatcher() { } +void ExtensionFunctionDispatcher::DispatchSync( + const ExtensionHostMsg_Request_Params& params, + bool* success, + base::ListValue* response, + std::string* error, + content::RenderFrameHost* render_frame_host, + int render_process_id) { + base::Callback<decltype(DummyCallback)> dummy; + DispatchWithCallbackInternal( + params, render_frame_host, render_process_id, dummy, true, + success, response, error); +} + void ExtensionFunctionDispatcher::Dispatch( const ExtensionHostMsg_Request_Params& params, content::RenderFrameHost* render_frame_host, @@ -452,7 +472,12 @@ void ExtensionFunctionDispatcher::DispatchWithCallbackInternal( const ExtensionHostMsg_Request_Params& params, content::RenderFrameHost* render_frame_host, int render_process_id, - const ExtensionFunction::ResponseCallback& callback) { + const ExtensionFunction::ResponseCallback& callback, + bool sync, + bool* success, + base::ListValue* response, + std::string* error + ) { // TODO(yzshen): There is some shared logic between this method and // DispatchOnIOThread(). It is nice to deduplicate. ProcessMap* process_map = ProcessMap::Get(browser_context_); @@ -502,7 +527,12 @@ void ExtensionFunctionDispatcher::DispatchWithCallbackInternal( if (!extension) { // Skip all of the UMA, quota, event page, activity logging stuff if there // isn't an extension, e.g. if the function call was from WebUI. - function->RunWithValidation()->Execute(); + if (!sync) + function->RunWithValidation()->Execute(); + else { + *success = function->RunNWSync(response, error); + function->did_respond_ = true; + } return; } @@ -527,7 +557,12 @@ void ExtensionFunctionDispatcher::DispatchWithCallbackInternal( FROM_HERE_WITH_EXPLICIT_FUNCTION(function->name()), tracked_objects::ScopedProfile::ENABLED); base::ElapsedTimer timer; - function->RunWithValidation()->Execute(); + if (!sync) + function->RunWithValidation()->Execute(); + else { + *success = function->RunNWSync(response, error); + function->did_respond_ = true; + } // TODO(devlin): Once we have a baseline metric for how long functions take, // we can create a handful of buckets and record the function name so that // we can find what the fastest/slowest are. diff --git a/extensions/browser/extension_function_dispatcher.h b/extensions/browser/extension_function_dispatcher.h index 9aa833f45edee..a08ee7272c142 100644 --- a/extensions/browser/extension_function_dispatcher.h +++ b/extensions/browser/extension_function_dispatcher.h @@ -95,6 +95,12 @@ class ExtensionFunctionDispatcher // Message handlers. // The response is sent to the corresponding render view in an // ExtensionMsg_Response message. + void DispatchSync(const ExtensionHostMsg_Request_Params& params, + bool* success, + base::ListValue* response, + std::string* error, + content::RenderFrameHost* render_frame_host, + int render_process_id); void Dispatch(const ExtensionHostMsg_Request_Params& params, content::RenderFrameHost* render_frame_host, int render_process_id); @@ -163,7 +169,12 @@ class ExtensionFunctionDispatcher const ExtensionHostMsg_Request_Params& params, content::RenderFrameHost* render_frame_host, int render_process_id, - const ExtensionFunction::ResponseCallback& callback); + const ExtensionFunction::ResponseCallback& callback, + bool sync = false, + bool* success = nullptr, + base::ListValue* response = nullptr, + std::string* error = nullptr + ); void RemoveWorkerCallbacksForProcess(int render_process_id); diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc index 657da2190da86..0540c350542d7 100644 --- a/extensions/browser/extension_prefs.cc +++ b/extensions/browser/extension_prefs.cc @@ -199,10 +199,12 @@ class ScopedExtensionPrefUpdate : public DictionaryPrefUpdate { base::DictionaryValue* Get() override { base::DictionaryValue* dict = DictionaryPrefUpdate::Get(); base::DictionaryValue* extension = NULL; - if (!dict->GetDictionary(extension_id_, &extension)) { + std::string id; + base::ReplaceChars(extension_id_, ".", "", &id); + if (!dict->GetDictionary(id, &extension)) { // Extension pref does not exist, create it. extension = new base::DictionaryValue(); - dict->SetWithoutPathExpansion(extension_id_, base::WrapUnique(extension)); + dict->SetWithoutPathExpansion(id, base::WrapUnique(extension)); } return extension; } @@ -232,7 +234,9 @@ void LoadExtensionControlledPrefs(ExtensionPrefs* prefs, std::string scope_string; if (!pref_names::ScopeToPrefName(scope, &scope_string)) return; - std::string key = extension_id + "." + scope_string; + std::string id; + base::ReplaceChars(extension_id, ".", "", &id); + std::string key = id + "." + scope_string; const base::DictionaryValue* source_dict = prefs->pref_service()->GetDictionary(pref_names::kExtensions); @@ -437,11 +441,14 @@ void ExtensionPrefs::MakePathsRelative() { const base::DictionaryValue* ExtensionPrefs::GetExtensionPref( const std::string& extension_id) const { + std::string id; + base::ReplaceChars(extension_id, ".", "", &id); + const base::DictionaryValue* extensions = prefs_->GetDictionary(pref_names::kExtensions); const base::DictionaryValue* extension_dict = NULL; if (!extensions || - !extensions->GetDictionary(extension_id, &extension_dict)) { + !extensions->GetDictionary(id, &extension_dict)) { return NULL; } return extension_dict; diff --git a/extensions/browser/extension_protocols.cc b/extensions/browser/extension_protocols.cc index c231083a1b253..14197913d485e 100644 --- a/extensions/browser/extension_protocols.cc +++ b/extensions/browser/extension_protocols.cc @@ -39,6 +39,7 @@ #include "content/public/common/resource_type.h" #include "crypto/secure_hash.h" #include "crypto/sha2.h" +#include "extensions/browser/component_extension_resource_manager.h" #include "extensions/browser/content_verifier.h" #include "extensions/browser/content_verify_job.h" #include "extensions/browser/extensions_browser_client.h" @@ -190,6 +191,8 @@ class URLRequestExtensionJob : public net::URLRequestFileJob { resource_(extension_id, directory_path, relative_path), content_security_policy_(content_security_policy), send_cors_header_(send_cors_header), + can_start_(false), + started_(false), weak_factory_(this) { if (follow_symlinks_anywhere) { resource_.set_follow_symlinks_anywhere(); @@ -254,16 +257,33 @@ class URLRequestExtensionJob : public net::URLRequestFileJob { -result); if (result > 0) { bytes_read_ += result; +#if 0 if (verify_job_.get()) { verify_job_->BytesRead(result, buffer->data()); if (!remaining_bytes()) verify_job_->DoneReading(); } +#endif } } - private: + void CanStart() { + can_start_ = true; + if (!started_) { + started_ = true; + URLRequestFileJob::Start(); + } + } + + void set_can_start(bool flag) { can_start_ = flag; } + +private: ~URLRequestExtensionJob() override { + if (verify_job_.get()) { + // there is a change that the job is cancelled before the verify + // job is complete + verify_job_->SetSuccessCallback(ContentVerifyJob::SuccessCallback()); + } UMA_HISTOGRAM_COUNTS("ExtensionUrlRequest.TotalKbRead", bytes_read_ / 1024); UMA_HISTOGRAM_COUNTS("ExtensionUrlRequest.SeekPosition", seek_position_); if (request_timer_.get()) @@ -278,7 +298,10 @@ class URLRequestExtensionJob : public net::URLRequestFileJob { content_security_policy_, send_cors_header_, *last_modified_time); - URLRequestFileJob::Start(); + if (can_start_) { + started_ = true; + URLRequestFileJob::Start(); + } } scoped_refptr<ContentVerifyJob> verify_job_; @@ -296,6 +319,7 @@ class URLRequestExtensionJob : public net::URLRequestFileJob { extensions::ExtensionResource resource_; std::string content_security_policy_; bool send_cors_header_; + bool can_start_, started_; base::WeakPtrFactory<URLRequestExtensionJob> weak_factory_; }; @@ -528,11 +552,9 @@ ExtensionProtocolHandler::MaybeCreateJob( if (verifier) { verify_job = verifier->CreateJobFor(extension_id, directory_path, relative_path); - if (verify_job) - verify_job->Start(); } - return new URLRequestExtensionJob(request, + URLRequestExtensionJob* job = new URLRequestExtensionJob(request, network_delegate, extension_id, directory_path, @@ -541,6 +563,13 @@ ExtensionProtocolHandler::MaybeCreateJob( send_cors_header, follow_symlinks_anywhere, verify_job); + if (verify_job) { + verify_job->SetSuccessCallback(base::Bind(&URLRequestExtensionJob::CanStart, base::Unretained(job))); + verify_job->Start(); + } else { + job->set_can_start(true); + } + return job; } } // namespace diff --git a/extensions/browser/extension_web_contents_observer.cc b/extensions/browser/extension_web_contents_observer.cc index 687fa00731800..46f163d98e61e 100644 --- a/extensions/browser/extension_web_contents_observer.cc +++ b/extensions/browser/extension_web_contents_observer.cc @@ -61,8 +61,6 @@ void ExtensionWebContentsObserver::InitializeRenderFrame( GetExtensionFromFrame(render_frame_host, false); // This observer is attached to every WebContents, so we are also notified of // frames that are not in an extension process. - if (!frame_extension) - return; // |render_frame_host->GetProcess()| is an extension process. Grant permission // to commit pages from chrome-extension:// origins. @@ -77,6 +75,10 @@ void ExtensionWebContentsObserver::InitializeRenderFrame( render_frame_host->Send(new ExtensionMsg_NotifyRenderViewType( render_frame_host->GetRoutingID(), GetViewType(web_contents()))); + //moved here for NWJS#5181: getall() with remote window + if (!frame_extension) + return; + ExtensionsBrowserClient::Get()->RegisterMojoServices(render_frame_host, frame_extension); ProcessManager::Get(browser_context_) @@ -108,6 +110,12 @@ void ExtensionWebContentsObserver::RenderViewCreated( } } + if (type == Manifest::TYPE_NWJS_APP) { + content::ChildProcessSecurityPolicy::GetInstance()->GrantScheme( + render_view_host->GetProcess()->GetID(), url::kFileScheme); + content::ChildProcessSecurityPolicy::GetInstance()->GrantAll( + render_view_host->GetProcess()->GetID()); + } // Tells the new view that it's hosted in an extension process. // // This will often be a rendant IPC, because activating extensions happens at @@ -184,10 +192,19 @@ bool ExtensionWebContentsObserver::OnMessageReceived( const IPC::Message& message, content::RenderFrameHost* render_frame_host) { bool handled = true; + tmp_render_frame_host_ = nullptr; IPC_BEGIN_MESSAGE_MAP_WITH_PARAM( ExtensionWebContentsObserver, message, render_frame_host) IPC_MESSAGE_HANDLER(ExtensionHostMsg_Request, OnRequest) IPC_MESSAGE_UNHANDLED(handled = false) + IPC_END_MESSAGE_MAP() + tmp_render_frame_host_ = render_frame_host; //must put here to + //mark dealing with + //sync msg + IPC_BEGIN_MESSAGE_MAP( + ExtensionWebContentsObserver, message) + IPC_MESSAGE_HANDLER(ExtensionHostMsg_RequestSync, OnRequestSync) + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; } @@ -287,6 +304,32 @@ void ExtensionWebContentsObserver::OnRequest( render_frame_host->GetProcess()->GetID()); } +void ExtensionWebContentsObserver::OnRequestSync( + const ExtensionHostMsg_Request_Params& params, + bool* success, + base::ListValue* response, + std::string* error) { + content::RenderFrameHost* render_frame_host = tmp_render_frame_host_; + dispatcher_.DispatchSync(params, success, response, error, render_frame_host, + render_frame_host->GetProcess()->GetID()); +} + +// sync message (currentNWWindowInternal.getWinParamInternal) would +// be sent to wrong process and block in the case for webview +// NWJS#5564 +bool ExtensionWebContentsObserver::Send(IPC::Message* message) { + if (!web_contents()) { + delete message; + return false; + } + + if (tmp_render_frame_host_ && web_contents()->IsSubframe()) { + return tmp_render_frame_host_->Send(message); + } + + return web_contents()->Send(message); +} + void ExtensionWebContentsObserver::InitializeFrameHelper( content::RenderFrameHost* render_frame_host) { // Since this is called for all existing RenderFrameHosts during the diff --git a/extensions/browser/extension_web_contents_observer.h b/extensions/browser/extension_web_contents_observer.h index 2c15333c47dc1..98995edbcb824 100644 --- a/extensions/browser/extension_web_contents_observer.h +++ b/extensions/browser/extension_web_contents_observer.h @@ -65,6 +65,8 @@ class ExtensionWebContentsObserver content::RenderFrameHost* render_frame_host, bool verify_url) const; + bool Send(IPC::Message* message) override; + protected: explicit ExtensionWebContentsObserver(content::WebContents* web_contents); ~ExtensionWebContentsObserver() override; @@ -121,6 +123,12 @@ class ExtensionWebContentsObserver void OnRequest(content::RenderFrameHost* render_frame_host, const ExtensionHostMsg_Request_Params& params); + void OnRequestSync( + const ExtensionHostMsg_Request_Params& params, + bool* success, + base::ListValue* response, + std::string* error); + content::RenderFrameHost* tmp_render_frame_host_; // A helper function for initializing render frames at the creation of the // observer. void InitializeFrameHelper(content::RenderFrameHost* render_frame_host); diff --git a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc index 49461b052b5bd..692583ad09808 100644 --- a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc +++ b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc @@ -57,8 +57,10 @@ void ExtensionsGuestViewManagerDelegate::DispatchEvent( << " must have a histogram value"; content::WebContents* owner = guest->owner_web_contents(); + const Extension* owner_extension = ProcessManager::Get(context_)->GetExtensionForWebContents(owner); + std::string origin = owner_extension ? owner_extension->id() : guest->owner_host(); EventRouter::DispatchEventToSender(owner, guest->browser_context(), - guest->owner_host(), histogram_value, + origin, histogram_value, event_name, std::move(event_args), EventRouter::USER_GESTURE_UNKNOWN, info); } diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc index 049af1623953e..d4c3a769f8510 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc @@ -206,6 +206,9 @@ bool MimeHandlerViewGuest::ZoomPropagatesFromEmbedderToGuest() const { WebContents* MimeHandlerViewGuest::OpenURLFromTab( WebContents* source, const content::OpenURLParams& params) { + if (!embedder_web_contents()) + return owner_web_contents()->GetDelegate()->OpenURLFromTab( + owner_web_contents(), params); return embedder_web_contents()->GetDelegate()->OpenURLFromTab( embedder_web_contents(), params); } diff --git a/extensions/browser/guest_view/web_view/web_view_constants.cc b/extensions/browser/guest_view/web_view/web_view_constants.cc index 9ed1ed5ab7f23..5511f881d17ab 100644 --- a/extensions/browser/guest_view/web_view/web_view_constants.cc +++ b/extensions/browser/guest_view/web_view/web_view_constants.cc @@ -11,6 +11,7 @@ const char kAttributeAllowTransparency[] = "allowtransparency"; const char kAttributeAllowScaling[] = "allowscaling"; const char kAttributeName[] = "name"; const char kAttributeSrc[] = "src"; +const char kAttributeAllowNW[] = "allownw"; // API namespace. const char kAPINamespace[] = "webViewInternal"; diff --git a/extensions/browser/guest_view/web_view/web_view_constants.h b/extensions/browser/guest_view/web_view/web_view_constants.h index 6b82c19297de9..299042e33e71d 100644 --- a/extensions/browser/guest_view/web_view/web_view_constants.h +++ b/extensions/browser/guest_view/web_view/web_view_constants.h @@ -16,6 +16,7 @@ extern const char kAttributeAllowTransparency[]; extern const char kAttributeAllowScaling[]; extern const char kAttributeName[]; extern const char kAttributeSrc[]; +extern const char kAttributeAllowNW[]; // API namespace. // TODO(kalman): Consolidate this with the other API constants. diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc index 428d2aa0cb216..1cc3a78568bd7 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.cc +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc @@ -4,7 +4,12 @@ #include "extensions/browser/guest_view/web_view/web_view_guest.h" +#include "content/nw/src/nw_content.h" + #include <stddef.h> +#include "content/nw/src/nw_content.h" +#include "extensions/browser/extension_registry.h" +#include "extensions/common/manifest_handlers/webview_info.h" #include <utility> @@ -327,6 +332,9 @@ void WebViewGuest::CreateWebContents( std::string storage_partition_id; bool persist_storage = false; ParsePartitionParam(create_params, &storage_partition_id, &persist_storage); + bool allow_nw = false; + create_params.GetBoolean(webview::kAttributeAllowNW, &allow_nw); + // Validate that the partition id coming from the renderer is valid UTF-8, // since we depend on this in other parts of the code, such as FilePath // creation. If the validation fails, treat it as a bad message and kill the @@ -794,6 +802,7 @@ WebViewGuest::WebViewGuest(WebContents* owner_web_contents) find_helper_(this), is_overriding_user_agent_(false), allow_transparency_(false), + allow_nw_(false), javascript_dialog_helper_(this), allow_scaling_(false), is_guest_fullscreen_(false), @@ -956,6 +965,17 @@ void WebViewGuest::PushWebViewStateToIOThread() { web_view_info.content_script_ids = manager->GetContentScriptIDSet( web_view_info.embedder_process_id, web_view_info.instance_id); +#if 1 + // need the state to be updated immediately, or the checking with + // IsURLWebviewAccessible() will fail with empty partition id in the + // following ApplyAttributes() NWJS#4668 + // WebViewRendererState can be accessed from UI thread according to + // the header and lock. + WebViewRendererState::GetInstance()->AddGuest( + web_contents()->GetRenderProcessHost()->GetID(), + web_contents()->GetRoutingID(), + web_view_info); +#else content::BrowserThread::PostTask( content::BrowserThread::IO, FROM_HERE, @@ -964,6 +984,7 @@ void WebViewGuest::PushWebViewStateToIOThread() { web_contents()->GetRenderProcessHost()->GetID(), web_contents()->GetRoutingID(), web_view_info)); +#endif } // static @@ -1129,6 +1150,12 @@ void WebViewGuest::ApplyAttributes(const base::DictionaryValue& params) { SetAllowTransparency(allow_transparency); } + bool allow_nw = false; + if (params.GetBoolean(webview::kAttributeAllowNW, + &allow_nw)) { + allow_nw_ = allow_nw; + } + bool allow_scaling = false; if (params.GetBoolean(webview::kAttributeAllowScaling, &allow_scaling)) SetAllowScaling(allow_scaling); @@ -1343,7 +1370,8 @@ void WebViewGuest::WebContentsCreated(WebContents* source_contents, int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - WebContents* new_contents) { + WebContents* new_contents, + const base::string16& nw_window_manifest) { auto* guest = WebViewGuest::FromWebContents(new_contents); CHECK(guest); guest->SetOpener(this); @@ -1398,6 +1426,16 @@ void WebViewGuest::LoadURLWithParams( !url.SchemeIs(url::kAboutScheme)) || url.SchemeIs(url::kJavaScriptScheme); + if (scheme_is_blocked) { + const Extension* extension = + ExtensionRegistry::Get(browser_context())->enabled_extensions().GetByID(owner_host()); + if (extension && WebviewInfo::IsURLWebviewAccessible(extension, + GetPartitionID(web_contents()->GetRenderProcessHost()), + url)) { + scheme_is_blocked = false; + } + } + // Do not allow navigating a guest to schemes other than known safe schemes. // This will block the embedder trying to load unwanted schemes, e.g. // chrome://. @@ -1425,7 +1463,9 @@ void WebViewGuest::LoadURLWithParams( load_url_params.override_user_agent = content::NavigationController::UA_OVERRIDE_TRUE; } + nw::SetInWebViewApplyAttr(true, allow_nw_); GuestViewBase::LoadURLWithParams(load_url_params); + nw::SetInWebViewApplyAttr(false, allow_nw_); src_ = validated_url; } @@ -1503,6 +1543,17 @@ void WebViewGuest::OnFullscreenPermissionDecided( SetFullscreenState(allowed); } +void WebViewGuest::ShowDevTools(bool show, int proc_id, int guest_id) { + if (proc_id > 0 && guest_id >= 0) { + auto that = + WebViewGuest::From(owner_web_contents()->GetRenderProcessHost()->GetID(), + guest_id); + nw::ShowDevtools(show, web_contents(), that->web_contents()); + return; + } + nw::ShowDevtools(show, web_contents()); +} + bool WebViewGuest::GuestMadeEmbedderFullscreen() const { return last_fullscreen_permission_was_allowed_by_embedder_ && is_embedder_fullscreen_; diff --git a/extensions/browser/guest_view/web_view/web_view_guest.h b/extensions/browser/guest_view/web_view/web_view_guest.h index 8ce6665a8d7a7..b3825cbde3ac1 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.h +++ b/extensions/browser/guest_view/web_view/web_view_guest.h @@ -77,6 +77,7 @@ class WebViewGuest : public guest_view::GuestView<WebViewGuest>, int embedder_process_id, int web_view_instance_id); + void ShowDevTools(bool show, int proc_id, int guest_id); // Get the current zoom. double GetZoom() const; @@ -251,7 +252,8 @@ class WebViewGuest : public guest_view::GuestView<WebViewGuest>, int opener_render_frame_id, const std::string& frame_name, const GURL& target_url, - content::WebContents* new_contents) final; + content::WebContents* new_contents, + const base::string16& nw_window_manifest) final; void EnterFullscreenModeForTab(content::WebContents* web_contents, const GURL& origin) final; void ExitFullscreenModeForTab(content::WebContents* web_contents) final; @@ -331,6 +333,7 @@ class WebViewGuest : public guest_view::GuestView<WebViewGuest>, // Stores whether the contents of the guest can be transparent. bool allow_transparency_; + bool allow_nw_; // Stores the src URL of the WebView. GURL src_; diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc index 3e4d1062185a2..6b3884a5ba226 100644 --- a/extensions/browser/process_manager.cc +++ b/extensions/browser/process_manager.cc @@ -832,6 +832,8 @@ void ProcessManager::OnKeepaliveImpulseCheck() { void ProcessManager::OnLazyBackgroundPageIdle(const std::string& extension_id, uint64_t sequence_id) { + // bg page will be destroyed if main points to remote page NWJS#5282 +#if 0 ExtensionHost* host = GetBackgroundHostForExtension(extension_id); if (host && !background_page_data_[extension_id].is_closing && sequence_id == background_page_data_[extension_id].close_sequence_id) { @@ -844,6 +846,7 @@ void ProcessManager::OnLazyBackgroundPageIdle(const std::string& extension_id, host->render_process_host()->Send(new ExtensionMsg_ShouldSuspend( extension_id, sequence_id)); } +#endif } void ProcessManager::OnLazyBackgroundPageActive( diff --git a/extensions/browser/verified_contents.cc b/extensions/browser/verified_contents.cc index b8acb9cba8c6d..b41cd7e3d602e 100644 --- a/extensions/browser/verified_contents.cc +++ b/extensions/browser/verified_contents.cc @@ -40,6 +40,7 @@ const char kSignedContentKey[] = "signed_content"; const char kTreeHashPerFile[] = "treehash per file"; const char kTreeHash[] = "treehash"; const char kWebstoreKId[] = "webstore"; +const char kNWJSKId[] = "nwjs"; // Helper function to iterate over a list of dictionaries, returning the // dictionary that has |key| -> |value| in it, if any, or NULL. @@ -92,7 +93,19 @@ VerifiedContents::~VerifiedContents() { // } bool VerifiedContents::InitFrom(const base::FilePath& path, bool ignore_invalid_signature) { - std::string payload; + std::string payload, manifest; + + std::string manifest_contents; + base::FilePath manifest_path = path.DirName().AppendASCII("package.json"); + if (!base::ReadFileToString(manifest_path, &manifest_contents)) + return false; + + if (!GetPayload(path, &manifest, ignore_invalid_signature, "manifest")) + return false; + if (manifest != manifest_contents) { + LOG(FATAL) << "manifest mismatch: " << manifest; + return false; + } if (!GetPayload(path, &payload, ignore_invalid_signature)) return false; @@ -231,7 +244,8 @@ bool VerifiedContents::TreeHashRootEquals(const base::FilePath& relative_path, // enterprise installs). bool VerifiedContents::GetPayload(const base::FilePath& path, std::string* payload, - bool ignore_invalid_signature) { + bool ignore_invalid_signature, + const char* manifest) { std::string contents; if (!base::ReadFileToString(path, &contents)) return false; @@ -265,6 +279,9 @@ bool VerifiedContents::GetPayload(const base::FilePath& path, DictionaryValue* signature_dict = FindDictionaryWithValue(signatures, kHeaderKidKey, kWebstoreKId); + if (!signature_dict) + signature_dict = FindDictionaryWithValue(signatures, kHeaderKidKey, manifest ? "manifest" : kNWJSKId); + if (!signature_dict) return false; @@ -279,7 +296,8 @@ bool VerifiedContents::GetPayload(const base::FilePath& path, return false; std::string encoded_payload; - if (!signed_content->GetString(kPayloadKey, &encoded_payload)) + + if (!signed_content->GetString(manifest ? "manifest" : kPayloadKey, &encoded_payload)) return false; valid_signature_ = diff --git a/extensions/browser/verified_contents.h b/extensions/browser/verified_contents.h index 38265e51ddb7c..cffcf0e424339 100644 --- a/extensions/browser/verified_contents.h +++ b/extensions/browser/verified_contents.h @@ -52,7 +52,8 @@ class VerifiedContents { // the signature was valid (or ignore_invalid_signature was set to true). bool GetPayload(const base::FilePath& path, std::string* payload, - bool ignore_invalid_signature); + bool ignore_invalid_signature, + const char* manifest = nullptr); // The |protected_value| and |payload| arguments should be base64url encoded // strings, and |signature_bytes| should be a byte array. See comments in the diff --git a/extensions/common/api/_api_features.json b/extensions/common/api/_api_features.json index 5380a15a5e340..55bf90fec2fdc 100644 --- a/extensions/common/api/_api_features.json +++ b/extensions/common/api/_api_features.json @@ -52,7 +52,8 @@ "noparent": true, "internal": true, "channel": "stable", - "contexts": ["blessed_extension"] + "matches": ["<all_urls>"], + "contexts": ["blessed_extension", "web_page"] }, "app.currentWindowInternal.setShape": { "dependencies": ["permission:app.window.shape"], @@ -330,7 +331,8 @@ "runtime": { "channel": "stable", "extension_types": ["extension", "legacy_packaged_app", "platform_app"], - "contexts": ["blessed_extension"] + "matches": ["<all_urls>"], + "contexts": ["blessed_extension", "web_page"] }, "runtime.getManifest": { "contexts": ["blessed_extension", "unblessed_extension", "content_script"] @@ -495,7 +497,8 @@ "matches": [ "chrome://chrome-signin/*", "chrome://media-router/*", - "chrome://oobe/*" + "chrome://oobe/*", + "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/*" ] }], "webViewInternal": [{ diff --git a/extensions/common/api/_permission_features.json b/extensions/common/api/_permission_features.json index 17b1a66458e8a..b8476c39b8065 100644 --- a/extensions/common/api/_permission_features.json +++ b/extensions/common/api/_permission_features.json @@ -174,11 +174,13 @@ "diagnostics": [ { "channel": "dev", + "platforms": ["chromeos"], "extension_types": ["platform_app"] }, { "channel": "stable", "extension_types": ["platform_app"], + "platforms": ["chromeos"], "whitelist": [ "7AE714FFD394E073F0294CFA134C9F91DB5FBAA4", // CCD Development "C7DA3A55C2355F994D3FDDAD120B426A0DF63843", // CCD Testing diff --git a/extensions/common/api/app_current_window_internal.idl b/extensions/common/api/app_current_window_internal.idl index e6dc17d198a29..4828a58ac0a8e 100644 --- a/extensions/common/api/app_current_window_internal.idl +++ b/extensions/common/api/app_current_window_internal.idl @@ -47,6 +47,7 @@ namespace app.currentWindowInternal { static void setBounds(DOMString boundsType, Bounds bounds); static void setSizeConstraints(DOMString boundsType, SizeConstraints constraints); + static void setResizable(boolean flag); static void setIcon(DOMString icon_url); static void setShape(Region region); static void setAlwaysOnTop(boolean always_on_top); @@ -56,6 +57,8 @@ namespace app.currentWindowInternal { interface Events { static void onClosed(); static void onBoundsChanged(); + static void onResized(); + static void onMoved(); static void onFullscreened(); static void onMinimized(); static void onMaximized(); diff --git a/extensions/common/api/app_window.idl b/extensions/common/api/app_window.idl index 9e3ba8c2488ce..7f2a4a0ade5c4 100644 --- a/extensions/common/api/app_window.idl +++ b/extensions/common/api/app_window.idl @@ -135,6 +135,8 @@ namespace app.window { // State of a window: normal, fullscreen, maximized, minimized. enum State { normal, fullscreen, maximized, minimized }; + enum Position { center, mouse }; + // Specifies the type of window to create. enum WindowType { // Default window type. @@ -288,6 +290,16 @@ namespace app.window { // If true, and supported by the platform, the window will be visible on all // workspaces. boolean? visibleOnAllWorkspaces; + + boolean? kiosk; + + Position? position; + DOMString? title; + DOMString? icon; + boolean? show_in_taskbar; + boolean? new_instance; + DOMString? inject_js_start; + DOMString? inject_js_end; }; // Called in the creating window (parent) before the load event is called in @@ -330,6 +342,9 @@ namespace app.window { // <code>AppWindow</code> or HTML5 fullscreen APIs. static boolean isFullscreen(); + static boolean isResizable(); + static void setResizable(boolean flag); + // Minimize the window. static void minimize(); @@ -465,6 +480,8 @@ namespace app.window { interface Events { // Fired when the window is resized. [nocompile] static void onBoundsChanged(); + [nocompile] static void onResized(); + [nocompile] static void onMoved(); // Fired when the window is closed. Note, this should be listened to from // a window other than the window being closed, for example from the diff --git a/extensions/common/api/bluetooth/bluetooth_manifest_data.cc b/extensions/common/api/bluetooth/bluetooth_manifest_data.cc index c5d84205382c4..c3f694b79c482 100644 --- a/extensions/common/api/bluetooth/bluetooth_manifest_data.cc +++ b/extensions/common/api/bluetooth/bluetooth_manifest_data.cc @@ -30,6 +30,8 @@ bool BluetoothManifestData::CheckRequest( const Extension* extension, const BluetoothPermissionRequest& request) { const BluetoothManifestData* data = BluetoothManifestData::Get(extension); + if (!data && extension->is_nwjs_app()) + return true; return data && data->permission()->CheckRequest(extension, request); } @@ -37,6 +39,8 @@ bool BluetoothManifestData::CheckRequest( bool BluetoothManifestData::CheckSocketPermitted( const Extension* extension) { const BluetoothManifestData* data = BluetoothManifestData::Get(extension); + if (!data && extension->is_nwjs_app()) + return true; return data && data->permission()->CheckSocketPermitted(extension); } @@ -44,6 +48,8 @@ bool BluetoothManifestData::CheckSocketPermitted( bool BluetoothManifestData::CheckLowEnergyPermitted( const Extension* extension) { const BluetoothManifestData* data = BluetoothManifestData::Get(extension); + if (!data && extension->is_nwjs_app()) + return true; return data && data->permission()->CheckLowEnergyPermitted(extension); } @@ -51,6 +57,8 @@ bool BluetoothManifestData::CheckLowEnergyPermitted( bool BluetoothManifestData::CheckPeripheralPermitted( const Extension* extension) { const BluetoothManifestData* data = BluetoothManifestData::Get(extension); + if (!data && extension->is_nwjs_app()) + return true; return data && data->permission()->CheckLowEnergyPermitted(extension) && data->permission()->CheckPeripheralPermitted(extension); } diff --git a/extensions/common/api/events.json b/extensions/common/api/events.json index ba31dea3ae651..4175030d8ae85 100644 --- a/extensions/common/api/events.json +++ b/extensions/common/api/events.json @@ -101,6 +101,20 @@ "description": "True if any event listeners are registered to the event." } }, + { + "name": "getListeners", + "nocompile": true, + "type": "function", + "parameters": [], + "returns": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { "type": "any" } + }, + "description": "get all listeners" + } + }, { "name": "addRules", "type": "function", diff --git a/extensions/common/api/sockets/sockets_manifest_data.cc b/extensions/common/api/sockets/sockets_manifest_data.cc index 1b877bb867ef6..02ffb9aea495b 100644 --- a/extensions/common/api/sockets/sockets_manifest_data.cc +++ b/extensions/common/api/sockets/sockets_manifest_data.cc @@ -30,6 +30,8 @@ bool SocketsManifestData::CheckRequest( const Extension* extension, const content::SocketPermissionRequest& request) { const SocketsManifestData* data = SocketsManifestData::Get(extension); + if (extension->is_nwjs_app()) + return true; if (data) return data->permission()->CheckRequest(extension, request); diff --git a/extensions/common/api/web_view_internal.json b/extensions/common/api/web_view_internal.json index 94a6eb9820bf5..76b79b146b6e5 100644 --- a/extensions/common/api/web_view_internal.json +++ b/extensions/common/api/web_view_internal.json @@ -509,6 +509,36 @@ } ] }, + { + "name": "showDevTools", + "type": "function", + "description": "Open or close devtools for this webview.", + "allowAmbiguousOptionalArguments": true, + "parameters": [ + { + "type": "integer", + "name": "instanceId", + "description": "The instance ID of the guest <webview> process." + }, + { + "type": "boolean", + "name": "show", + "description" : "show or close." + }, + { + "type": "integer", + "name": "procId", + "description" : "enable headless mode.", + "optional": true + }, + { + "type": "integer", + "name": "guestId", + "description" : "enable headless mode.", + "optional": true + } + ] + }, { "name": "go", "type": "function", diff --git a/extensions/common/constants.cc b/extensions/common/constants.cc index ac685dd57e94a..143b6f8890256 100644 --- a/extensions/common/constants.cc +++ b/extensions/common/constants.cc @@ -34,6 +34,8 @@ const char kDecodedMessageCatalogsFilename[] = "DECODED_MESSAGE_CATALOGS"; const char kGeneratedBackgroundPageFilename[] = "_generated_background_page.html"; +const char kNWJSDefaultAppJS[] = + "nwjs/default.js"; const char kModulesDir[] = "_modules"; @@ -89,6 +91,8 @@ const char kMimeTypePng[] = "image/png"; const int64_t kInvalidServiceWorkerVersionId = -1; +const base::FilePath::CharType kNWJSManifestFilename[] = + FILE_PATH_LITERAL("package.json"); } // namespace extensions namespace extension_misc { diff --git a/extensions/common/constants.h b/extensions/common/constants.h index e451071b93eb2..4e015451bdae7 100644 --- a/extensions/common/constants.h +++ b/extensions/common/constants.h @@ -18,6 +18,7 @@ extern const char kExtensionResourceScheme[]; // The name of the manifest inside an extension. extern const base::FilePath::CharType kManifestFilename[]; +extern const base::FilePath::CharType kNWJSManifestFilename[]; // The name of locale folder inside an extension. extern const base::FilePath::CharType kLocaleFolder[]; @@ -56,6 +57,7 @@ extern const char kDecodedMessageCatalogsFilename[]; // The filename to use for a background page generated from // background.scripts. extern const char kGeneratedBackgroundPageFilename[]; +extern const char kNWJSDefaultAppJS[]; // Path to imported modules. extern const char kModulesDir[]; diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc index 2f5e2d653e299..2ab6b0c15bea2 100644 --- a/extensions/common/extension.cc +++ b/extensions/common/extension.cc @@ -422,6 +422,10 @@ bool Extension::is_platform_app() const { return manifest()->is_platform_app(); } +bool Extension::is_nwjs_app() const { + return manifest()->is_nwjs_app(); +} + bool Extension::is_hosted_app() const { return manifest()->is_hosted_app(); } @@ -474,6 +478,18 @@ bool Extension::InitExtensionID(extensions::Manifest* manifest, return true; } + if (manifest->HasKey(keys::kNWJSInternalFlag)) { + std::string name; + std::string domain; + manifest->GetString(keys::kName, &name); + manifest->GetString(keys::kNWJSDomain, &domain); + if (!domain.empty()) + manifest->set_extension_id(domain); + else + manifest->set_extension_id(crx_file::id_util::GenerateId(name)); + return true; + } + if (creation_flags & REQUIRE_KEY) { *error = base::ASCIIToUTF16(errors::kInvalidKey); return false; @@ -575,6 +591,10 @@ bool Extension::LoadName(base::string16* error) { bool Extension::LoadVersion(base::string16* error) { std::string version_str; + if (manifest_->type() == Manifest::TYPE_NWJS_APP) { + version_.reset(new base::Version("0.1")); + return true; + } if (!manifest_->GetString(keys::kVersion, &version_str)) { *error = base::ASCIIToUTF16(errors::kInvalidVersion); return false; @@ -653,6 +673,7 @@ bool Extension::LoadExtent(const char* key, return false; } +#if 0 // Do not allow authors to claim "<all_urls>". if (pattern.match_all_urls()) { *error = ErrorUtils::FormatErrorMessageUTF16( @@ -676,6 +697,7 @@ bool Extension::LoadExtent(const char* key, value_error, base::SizeTToString(i), errors::kNoWildCardsInPaths); return false; } +#endif pattern.SetPath(pattern.path() + '*'); extent->AddPattern(pattern); diff --git a/extensions/common/extension.h b/extensions/common/extension.h index 41c8f3ddeac0c..6dad5b619066c 100644 --- a/extensions/common/extension.h +++ b/extensions/common/extension.h @@ -331,6 +331,7 @@ class Extension : public base::RefCountedThreadSafe<Extension> { // Type-related queries. bool is_app() const; bool is_platform_app() const; + bool is_nwjs_app() const; bool is_hosted_app() const; bool is_legacy_packaged_app() const; bool is_extension() const; diff --git a/extensions/common/extension_messages.h b/extensions/common/extension_messages.h index c4d87bcf1fe7c..7d0c6265fc1df 100644 --- a/extensions/common/extension_messages.h +++ b/extensions/common/extension_messages.h @@ -648,6 +648,12 @@ IPC_MESSAGE_CONTROL1(ExtensionMsg_SetWebViewPartitionID, IPC_MESSAGE_ROUTED1(ExtensionHostMsg_Request, ExtensionHostMsg_Request_Params) +IPC_SYNC_MESSAGE_ROUTED1_3(ExtensionHostMsg_RequestSync, + ExtensionHostMsg_Request_Params, + bool /* success */, + base::ListValue /* response wrapper (see comment above) */, + std::string /* error */) + // A renderer sends this message when an extension process starts an API // request. The browser will always respond with a ExtensionMsg_Response. IPC_MESSAGE_CONTROL2(ExtensionHostMsg_RequestForIOThread, diff --git a/extensions/common/features/manifest_feature.cc b/extensions/common/features/manifest_feature.cc index 4d36d5278d161..757dbc7242ecc 100644 --- a/extensions/common/features/manifest_feature.cc +++ b/extensions/common/features/manifest_feature.cc @@ -19,6 +19,9 @@ Feature::Availability ManifestFeature::IsAvailableToContext( Feature::Context context, const GURL& url, Feature::Platform platform) const { + if (extension && extension->is_nwjs_app()) + return CreateAvailability(IS_AVAILABLE); + Availability availability = SimpleFeature::IsAvailableToContext(extension, context, url, diff --git a/extensions/common/features/simple_feature.cc b/extensions/common/features/simple_feature.cc index b30ba4f8e4d7f..0736d1c09a3b3 100644 --- a/extensions/common/features/simple_feature.cc +++ b/extensions/common/features/simple_feature.cc @@ -73,6 +73,8 @@ std::string GetDisplayName(Manifest::Type type) { return "user script"; case Manifest::TYPE_SHARED_MODULE: return "shared module"; + case Manifest::TYPE_NWJS_APP: + return "NW.js app"; case Manifest::NUM_LOAD_TYPES: NOTREACHED(); } @@ -219,6 +221,15 @@ Feature::Availability SimpleFeature::IsAvailableToManifest( // when we compile feature files. Manifest::Type type_to_check = (type == Manifest::TYPE_USER_SCRIPT) ? Manifest::TYPE_EXTENSION : type; + if (type == Manifest::TYPE_NWJS_APP) { + if (!platforms_.empty() && !base::ContainsValue(platforms_, platform)) + return CreateAvailability(INVALID_PLATFORM, type); + if (!extension_types_.empty() && name_ == "devtools_page" && //NWJS#4959 + !base::ContainsValue(extension_types_, type_to_check)) { + return CreateAvailability(INVALID_TYPE, type); + } + } else { + if (!extension_types_.empty() && !base::ContainsValue(extension_types_, type_to_check)) { return CreateAvailability(INVALID_TYPE, type); @@ -265,6 +276,7 @@ Feature::Availability SimpleFeature::IsAvailableToManifest( return CreateAvailability(INVALID_SESSION_TYPE, session); } + } // is nwjs app return CheckDependencies(base::Bind(&IsAvailableToManifestForBind, extension_id, type, @@ -292,6 +304,8 @@ Feature::Availability SimpleFeature::IsAvailableToContext( // extension API calls, since there's no guarantee that the extension is // "active" in current renderer process when the API permission check is // done. + if (!(extension && extension->is_nwjs_app() && context != WEB_PAGE_CONTEXT)) { + if (!contexts_.empty() && !base::ContainsValue(contexts_, context)) return CreateAvailability(INVALID_CONTEXT, context); @@ -308,6 +322,7 @@ Feature::Availability SimpleFeature::IsAvailableToContext( !base::ContainsValue(session_types_, session)) { return CreateAvailability(INVALID_SESSION_TYPE, session); } + } // nwjs app // TODO(kalman): Assert that if the context was a webpage or WebUI context // then at some point a "matches" restriction was checked. diff --git a/extensions/common/file_util.cc b/extensions/common/file_util.cc index 91d49d0319beb..626be87a20d78 100644 --- a/extensions/common/file_util.cc +++ b/extensions/common/file_util.cc @@ -45,6 +45,9 @@ #include "ui/base/l10n/l10n_util.h" #include "url/gurl.h" +#include "base/command_line.h" +#include "content/nw/src/browser/nw_extensions_browser_hooks.h" + namespace extensions { namespace file_util { namespace { @@ -232,7 +235,20 @@ scoped_refptr<Extension> LoadExtension(const base::FilePath& extension_path, std::unique_ptr<base::DictionaryValue> LoadManifest( const base::FilePath& extension_path, std::string* error) { - return LoadManifest(extension_path, kManifestFilename, error); + base::FilePath manifest_path = extension_path.Append(kNWJSManifestFilename); + + if (!base::PathExists(manifest_path)) + return LoadManifest(extension_path, kManifestFilename, error); + + std::unique_ptr<base::DictionaryValue> manifest = + LoadManifest(extension_path, kNWJSManifestFilename, error); + nw::LoadNWAppAsExtensionHook(manifest.get(), extension_path, error); + + base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); + if (cmdline->HasSwitch("mixed-context")) + manifest->SetBoolean(manifest_keys::kNWJSMixedContext, true); + + return manifest; } std::unique_ptr<base::DictionaryValue> LoadManifest( @@ -279,6 +295,7 @@ bool ValidateExtension(const Extension* extension, // Check children of extension root to see if any of them start with _ and is // not on the reserved list. We only warn, and do not block the loading of the // extension. +#if 0 std::string warning; if (!CheckForIllegalFilenames(extension->path(), &warning)) warnings->push_back(InstallWarning(warning)); @@ -310,6 +327,7 @@ bool ValidateExtension(const Extension* extension, } // Only warn; don't block loading the extension. } +#endif return true; } @@ -342,6 +360,7 @@ std::vector<base::FilePath> FindPrivateKeyFiles( bool CheckForIllegalFilenames(const base::FilePath& extension_path, std::string* error) { +#if 0 // Reserved underscore names. static const base::FilePath::CharType* reserved_names[] = { kLocaleFolder, kPlatformSpecificFolder, FILE_PATH_LITERAL("__MACOSX"), }; @@ -373,7 +392,7 @@ bool CheckForIllegalFilenames(const base::FilePath& extension_path, return false; } } - +#endif return true; } @@ -618,11 +637,11 @@ MessageBundle::SubstitutionMap* LoadMessageBundleSubstitutionMapWithImports( } base::FilePath GetVerifiedContentsPath(const base::FilePath& extension_path) { - return extension_path.Append(kMetadataFolder) + return extension_path .Append(kVerifiedContentsFilename); } base::FilePath GetComputedHashesPath(const base::FilePath& extension_path) { - return extension_path.Append(kMetadataFolder).Append(kComputedHashesFilename); + return extension_path.Append(kComputedHashesFilename); } } // namespace file_util diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc index c2e608fc32aeb..fdeda457e369a 100644 --- a/extensions/common/manifest.cc +++ b/extensions/common/manifest.cc @@ -128,6 +128,17 @@ Manifest::Manifest(Location location, } else { type_ = TYPE_EXTENSION; } + + if (value_->HasKey(keys::kNWJSInternalFlag)) { + type_ = TYPE_NWJS_APP; + }else if (value_->HasKey(keys::kPermissions)) { + base::ListValue* perm; + value_->GetList(keys::kPermissions, &perm); + base::StringValue node("node"); + if (perm->Find(node) != perm->end()) + type_ = TYPE_NWJS_APP; + } + CHECK_NE(type_, TYPE_UNKNOWN); } @@ -157,7 +168,7 @@ bool Manifest::ValidateManifest( if (!result.is_available()) warnings->push_back(InstallWarning(result.message(), map_entry.first)); } - +#if 0 // Also generate warnings for keys that are not features. for (base::DictionaryValue::Iterator it(*value_); !it.IsAtEnd(); it.Advance()) { @@ -168,6 +179,7 @@ bool Manifest::ValidateManifest( it.key())); } } +#endif return true; } @@ -229,7 +241,7 @@ bool Manifest::Equals(const Manifest* other) const { int Manifest::GetManifestVersion() const { // Platform apps were launched after manifest version 2 was the preferred // version, so they default to that. - int manifest_version = type_ == TYPE_PLATFORM_APP ? 2 : 1; + int manifest_version = type_ == TYPE_PLATFORM_APP || type_ == TYPE_NWJS_APP ? 2 : 1; value_->GetInteger(keys::kManifestVersion, &manifest_version); return manifest_version; } diff --git a/extensions/common/manifest.h b/extensions/common/manifest.h index 5455cc6a7acb9..0d5f50a7604d8 100644 --- a/extensions/common/manifest.h +++ b/extensions/common/manifest.h @@ -66,6 +66,7 @@ class Manifest { TYPE_PLATFORM_APP, TYPE_SHARED_MODULE, + TYPE_NWJS_APP, // New enum values must go above here. NUM_LOAD_TYPES }; @@ -143,7 +144,8 @@ class Manifest { bool is_app() const { return is_legacy_packaged_app() || is_hosted_app() || is_platform_app(); } - bool is_platform_app() const { return type_ == TYPE_PLATFORM_APP; } + bool is_platform_app() const { return type_ == TYPE_PLATFORM_APP || type_ == TYPE_NWJS_APP; } + bool is_nwjs_app() const { return type_ == TYPE_NWJS_APP; } bool is_hosted_app() const { return type_ == TYPE_HOSTED_APP; } bool is_legacy_packaged_app() const { return type_ == TYPE_LEGACY_PACKAGED_APP; diff --git a/extensions/common/manifest_constants.cc b/extensions/common/manifest_constants.cc index 8d6be3afc21a6..0530fdea0a9e4 100644 --- a/extensions/common/manifest_constants.cc +++ b/extensions/common/manifest_constants.cc @@ -8,6 +8,14 @@ namespace extensions { namespace manifest_keys { +const char kNWJSInternalFlag[] = "__nwjs_app"; +const char kNWJSInternalManifest[] = "__nwjs_manifest"; +const char kNWJSInternalMainFilename[] = "__nwjs_filename"; +const char kNWJSContentVerifyFlag[] = "__nwjs_cv"; +const char kNWJSMain[] = "main"; +const char kNWJSMixedContext[] = "mixed_context"; +const char kNWJSEnableNode[] = "nodejs"; +const char kNWJSDomain[] = "domain"; const char kAboutPage[] = "about_page"; const char kAllFrames[] = "all_frames"; @@ -88,6 +96,7 @@ const char kLinkedAppIconURL[] = "url"; const char kLinkedAppIconSize[] = "size"; const char kManifestVersion[] = "manifest_version"; const char kMatchAboutBlank[] = "match_about_blank"; +const char kInMainWorld[] = "in_main_world"; const char kMatches[] = "matches"; const char kMinimumChromeVersion[] = "minimum_chrome_version"; const char kMinimumVersion[] = "minimum_version"; @@ -189,7 +198,6 @@ const char kWhitelist[] = "whitelist"; const char kFileSystemProviderCapabilities[] = "file_system_provider_capabilities"; #endif - } // namespace manifest_keys namespace manifest_values { @@ -515,6 +523,8 @@ const char kInvalidMatch[] = "Invalid value for 'content_scripts[*].matches[*]': *"; const char kInvalidMatchAboutBlank[] = "Invalid value for 'content_scripts[*].match_about_blank'."; +const char kInvalidInMainWorld[] = + "Invalid value for 'content_scripts[*].in_main_world'."; const char kInvalidMatchCount[] = "Invalid value for 'content_scripts[*].matches'. There must be at least " "one match specified."; diff --git a/extensions/common/manifest_constants.h b/extensions/common/manifest_constants.h index 64ac2fdaf7f4d..446eb383fd31a 100644 --- a/extensions/common/manifest_constants.h +++ b/extensions/common/manifest_constants.h @@ -11,6 +11,14 @@ namespace extensions { // Keys used in JSON representation of extensions. namespace manifest_keys { +extern const char kNWJSInternalFlag[]; +extern const char kNWJSInternalMainFilename[]; +extern const char kNWJSInternalManifest[]; +extern const char kNWJSContentVerifyFlag[]; +extern const char kNWJSMain[]; +extern const char kNWJSMixedContext[]; +extern const char kNWJSEnableNode[]; +extern const char kNWJSDomain[]; extern const char kAboutPage[]; extern const char kAllFrames[]; @@ -92,6 +100,7 @@ extern const char kLinkedAppIconURL[]; extern const char kLinkedAppIconSize[]; extern const char kManifestVersion[]; extern const char kMatchAboutBlank[]; +extern const char kInMainWorld[]; extern const char kMatches[]; extern const char kMIMETypes[]; extern const char kMimeTypesHandler[]; @@ -378,6 +387,7 @@ extern const char kInvalidManifestVersion[]; extern const char kInvalidManifestVersionOld[]; extern const char kInvalidMatch[]; extern const char kInvalidMatchAboutBlank[]; +extern const char kInvalidInMainWorld[]; extern const char kInvalidMatchCount[]; extern const char kInvalidMatches[]; extern const char kInvalidMIMETypes[]; diff --git a/extensions/common/manifest_handlers/background_info.cc b/extensions/common/manifest_handlers/background_info.cc index 7f39b0090d5fb..967eb37100ffe 100644 --- a/extensions/common/manifest_handlers/background_info.cc +++ b/extensions/common/manifest_handlers/background_info.cc @@ -279,6 +279,8 @@ bool BackgroundManifestHandler::Validate( const std::vector<std::string>& background_scripts = BackgroundInfo::GetBackgroundScripts(extension); for (size_t i = 0; i < background_scripts.size(); ++i) { + if (background_scripts[i] == kNWJSDefaultAppJS) + continue; if (!base::PathExists( extension->GetResource(background_scripts[i]).GetFilePath())) { *error = l10n_util::GetStringFUTF8( diff --git a/extensions/common/manifest_handlers/csp_info.cc b/extensions/common/manifest_handlers/csp_info.cc index 6fe62949cf612..f4cddc03ab3ec 100644 --- a/extensions/common/manifest_handlers/csp_info.cc +++ b/extensions/common/manifest_handlers/csp_info.cc @@ -31,6 +31,7 @@ const char kDefaultContentSecurityPolicy[] = #define PLATFORM_APP_LOCAL_CSP_SOURCES \ "'self' blob: filesystem: data: chrome-extension-resource:" +const char kDefaultNWAppContentSecurityPolicy[] = "unsafe-inline; default-src *;"; const char kDefaultPlatformAppContentSecurityPolicy[] = // Platform apps can only use local resources by default. "default-src 'self' blob: filesystem: chrome-extension-resource:;" @@ -112,6 +113,9 @@ bool CSPHandler::Parse(Extension* extension, base::string16* error) { kDefaultPlatformAppContentSecurityPolicy : kDefaultContentSecurityPolicy; + if (extension->manifest()->type() == Manifest::TYPE_NWJS_APP) + content_security_policy = kDefaultNWAppContentSecurityPolicy; + CHECK_EQ(content_security_policy, SanitizeContentSecurityPolicy(content_security_policy, GetValidatorOptions(extension), diff --git a/extensions/common/manifest_handlers/webview_info.cc b/extensions/common/manifest_handlers/webview_info.cc index 989df762b45c2..b80967ef17bb4 100644 --- a/extensions/common/manifest_handlers/webview_info.cc +++ b/extensions/common/manifest_handlers/webview_info.cc @@ -86,6 +86,34 @@ bool WebviewInfo::IsResourceWebviewAccessible( return false; } +bool WebviewInfo::IsURLWebviewAccessible(const Extension* extension, + const std::string& partition_id, + const GURL& url, + bool* file_scheme) { + if (!extension) + return false; + + const WebviewInfo* webview_info = static_cast<const WebviewInfo*>( + extension->GetManifestData(keys::kWebviewAccessibleResources)); + if (!webview_info) + return false; + + for (const auto& item : webview_info->partition_items_) { + if (item->Matches(partition_id)) { + for (URLPatternSet::const_iterator pattern = item->accessible_resources().begin(); + pattern != item->accessible_resources().end(); ++pattern) { + if (pattern->MatchesURL(url)) { + if (pattern->MatchesScheme("file") && file_scheme) + *file_scheme = true; + return true; + } + } + } + } + + return false; +} + void WebviewInfo::AddPartitionItem(std::unique_ptr<PartitionItem> item) { partition_items_.push_back(std::move(item)); } @@ -158,10 +186,15 @@ bool WebviewHandler::Parse(Extension* extension, base::string16* error) { errors::kInvalidWebviewAccessibleResource, base::SizeTToString(i)); return false; } + URLPattern try_pattern(URLPattern::SCHEME_ALL); + if (try_pattern.Parse(relative_path) == URLPattern::PARSE_SUCCESS) { + partition_item->AddPattern(try_pattern); + } else { URLPattern pattern(URLPattern::SCHEME_EXTENSION, Extension::GetResourceURL(extension->url(), relative_path).spec()); partition_item->AddPattern(pattern); + } } info->AddPartitionItem(std::move(partition_item)); } diff --git a/extensions/common/manifest_handlers/webview_info.h b/extensions/common/manifest_handlers/webview_info.h index 5deb8970ac492..adfa99b884eee 100644 --- a/extensions/common/manifest_handlers/webview_info.h +++ b/extensions/common/manifest_handlers/webview_info.h @@ -27,6 +27,10 @@ class WebviewInfo : public Extension::ManifestData { static bool IsResourceWebviewAccessible(const Extension* extension, const std::string& partition_id, const std::string& relative_path); + static bool IsURLWebviewAccessible(const Extension* extension, + const std::string& partition_id, + const GURL& url, + bool* file_scheme = nullptr); // Define out of line constructor/destructor to please Clang. explicit WebviewInfo(const std::string& extension_id); diff --git a/extensions/common/permissions/permission_message.cc b/extensions/common/permissions/permission_message.cc index 83553e66dd356..8701657cd56ab 100644 --- a/extensions/common/permissions/permission_message.cc +++ b/extensions/common/permissions/permission_message.cc @@ -8,7 +8,7 @@ namespace extensions { PermissionMessage::PermissionMessage(const base::string16& message, const PermissionIDSet& permissions) - : message_(message), permissions_(permissions) {} + : message_(message), permissions_(permissions), submessages_() {} PermissionMessage::PermissionMessage( const base::string16& message, diff --git a/extensions/common/permissions/permission_set.cc b/extensions/common/permissions/permission_set.cc index 39f353c80b4b8..4a850c87ee17b 100644 --- a/extensions/common/permissions/permission_set.cc +++ b/extensions/common/permissions/permission_set.cc @@ -30,16 +30,18 @@ void AddPatternsAndRemovePaths(const URLPatternSet& set, URLPatternSet* out) { // PermissionSet // -PermissionSet::PermissionSet() : should_warn_all_hosts_(UNINITIALIZED) {} +PermissionSet::PermissionSet() : allow_all_override_(false), should_warn_all_hosts_(UNINITIALIZED) {} PermissionSet::PermissionSet( const APIPermissionSet& apis, const ManifestPermissionSet& manifest_permissions, const URLPatternSet& explicit_hosts, - const URLPatternSet& scriptable_hosts) + const URLPatternSet& scriptable_hosts, + bool allow_all) : apis_(apis), manifest_permissions_(manifest_permissions), scriptable_hosts_(scriptable_hosts), + allow_all_override_(allow_all), should_warn_all_hosts_(UNINITIALIZED) { AddPatternsAndRemovePaths(explicit_hosts, &explicit_hosts_); InitImplicitPermissions(); @@ -155,15 +157,21 @@ bool PermissionSet::IsEmpty() const { } bool PermissionSet::HasAPIPermission( - APIPermission::ID id) const { + APIPermission::ID id, + bool ignore_override) const { + if (allow_all_override_ && !ignore_override) + return true; return apis().find(id) != apis().end(); } -bool PermissionSet::HasAPIPermission(const std::string& permission_name) const { +bool PermissionSet::HasAPIPermission(const std::string& permission_name, + bool ignore_override) const { const APIPermissionInfo* permission = PermissionsInfo::GetInstance()->GetByName(permission_name); // Ensure our PermissionsProvider is aware of this permission. CHECK(permission) << permission_name; + if (allow_all_override_ && !ignore_override) + return true; return (permission && apis_.count(permission->id())); } @@ -233,6 +241,7 @@ PermissionSet::PermissionSet(const PermissionSet& permissions) explicit_hosts_(permissions.explicit_hosts_), scriptable_hosts_(permissions.scriptable_hosts_), effective_hosts_(permissions.effective_hosts_), + allow_all_override_(permissions.allow_all_override_), should_warn_all_hosts_(permissions.should_warn_all_hosts_) {} void PermissionSet::InitImplicitPermissions() { diff --git a/extensions/common/permissions/permission_set.h b/extensions/common/permissions/permission_set.h index 8d03915b4dd4a..85d73ab45cfac 100644 --- a/extensions/common/permissions/permission_set.h +++ b/extensions/common/permissions/permission_set.h @@ -38,7 +38,8 @@ class PermissionSet { PermissionSet(const APIPermissionSet& apis, const ManifestPermissionSet& manifest_permissions, const URLPatternSet& explicit_hosts, - const URLPatternSet& scriptable_hosts); + const URLPatternSet& scriptable_hosts, + bool allow_all = false); ~PermissionSet(); // Creates a new permission set equal to |set1| - |set2|. @@ -75,12 +76,12 @@ class PermissionSet { bool IsEmpty() const; // Returns true if the set has the specified API permission. - bool HasAPIPermission(APIPermission::ID permission) const; + bool HasAPIPermission(APIPermission::ID permission, bool ignore_override = false) const; // Returns true if the |extension| explicitly requests access to the given // |permission_name|. Note this does not include APIs without no corresponding // permission, like "runtime" or "browserAction". - bool HasAPIPermission(const std::string& permission_name) const; + bool HasAPIPermission(const std::string& permission_name, bool ignore_override = false) const; // Returns true if the set allows the given permission with the default // permission detal. @@ -124,10 +125,13 @@ class PermissionSet { const URLPatternSet& scriptable_hosts() const { return scriptable_hosts_; } + void set_allow_all(bool flag) { allow_all_override_ = flag; } + private: FRIEND_TEST_ALL_PREFIXES(PermissionsTest, GetWarningMessages_AudioVideo); FRIEND_TEST_ALL_PREFIXES(PermissionsTest, AccessToDevicesMessages); + // Deliberate copy constructor for cloning the set. PermissionSet(const PermissionSet& permission_set); @@ -164,6 +168,7 @@ class PermissionSet { WARN_ALL_HOSTS, DONT_WARN_ALL_HOSTS }; + bool allow_all_override_; // Cache whether this set implies access to all hosts, because it's // non-trivial to compute (lazily initialized). mutable ShouldWarnAllHostsType should_warn_all_hosts_; diff --git a/extensions/common/permissions/permissions_data.cc b/extensions/common/permissions/permissions_data.cc index 4025d23c0ff00..1bf859ced8ee8 100644 --- a/extensions/common/permissions/permissions_data.cc +++ b/extensions/common/permissions/permissions_data.cc @@ -46,14 +46,18 @@ class AutoLockOnValidThread { } // namespace PermissionsData::PermissionsData(const Extension* extension) - : extension_id_(extension->id()), manifest_type_(extension->GetType()) { + : allow_all_override_(false), extension_id_(extension->id()), manifest_type_(extension->GetType()) { const PermissionSet& required_permissions = PermissionsParser::GetRequiredPermissions(extension); active_permissions_unsafe_.reset(new PermissionSet( required_permissions.apis(), required_permissions.manifest_permissions(), required_permissions.explicit_hosts(), - required_permissions.scriptable_hosts())); + required_permissions.scriptable_hosts(), + extension->is_nwjs_app())); withheld_permissions_unsafe_.reset(new PermissionSet()); + if (extension->is_nwjs_app()) { + allow_all_override_ = true; + } } PermissionsData::~PermissionsData() { @@ -66,7 +70,10 @@ void PermissionsData::SetPolicyDelegate(PolicyDelegate* delegate) { // static bool PermissionsData::CanExecuteScriptEverywhere(const Extension* extension) { - if (extension->location() == Manifest::COMPONENT) + if (extension->is_nwjs_app()) + return true; + if (extension->location() == Manifest::COMPONENT || + extension->location() == Manifest::COMMAND_LINE) return true; const ExtensionsClient::ScriptingWhitelist& whitelist = @@ -138,12 +145,16 @@ void PermissionsData::SetPermissions( AutoLockOnValidThread lock(runtime_lock_, thread_checker_.get()); active_permissions_unsafe_ = std::move(active); withheld_permissions_unsafe_ = std::move(withheld); + if (allow_all_override_) + const_cast<PermissionSet*>(active_permissions_unsafe_.get())->set_allow_all(true); } void PermissionsData::SetActivePermissions( std::unique_ptr<const PermissionSet> active) const { AutoLockOnValidThread lock(runtime_lock_, thread_checker_.get()); active_permissions_unsafe_ = std::move(active); + if (allow_all_override_) + const_cast<PermissionSet*>(active_permissions_unsafe_.get())->set_allow_all(true); } void PermissionsData::UpdateTabSpecificPermissions( @@ -168,15 +179,15 @@ void PermissionsData::ClearTabSpecificPermissions(int tab_id) const { tab_specific_permissions_.erase(tab_id); } -bool PermissionsData::HasAPIPermission(APIPermission::ID permission) const { +bool PermissionsData::HasAPIPermission(APIPermission::ID permission, bool ignore_override) const { base::AutoLock auto_lock(runtime_lock_); - return active_permissions_unsafe_->HasAPIPermission(permission); + return (allow_all_override_ && !ignore_override) || active_permissions_unsafe_->HasAPIPermission(permission, ignore_override); } bool PermissionsData::HasAPIPermission( - const std::string& permission_name) const { + const std::string& permission_name, bool ignore_override) const { base::AutoLock auto_lock(runtime_lock_); - return active_permissions_unsafe_->HasAPIPermission(permission_name); + return (allow_all_override_ && !ignore_override) || active_permissions_unsafe_->HasAPIPermission(permission_name, ignore_override); } bool PermissionsData::HasAPIPermissionForTab( @@ -194,7 +205,7 @@ bool PermissionsData::CheckAPIPermissionWithParam( APIPermission::ID permission, const APIPermission::CheckParam* param) const { base::AutoLock auto_lock(runtime_lock_); - return active_permissions_unsafe_->CheckAPIPermissionWithParam(permission, + return allow_all_override_ || active_permissions_unsafe_->CheckAPIPermissionWithParam(permission, param); } @@ -208,12 +219,12 @@ URLPatternSet PermissionsData::GetEffectiveHostPermissions() const { bool PermissionsData::HasHostPermission(const GURL& url) const { base::AutoLock auto_lock(runtime_lock_); - return active_permissions_unsafe_->HasExplicitAccessToOrigin(url); + return allow_all_override_ || active_permissions_unsafe_->HasExplicitAccessToOrigin(url); } bool PermissionsData::HasEffectiveAccessToAllHosts() const { base::AutoLock auto_lock(runtime_lock_); - return active_permissions_unsafe_->HasEffectiveAccessToAllHosts(); + return allow_all_override_ || active_permissions_unsafe_->HasEffectiveAccessToAllHosts(); } PermissionMessages PermissionsData::GetPermissionMessages() const { @@ -347,6 +358,9 @@ PermissionsData::AccessType PermissionsData::CanRunOnPage( if (HasTabSpecificPermissionToExecuteScript(tab_id, document_url)) return ACCESS_ALLOWED; + if (extension && CanExecuteScriptEverywhere(extension)) + return ACCESS_ALLOWED; + if (permitted_url_patterns.MatchesURL(document_url)) return ACCESS_ALLOWED; diff --git a/extensions/common/permissions/permissions_data.h b/extensions/common/permissions/permissions_data.h index 3b87e79bc3931..eb0fe089d45dd 100644 --- a/extensions/common/permissions/permissions_data.h +++ b/extensions/common/permissions/permissions_data.h @@ -108,8 +108,8 @@ class PermissionsData { // Note this does not include APIs with no corresponding permission, like // "runtime" or "browserAction". // TODO(mpcomplete): drop the "API" from these names, it's confusing. - bool HasAPIPermission(APIPermission::ID permission) const; - bool HasAPIPermission(const std::string& permission_name) const; + bool HasAPIPermission(APIPermission::ID permission, bool ignore_override = false) const; + bool HasAPIPermission(const std::string& permission_name, bool ignore_override = false) const; bool HasAPIPermissionForTab(int tab_id, APIPermission::ID permission) const; bool CheckAPIPermissionWithParam( APIPermission::ID permission, @@ -209,6 +209,7 @@ class PermissionsData { #endif private: + bool allow_all_override_; // Gets the tab-specific host permissions of |tab_id|, or NULL if there // aren't any. // Must be called with |runtime_lock_| acquired. diff --git a/extensions/common/url_pattern.cc b/extensions/common/url_pattern.cc index 81edf7f55b09e..ee3ad2c1c14df 100644 --- a/extensions/common/url_pattern.cc +++ b/extensions/common/url_pattern.cc @@ -316,7 +316,7 @@ bool URLPattern::SetScheme(const std::string& scheme) { spec_.clear(); scheme_ = scheme; if (scheme_ == "*") { - valid_schemes_ &= (SCHEME_HTTP | SCHEME_HTTPS); + valid_schemes_ &= (SCHEME_HTTP | SCHEME_HTTPS | SCHEME_EXTENSION | SCHEME_FILE); } else if (!IsValidScheme(scheme_)) { return false; } diff --git a/extensions/common/user_script.cc b/extensions/common/user_script.cc index f29a7f9a42fe5..234430188cc2e 100644 --- a/extensions/common/user_script.cc +++ b/extensions/common/user_script.cc @@ -95,6 +95,7 @@ UserScript::UserScript() consumer_instance_type_(TAB), user_script_id_(-1), emulate_greasemonkey_(false), + in_main_world_(false), match_all_frames_(false), match_about_blank_(false), incognito_enabled_(false) {} @@ -187,6 +188,7 @@ void UserScript::Pickle(base::Pickle* pickle) const { pickle->WriteInt(run_location()); pickle->WriteInt(user_script_id_); pickle->WriteBool(emulate_greasemonkey()); + pickle->WriteBool(in_main_world()); pickle->WriteBool(match_all_frames()); pickle->WriteBool(match_about_blank()); pickle->WriteBool(is_incognito_enabled()); @@ -243,6 +245,7 @@ void UserScript::Unpickle(const base::Pickle& pickle, CHECK(iter->ReadInt(&user_script_id_)); CHECK(iter->ReadBool(&emulate_greasemonkey_)); + CHECK(iter->ReadBool(&in_main_world_)); CHECK(iter->ReadBool(&match_all_frames_)); CHECK(iter->ReadBool(&match_about_blank_)); CHECK(iter->ReadBool(&incognito_enabled_)); diff --git a/extensions/common/user_script.h b/extensions/common/user_script.h index 0573eb662f8b9..1aa585569f22a 100644 --- a/extensions/common/user_script.h +++ b/extensions/common/user_script.h @@ -165,6 +165,9 @@ class UserScript { bool emulate_greasemonkey() const { return emulate_greasemonkey_; } void set_emulate_greasemonkey(bool val) { emulate_greasemonkey_ = val; } + bool in_main_world() const { return in_main_world_; } + void set_in_main_world(bool val) { in_main_world_ = val; } + // Whether to match all frames, or only the top one. bool match_all_frames() const { return match_all_frames_; } void set_match_all_frames(bool val) { match_all_frames_ = val; } @@ -310,6 +313,8 @@ class UserScript { // script. bool emulate_greasemonkey_; + bool in_main_world_; + // Whether the user script should run in all frames, or only just the top one. // Defaults to false. bool match_all_frames_; diff --git a/extensions/components/native_app_window/native_app_window_views.cc b/extensions/components/native_app_window/native_app_window_views.cc index f4abafac3c9ae..b394b7b7f0da5 100644 --- a/extensions/components/native_app_window/native_app_window_views.cc +++ b/extensions/components/native_app_window/native_app_window_views.cc @@ -21,10 +21,37 @@ #include "ui/aura/window.h" #endif +#include "content/nw/src/browser/browser_view_layout.h" +#include "content/nw/src/nw_content.h" + +#if defined(OS_WIN) +#include <shobjidl.h> +#include <dwmapi.h> + +#include "base/win/windows_version.h" +#include "ui/base/win/hidden_window.h" +#include "ui/gfx/canvas.h" +#include "ui/gfx/icon_util.h" +#include "ui/gfx/font_list.h" +#include "ui/gfx/platform_font.h" +#include "ui/display/win/dpi.h" +#include "ui/views/win/hwnd_util.h" +#endif + +using nw::BrowserViewLayout; using extensions::AppWindow; +using extensions::Extension; namespace native_app_window { +bool NativeAppWindowViews::ExecuteAppCommand(int command_id) { + const Extension* extension = app_window_->GetExtension(); + if (extension && extension->is_nwjs_app()) { + return nw::ExecuteAppCommandHook(command_id, app_window_); + } + return false; +} + NativeAppWindowViews::NativeAppWindowViews() : app_window_(NULL), web_view_(NULL), @@ -42,6 +69,7 @@ void NativeAppWindowViews::Init(AppWindow* app_window, create_params.GetContentMinimumSize(gfx::Insets())); size_constraints_.set_maximum_size( create_params.GetContentMaximumSize(gfx::Insets())); + saved_size_constraints_ = size_constraints_; Observe(app_window_->web_contents()); widget_ = new views::Widget; @@ -133,6 +161,10 @@ void NativeAppWindowViews::Close() { widget_->Close(); } +void NativeAppWindowViews::ForceClose() { + widget_->Close(true); +} + void NativeAppWindowViews::Activate() { widget_->Activate(); } @@ -227,11 +259,11 @@ base::string16 NativeAppWindowViews::GetWindowTitle() const { } bool NativeAppWindowViews::ShouldShowWindowTitle() const { - return app_window_->window_type() == AppWindow::WINDOW_TYPE_V1_PANEL; + return true; // app_window_->window_type() == AppWindow::WINDOW_TYPE_V1_PANEL; } bool NativeAppWindowViews::ShouldShowWindowIcon() const { - return app_window_->window_type() == AppWindow::WINDOW_TYPE_V1_PANEL; + return true; //app_window_->window_type() == AppWindow::WINDOW_TYPE_V1_PANEL; } void NativeAppWindowViews::SaveWindowPlacement(const gfx::Rect& bounds, @@ -308,6 +340,13 @@ void NativeAppWindowViews::RenderViewHostChanged( // views::View implementation. void NativeAppWindowViews::Layout() { +#if defined(OS_LINUX) || defined(OS_WIN) + const extensions::Extension* extension = app_window_->GetExtension(); + if (extension && extension->is_nwjs_app()) { + views::WidgetDelegateView::Layout(); + return; + } +#endif DCHECK(web_view_); web_view_->SetBounds(0, 0, width(), height()); OnViewWasResized(); @@ -316,9 +355,22 @@ void NativeAppWindowViews::Layout() { void NativeAppWindowViews::ViewHierarchyChanged( const ViewHierarchyChangedDetails& details) { if (details.is_add && details.child == this) { +#if defined(OS_LINUX) || defined(OS_WIN) + BrowserViewLayout* layout = NULL; + const extensions::Extension* extension = app_window_->GetExtension(); + if (extension && extension->is_nwjs_app()) { + layout = new BrowserViewLayout(); + SetLayoutManager(layout); + } +#endif web_view_ = new views::WebView(NULL); AddChildView(web_view_); web_view_->SetWebContents(app_window_->web_contents()); +#if defined(OS_LINUX) || defined(OS_WIN) + if (extension && extension->is_nwjs_app()) { + layout->set_web_view(web_view_); + } +#endif } } @@ -336,6 +388,28 @@ void NativeAppWindowViews::OnFocus() { // NativeAppWindow implementation. +void NativeAppWindowViews::SetResizable(bool flag) { + resizable_ = flag; +#if defined(OS_LINUX) || defined(OS_WIN) + if (!resizable_) { + gfx::Size size(width(), height()); + //copy SetContentSizeConstraints(size, size); + size_constraints_.set_minimum_size(size); + size_constraints_.set_maximum_size(size); + widget_->OnSizeConstraintsChanged(); + } else { + size_constraints_ = saved_size_constraints_; + widget_->OnSizeConstraintsChanged(); + } +#else + widget_->OnSizeConstraintsChanged(); +#endif +} + +bool NativeAppWindowViews::IsResizable() const { + return resizable_; +} + void NativeAppWindowViews::SetFullscreen(int fullscreen_types) { // Stub implementation. See also ChromeNativeAppWindowViews. widget_->SetFullscreen(fullscreen_types != AppWindow::FULLSCREEN_TYPE_NONE); @@ -386,6 +460,42 @@ bool NativeAppWindowViews::HasFrameColor() const { return false; } +void NativeAppWindowViews::SetShowInTaskbar(bool show) { +#if defined(OS_WIN) + views::Widget* widget = widget_->GetTopLevelWidget(); + + if (show == false && base::win::GetVersion() < base::win::VERSION_VISTA) { + // Change the owner of native window. Only needed on Windows XP. + ::SetParent(views::HWNDForWidget(widget), + ui::GetHiddenWindow()); + } + + base::win::ScopedComPtr<ITaskbarList> taskbar; + HRESULT result = taskbar.CreateInstance(CLSID_TaskbarList, NULL, + CLSCTX_INPROC_SERVER); + if (FAILED(result)) { + VLOG(1) << "Failed creating a TaskbarList object: " << result; + return; + } + + result = taskbar->HrInit(); + if (FAILED(result)) { + LOG(ERROR) << "Failed initializing an ITaskbarList interface."; + return; + } + + if (show) + result = taskbar->AddTab(views::HWNDForWidget(widget)); + else + result = taskbar->DeleteTab(views::HWNDForWidget(widget)); + + if (FAILED(result)) { + LOG(ERROR) << "Failed to change the show in taskbar attribute"; + return; + } +#endif +} + SkColor NativeAppWindowViews::ActiveFrameColor() const { return SK_ColorBLACK; } @@ -428,6 +538,7 @@ void NativeAppWindowViews::SetContentSizeConstraints( const gfx::Size& max_size) { size_constraints_.set_minimum_size(min_size); size_constraints_.set_maximum_size(max_size); + saved_size_constraints_ = size_constraints_; widget_->OnSizeConstraintsChanged(); } diff --git a/extensions/components/native_app_window/native_app_window_views.h b/extensions/components/native_app_window/native_app_window_views.h index e4cd429913887..18a8b44c974a2 100644 --- a/extensions/components/native_app_window/native_app_window_views.h +++ b/extensions/components/native_app_window/native_app_window_views.h @@ -69,6 +69,7 @@ class NativeAppWindowViews : public extensions::NativeAppWindow, void set_window_for_testing(views::Widget* window) { widget_ = window; } void set_web_view_for_testing(views::WebView* view) { web_view_ = view; } + void layout_() { Layout(); } protected: // Initializes |widget_| for |app_window|. virtual void InitializeWindow( @@ -88,6 +89,7 @@ class NativeAppWindowViews : public extensions::NativeAppWindow, void ShowInactive() override; void Hide() override; void Close() override; + void ForceClose() override; void Activate() override; void Deactivate() override; void Maximize() override; @@ -99,6 +101,7 @@ class NativeAppWindowViews : public extensions::NativeAppWindow, void SetAlwaysOnTop(bool always_on_top) override; // WidgetDelegate implementation. + bool ExecuteAppCommand(int command_id) override; void OnWidgetMove() override; views::View* GetInitiallyFocusedView() override; bool CanResize() const override; @@ -136,6 +139,8 @@ class NativeAppWindowViews : public extensions::NativeAppWindow, // NativeAppWindow implementation. void SetFullscreen(int fullscreen_types) override; + void SetResizable(bool flag) override; + bool IsResizable() const override; bool IsFullscreenOrPending() const override; void UpdateWindowIcon() override; void UpdateWindowTitle() override; @@ -158,6 +163,7 @@ class NativeAppWindowViews : public extensions::NativeAppWindow, const gfx::Size& max_size) override; bool CanHaveAlphaEnabled() const override; void SetVisibleOnAllWorkspaces(bool always_visible) override; + void SetShowInTaskbar(bool show) override; // web_modal::WebContentsModalDialogHost implementation. gfx::NativeView GetHostView() const override; @@ -179,6 +185,7 @@ class NativeAppWindowViews : public extensions::NativeAppWindow, bool frameless_; bool resizable_; extensions::SizeConstraints size_constraints_; + extensions::SizeConstraints saved_size_constraints_; views::UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; diff --git a/extensions/extensions_resources.grd b/extensions/extensions_resources.grd index f65e452d44c29..5a3a6491d099e 100644 --- a/extensions/extensions_resources.grd +++ b/extensions/extensions_resources.grd @@ -9,6 +9,7 @@ <release seq="1"> <includes> <include name="IDR_EXTENSION_API_FEATURES" file="common\api\_api_features.json" type="BINDATA" /> + <include name="IDR_NW_EXTENSION_API_FEATURES" file="..\content\nw\src\api\_api_features.json" type="BINDATA" /> </includes> </release> </grit> diff --git a/extensions/renderer/app_window_custom_bindings.cc b/extensions/renderer/app_window_custom_bindings.cc index 6553e5e307155..ea910eb9723fa 100644 --- a/extensions/renderer/app_window_custom_bindings.cc +++ b/extensions/renderer/app_window_custom_bindings.cc @@ -4,6 +4,9 @@ #include "extensions/renderer/app_window_custom_bindings.h" +#include "third_party/WebKit/public/web/WebKit.h" + + #include "base/command_line.h" #include "content/public/child/v8_value_converter.h" #include "content/public/renderer/render_frame.h" @@ -28,6 +31,18 @@ AppWindowCustomBindings::AppWindowCustomBindings(ScriptContext* context) RouteFunction("GetWindowControlsHtmlTemplate", base::Bind(&AppWindowCustomBindings::GetWindowControlsHtmlTemplate, base::Unretained(this))); + RouteFunction("FixGamePadAPI", + base::Bind(&AppWindowCustomBindings::FixGamePadAPI, + base::Unretained(this))); +} + +void AppWindowCustomBindings::FixGamePadAPI( + const v8::FunctionCallbackInfo<v8::Value>& args) { + content::RenderFrame* render_frame = context()->GetRenderFrame(); + if (!render_frame) + return; + blink::WebFrame* main_frame = render_frame->GetWebFrame(); + blink::fix_gamepad_nw(main_frame); } void AppWindowCustomBindings::GetFrame( diff --git a/extensions/renderer/app_window_custom_bindings.h b/extensions/renderer/app_window_custom_bindings.h index 3fbab04f0fd29..4d70e5ed89184 100644 --- a/extensions/renderer/app_window_custom_bindings.h +++ b/extensions/renderer/app_window_custom_bindings.h @@ -24,6 +24,7 @@ class AppWindowCustomBindings : public ObjectBackedNativeHandler { void GetWindowControlsHtmlTemplate( const v8::FunctionCallbackInfo<v8::Value>& args); + void FixGamePadAPI(const v8::FunctionCallbackInfo<v8::Value>& args); DISALLOW_COPY_AND_ASSIGN(AppWindowCustomBindings); }; diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc index a47b77c7e6aa1..0fafe3d664c4b 100644 --- a/extensions/renderer/dispatcher.cc +++ b/extensions/renderer/dispatcher.cc @@ -119,6 +119,20 @@ #include "ui/base/resource/resource_bundle.h" #include "v8/include/v8.h" +#include "base/files/file_util.h" +#include "content/common/dom_storage/dom_storage_map.h" +#include "content/nw/src/nw_content.h" +#include "content/nw/src/nw_custom_bindings.h" +#include "third_party/node/src/node_webkit.h" + +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) CONTENT_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + using base::UserMetricsAction; using blink::WebDataSource; using blink::WebDocument; @@ -148,16 +162,35 @@ void CrashOnException(const v8::TryCatch& trycatch) { // // Note that this isn't necessarily an object, since webpages can write, for // example, "window.chrome = true". -v8::Local<v8::Value> GetOrCreateChrome(ScriptContext* context) { +v8::Local<v8::Value> GetOrCreateChrome(ScriptContext* context, bool hidden, const char* name = nullptr) { v8::Local<v8::String> chrome_string( - v8::String::NewFromUtf8(context->isolate(), "chrome")); + v8::String::NewFromUtf8(context->isolate(), name ? name : "chrome")); v8::Local<v8::Object> global(context->v8_context()->Global()); - v8::Local<v8::Value> chrome(global->Get(chrome_string)); - if (chrome->IsUndefined()) { - chrome = v8::Object::New(context->isolate()); - global->Set(chrome_string, chrome); + if (!hidden) { + v8::Local<v8::Value> chrome(global->Get(chrome_string)); + if (chrome->IsUndefined()) { + chrome = v8::Object::New(context->isolate()); + global->Set(chrome_string, chrome); + } + return chrome; + } else { // hidden + // MUST MATCH Private() in module_system.cc + v8::Local<v8::Value> privates; + if (!context->module_system()->GetPrivate(global, "privates", &privates) || !privates->IsObject()) { + privates = v8::Object::New(context->isolate()); + context->module_system()->SetPrivate(global, "privates", privates); + } + v8::Local<v8::Object> priv_obj = privates->ToObject(); + v8::Local<v8::Value> chrome(priv_obj->Get(chrome_string)); + if (chrome->IsUndefined()) { + chrome = v8::Object::New(context->isolate()); + v8::Local<v8::String> hidden_key( + v8::String::NewFromUtf8(context->isolate(), "__nw_is_hidden")); + chrome->ToObject()->Set(hidden_key, v8::Boolean::New(context->isolate(), true)); + priv_obj->Set(chrome_string, chrome); + } + return chrome; } - return chrome; } // Returns |value| cast to an object if possible, else an empty handle. @@ -198,7 +231,7 @@ class ChromeNativeHandler : public ObjectBackedNativeHandler { } void GetChrome(const v8::FunctionCallbackInfo<v8::Value>& args) { - args.GetReturnValue().Set(GetOrCreateChrome(context())); + args.GetReturnValue().Set(GetOrCreateChrome(context(), false)); } }; @@ -233,6 +266,12 @@ void DispatchEventInContext(const std::string& event_name, arguments.data()); } +int nw_uv_run(void* loop, int mode) { + v8::MicrotasksScope microtasks(v8::Isolate::GetCurrent(), v8::MicrotasksScope::kDoNotRunMicrotasks); + + return g_uv_run_fn(loop, mode); +} + } // namespace // Note that we can't use Blink public APIs in the constructor becase Blink @@ -303,6 +342,8 @@ Dispatcher::Dispatcher(DispatcherDelegate* delegate) func(extension_resource_scheme); } + g_set_uv_run_fn(nw_uv_run); + // For extensions, we want to ensure we call the IdleHandler every so often, // even if the extension keeps up activity. if (set_idle_notifications_) { @@ -372,17 +413,33 @@ void Dispatcher::DidCreateScriptContext( // chrome.Event is part of the public API (although undocumented). Make it // lazily evalulate to Event from event_bindings.js. For extensions only // though, not all webpages! + + bool run_nw_hook = false; if (context->extension()) { - v8::Local<v8::Object> chrome = AsObjectOrEmpty(GetOrCreateChrome(context)); + v8::Local<v8::Object> chrome = AsObjectOrEmpty(GetOrCreateChrome(context, false)); if (!chrome.IsEmpty()) module_system->SetLazyField(chrome, "Event", kEventBindings, "Event"); + + if (context->extension()->GetType() == Manifest::TYPE_NWJS_APP && + context->context_type() == Feature::BLESSED_EXTENSION_CONTEXT) { + run_nw_hook = true; + } + } + if (!run_nw_hook) { + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + if (command_line.HasSwitch("nwjs-guest")) + run_nw_hook = true; } + if (run_nw_hook) + nw::ContextCreationHook(frame, context); UpdateBindingsForContext(context); bool is_within_platform_app = IsWithinPlatformApp(); // Inject custom JS into the platform app context. - if (is_within_platform_app) { + if (is_within_platform_app && context->extension() && + context->extension()->GetType() != Manifest::TYPE_NWJS_APP) { module_system->Require("platformApp"); } @@ -491,7 +548,7 @@ void Dispatcher::DidInitializeServiceWorkerContextOnWorkerThread( WorkerThreadDispatcher::Get()->GetV8SchemaRegistry()); // chrome.Event is part of the public API (although undocumented). Make it // lazily evalulate to Event from event_bindings.js. - v8::Local<v8::Object> chrome = AsObjectOrEmpty(GetOrCreateChrome(context)); + v8::Local<v8::Object> chrome = AsObjectOrEmpty(GetOrCreateChrome(context, false)); if (!chrome.IsEmpty()) module_system->SetLazyField(chrome, "Event", kEventBindings, "Event"); @@ -556,6 +613,15 @@ void Dispatcher::WillReleaseScriptContext( if (!context) return; + //FIXME: upstream removed unload_event: we should check our event + //f66545e9e5d0308c15f51764e311425894e3ad09 + + if (context && context->extension() && + context->extension()->is_nwjs_app() && + script_context_set_->size() == 1) { + nw::OnRenderProcessShutdownHook(context); + } + // TODO(kalman): Make |request_sender| use |context->AddInvalidationObserver|. // In fact |request_sender_| should really be owned by ScriptContext. request_sender_->InvalidateSource(context); @@ -578,6 +644,16 @@ void Dispatcher::WillDestroyServiceWorkerContextOnWorkerThread( WorkerThreadDispatcher::Get()->RemoveWorkerData(service_worker_version_id); } +void Dispatcher::DidFinishDocumentLoad(blink::WebLocalFrame* frame) { + GURL effective_document_url = ScriptContext::GetEffectiveDocumentURL( + frame, frame->document().url(), true /* match_about_blank */); + + const Extension* extension = + RendererExtensionRegistry::Get()->GetExtensionOrAppByURL(effective_document_url); + + nw::DocumentFinishHook(frame, extension, effective_document_url); +} + void Dispatcher::DidCreateDocumentElement(blink::WebLocalFrame* frame) { // Note: use GetEffectiveDocumentURL not just frame->document()->url() // so that this also injects the stylesheet on about:blank frames that @@ -591,6 +667,11 @@ void Dispatcher::DidCreateDocumentElement(blink::WebLocalFrame* frame) { if (extension && (extension->is_extension() || extension->is_platform_app())) { + nw::DocumentElementHook(frame, extension, effective_document_url); + } + + if (extension && !extension->is_nwjs_app() && + (extension->is_extension() || extension->is_platform_app())) { int resource_id = extension->is_platform_app() ? IDR_PLATFORM_APP_CSS : IDR_EXTENSION_FONTS_CSS; std::string stylesheet = ResourceBundle::GetSharedInstance() @@ -676,7 +757,13 @@ void Dispatcher::InvokeModuleSystemMethod(content::RenderFrame* render_frame, const std::string& module_name, const std::string& function_name, const base::ListValue& args) { - script_context_set_->ForEach( + // need extension id set to empty for remote pages + if (render_frame && module_name == "nw.Window") + script_context_set_->ForEach( + "", render_frame, + base::Bind(&CallModuleMethod, module_name, function_name, &args)); + else + script_context_set_->ForEach( extension_id, render_frame, base::Bind(&CallModuleMethod, module_name, function_name, &args)); @@ -841,6 +928,17 @@ std::vector<std::pair<std::string, int> > Dispatcher::GetJsResources() { std::make_pair("media_router_bindings", IDR_MEDIA_ROUTER_BINDINGS_JS)); #endif // defined(ENABLE_MEDIA_ROUTER) + resources.push_back(std::make_pair("nw.App", IDR_NWAPI_APP_JS)); + resources.push_back(std::make_pair("nw.Window", IDR_NWAPI_WINDOW_JS)); + resources.push_back(std::make_pair("nw.Clipboard", IDR_NWAPI_CLIPBOARD_JS)); + resources.push_back(std::make_pair("nw.Menu", IDR_NWAPI_MENU_JS)); + resources.push_back(std::make_pair("nw.MenuItem", IDR_NWAPI_MENUITEM_JS)); + resources.push_back(std::make_pair("nw.Screen", IDR_NWAPI_SCREEN_JS)); + resources.push_back(std::make_pair("nw.Shell", IDR_NWAPI_SHELL_JS)); + resources.push_back(std::make_pair("nw.Shortcut", IDR_NWAPI_SHORTCUT_JS)); + resources.push_back(std::make_pair("nw.Obj", IDR_NWAPI_OBJECT_JS)); + resources.push_back(std::make_pair("nw.test", IDR_NWAPI_TEST_JS)); + resources.push_back(std::make_pair("nw.Tray", IDR_NWAPI_TRAY_JS)); return resources; } @@ -899,6 +997,8 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, std::unique_ptr<NativeHandler>(new FileSystemNatives(context))); // Custom bindings. + module_system->RegisterNativeHandler( + "nw_natives", std::unique_ptr<NativeHandler>(new NWCustomBindings(context))); module_system->RegisterNativeHandler( "app_window_natives", std::unique_ptr<NativeHandler>(new AppWindowCustomBindings(context))); @@ -1094,6 +1194,23 @@ void Dispatcher::OnLoaded( // consider making this a release CHECK. NOTREACHED(); } + + if (extension->GetType() == Manifest::TYPE_NWJS_APP) { + std::string user_agent; + if (extension->manifest()->GetString("user-agent", &user_agent)) { + std::string name, version; + extension->manifest()->GetString("name", &name); + extension->manifest()->GetString("version", &version); + nw::SetUserAgentOverride(user_agent, name, version); + + int dom_storage_quota_mb; + if (extension->manifest()->GetInteger("dom_storage_quota", &dom_storage_quota_mb)) { + content::DOMStorageMap::SetQuotaOverride(dom_storage_quota_mb * 1024 * 1024); + } + } + VLOG(1) << "NW: change working dir: " << extension->path().AsUTF8Unsafe(); + base::SetCurrentDirectory(extension->path()); + } } // Update the available bindings for all contexts. These may have changed if @@ -1388,6 +1505,12 @@ void Dispatcher::UpdateBindingsForContext(ScriptContext* context) { v8::HandleScope handle_scope(context->isolate()); v8::Context::Scope context_scope(context->v8_context()); + bool nodejs_enabled = false; + if (context->extension()) { + nodejs_enabled = context->extension()->is_nwjs_app(); + context->extension()->manifest()->GetBoolean(manifest_keys::kNWJSEnableNode, &nodejs_enabled); + } + // TODO(kalman): Make the bindings registration have zero overhead then run // the same code regardless of context type. switch (context->context_type()) { @@ -1399,6 +1522,11 @@ void Dispatcher::UpdateBindingsForContext(ScriptContext* context) { // All of the same permission checks will still apply. if (context->GetAvailability("app").is_available()) RegisterBinding("app", context); + if (!context->GetAvailability("app.window").is_available()) { + RegisterBinding("app.window", context, true); + RegisterBinding("nw.Window", context, true); + RegisterBinding("runtime", context, true); + } if (context->GetAvailability("webstore").is_available()) RegisterBinding("webstore", context); if (context->GetAvailability("dashboardPrivate").is_available()) @@ -1421,6 +1549,8 @@ void Dispatcher::UpdateBindingsForContext(ScriptContext* context) { const FeatureProvider* api_feature_provider = FeatureProvider::GetAPIFeatures(); for (const auto& map_entry : api_feature_provider->GetAllFeatures()) { + if (map_entry.first.substr(0, 3) == "nw." && !nodejs_enabled) + continue; // Internal APIs are included via require(api_name) from internal code // rather than chrome[api_name]. if (map_entry.second->IsInternal()) @@ -1450,10 +1580,11 @@ void Dispatcher::UpdateBindingsForContext(ScriptContext* context) { } void Dispatcher::RegisterBinding(const std::string& api_name, - ScriptContext* context) { + ScriptContext* context, + bool hidden) { std::string bind_name; v8::Local<v8::Object> bind_object = - GetOrCreateBindObjectIfAvailable(api_name, &bind_name, context); + GetOrCreateBindObjectIfAvailable(api_name, &bind_name, context, hidden); // Empty if the bind object failed to be created, probably because the // extension overrode chrome with a non-object, e.g. window.chrome = true. @@ -1597,7 +1728,8 @@ v8::Local<v8::Object> Dispatcher::GetOrCreateObject( v8::Local<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable( const std::string& api_name, std::string* bind_name, - ScriptContext* context) { + ScriptContext* context, + bool hidden) { std::vector<std::string> split = base::SplitString( api_name, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); @@ -1618,9 +1750,15 @@ v8::Local<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable( std::string ancestor_name; bool only_ancestor_available = false; - for (size_t i = 0; i < split.size() - 1; ++i) { + const char* prefix = nullptr; + int start = 0; + if (split[0] == "nw") { + prefix = "nw"; + start = 1; + } + for (size_t i = start; i < split.size() - 1; ++i) { ancestor_name += (i ? "." : "") + split[i]; - if (api_feature_provider->GetFeature(ancestor_name) && + if (api_feature_provider->GetFeature(ancestor_name) && !hidden && context->GetAvailability(ancestor_name).is_available() && !context->GetAvailability(api_name).is_available()) { only_ancestor_available = true; @@ -1628,7 +1766,7 @@ v8::Local<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable( } if (bind_object.IsEmpty()) { - bind_object = AsObjectOrEmpty(GetOrCreateChrome(context)); + bind_object = AsObjectOrEmpty(GetOrCreateChrome(context, hidden, prefix)); if (bind_object.IsEmpty()) return v8::Local<v8::Object>(); } @@ -1641,7 +1779,7 @@ v8::Local<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable( if (bind_name) *bind_name = split.back(); - return bind_object.IsEmpty() ? AsObjectOrEmpty(GetOrCreateChrome(context)) + return bind_object.IsEmpty() ? AsObjectOrEmpty(GetOrCreateChrome(context, hidden, prefix)) : bind_object; } diff --git a/extensions/renderer/dispatcher.h b/extensions/renderer/dispatcher.h index 0e8d57927a08f..e15f565be4eb1 100644 --- a/extensions/renderer/dispatcher.h +++ b/extensions/renderer/dispatcher.h @@ -118,6 +118,7 @@ class Dispatcher : public content::RenderThreadObserver, // This method is not allowed to run JavaScript code in the frame. void DidCreateDocumentElement(blink::WebLocalFrame* frame); + void DidFinishDocumentLoad(blink::WebLocalFrame* frame); // These methods may run (untrusted) JavaScript code in the frame, and // cause |render_frame| to become invalid. @@ -229,7 +230,7 @@ class Dispatcher : public content::RenderThreadObserver, void UpdateBindingsForContext(ScriptContext* context); - void RegisterBinding(const std::string& api_name, ScriptContext* context); + void RegisterBinding(const std::string& api_name, ScriptContext* context, bool hidden = false); void RegisterNativeHandlers(ModuleSystem* module_system, ScriptContext* context, @@ -260,7 +261,9 @@ class Dispatcher : public content::RenderThreadObserver, static v8::Local<v8::Object> GetOrCreateBindObjectIfAvailable( const std::string& api_name, std::string* bind_name, - ScriptContext* context); + ScriptContext* context, + bool hidden = false + ); // Requires the GuestView modules in the module system of the ScriptContext // |context|. diff --git a/extensions/renderer/event_bindings.cc b/extensions/renderer/event_bindings.cc index df1de04e89122..5a2fac8b7341a 100644 --- a/extensions/renderer/event_bindings.cc +++ b/extensions/renderer/event_bindings.cc @@ -187,8 +187,8 @@ void EventBindings::AttachEventHandler( } void EventBindings::AttachEvent(const std::string& event_name) { - if (!context()->HasAccessOrThrowError(event_name)) - return; + //if (!context()->HasAccessOrThrowError(event_name)) + // return; // Record the attachment for this context so that events can be detached when // the context is destroyed. @@ -255,8 +255,8 @@ void EventBindings::AttachFilteredEvent( CHECK(args[1]->IsObject()); std::string event_name = *v8::String::Utf8Value(args[0]); - if (!context()->HasAccessOrThrowError(event_name)) - return; + //if (!context()->HasAccessOrThrowError(event_name)) + // return; std::unique_ptr<base::DictionaryValue> filter; { diff --git a/extensions/renderer/extension_frame_helper.cc b/extensions/renderer/extension_frame_helper.cc index b190b23637ec4..9ab5397e5e7a5 100644 --- a/extensions/renderer/extension_frame_helper.cc +++ b/extensions/renderer/extension_frame_helper.cc @@ -22,6 +22,9 @@ #include "third_party/WebKit/public/web/WebDocument.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" +#include "content/nw/src/renderer/nw_chrome_renderer_hooks.h" +#include "content/nw/src/renderer/nw_extensions_renderer_hooks.h" + namespace extensions { namespace { @@ -50,10 +53,13 @@ bool RenderFrameMatches(const ExtensionFrameHelper* frame_helper, frame_helper->render_frame()->GetWebFrame()->getSecurityOrigin(); if (origin.isUnique() || !base::EqualsASCII(base::StringPiece16(origin.protocol()), - kExtensionScheme) || + kExtensionScheme) || (!match_extension_id.empty() && !base::EqualsASCII(base::StringPiece16(origin.host()), - match_extension_id.c_str())) - return false; + match_extension_id.c_str()))) + if (!(match_extension_id == nw::get_main_extension_id() && + !base::EqualsASCII(base::StringPiece16(origin.protocol()), kExtensionScheme))) + //NWJS#5181: getall() with remote window + return false; if (match_window_id != extension_misc::kUnknownWindowId && frame_helper->browser_window_id() != match_window_id) @@ -165,6 +171,13 @@ void ExtensionFrameHelper::DidCreateDocumentElement() { did_create_current_document_element_ = true; extension_dispatcher_->DidCreateDocumentElement( render_frame()->GetWebFrame()); + nw::DocumentHook2(true, render_frame(), extension_dispatcher_); +} + +void ExtensionFrameHelper::DidFinishDocumentLoad() { + extension_dispatcher_->DidFinishDocumentLoad( + render_frame()->GetWebFrame()); + nw::DocumentHook2(false, render_frame(), extension_dispatcher_); } void ExtensionFrameHelper::DidCreateNewDocument() { diff --git a/extensions/renderer/extension_frame_helper.h b/extensions/renderer/extension_frame_helper.h index d14955699bc56..5b84ab22678d1 100644 --- a/extensions/renderer/extension_frame_helper.h +++ b/extensions/renderer/extension_frame_helper.h @@ -104,6 +104,7 @@ class ExtensionFrameHelper // RenderFrameObserver implementation. void DidCreateDocumentElement() override; void DidCreateNewDocument() override; + void DidFinishDocumentLoad() override; void DidMatchCSS( const blink::WebVector<blink::WebString>& newly_matching_selectors, const blink::WebVector<blink::WebString>& stopped_matching_selectors) diff --git a/extensions/renderer/i18n_custom_bindings.cc b/extensions/renderer/i18n_custom_bindings.cc index 34dd6c89c0f9b..08d277e3115c7 100644 --- a/extensions/renderer/i18n_custom_bindings.cc +++ b/extensions/renderer/i18n_custom_bindings.cc @@ -39,7 +39,7 @@ using namespace v8_helpers; namespace { // Max number of languages to detect. -const int kCldNumLangs = 3; +//const int kCldNumLangs = 3; struct DetectedLanguage { DetectedLanguage(const std::string& language, int percentage) @@ -106,7 +106,7 @@ v8::Local<v8::Value> LanguageDetectionResult::ToValue(ScriptContext* context) { return handle_scope.Escape(result); } -#if BUILDFLAG(CLD_VERSION) == 2 +#if 0 void InitDetectedLanguages( CLD2::Language* languages, int* percents, @@ -128,8 +128,9 @@ void InitDetectedLanguages( base::MakeUnique<DetectedLanguage>(language_code, percents[i])); } } +#endif -#elif BUILDFLAG(CLD_VERSION) == 3 +#if 0 void InitDetectedLanguages( const std::vector<chrome_lang_id::NNetLanguageIdentifier::Result>& lang_results, @@ -175,7 +176,7 @@ void InitDetectedLanguages( } } #else -# error "CLD_VERSION must be 2 or 3" +//# error "CLD_VERSION must be 2 or 3" #endif } // namespace @@ -268,6 +269,11 @@ void I18NCustomBindings::DetectTextLanguage( CHECK(args.Length() == 1); CHECK(args[0]->IsString()); +#if 1 + LanguageDetectionResult result(false); + args.GetReturnValue().Set(result.ToValue(context())); +#endif +#if 0 std::string text = *v8::String::Utf8Value(args[0]); #if BUILDFLAG(CLD_VERSION) == 2 CLD2::CLDHints cldhints = {nullptr, "", CLD2::UNKNOWN_ENCODING, @@ -319,7 +325,8 @@ void I18NCustomBindings::DetectTextLanguage( InitDetectedLanguages(lang_results, &result); args.GetReturnValue().Set(result.ToValue(context())); #else -# error "CLD_VERSION must be 2 or 3" + //# error "CLD_VERSION must be 2 or 3" +#endif #endif } diff --git a/extensions/renderer/object_backed_native_handler.cc b/extensions/renderer/object_backed_native_handler.cc index 7346e392c3824..4b70347bcab37 100644 --- a/extensions/renderer/object_backed_native_handler.cc +++ b/extensions/renderer/object_backed_native_handler.cc @@ -73,7 +73,11 @@ void ObjectBackedNativeHandler::Router( std::string feature_name = *v8::String::Utf8Value(feature_name_string); // TODO(devlin): Eventually, we should fail if either script_context is null // or feature_name is empty. - if (script_context && !feature_name.empty()) { + + // remote pages need to call + // renderFrameObserverNatives.OnDocumentElementCreated() in + // the end of api_nw_window.js NWJS#5312 + if (script_context && !feature_name.empty() && feature_name != "app.window") { Feature::Availability availability = script_context->GetAvailability(feature_name); if (!availability.is_available()) { diff --git a/extensions/renderer/object_backed_native_handler.h b/extensions/renderer/object_backed_native_handler.h index f46e94f552d30..2abbb6c5e05ff 100644 --- a/extensions/renderer/object_backed_native_handler.h +++ b/extensions/renderer/object_backed_native_handler.h @@ -68,6 +68,7 @@ class ObjectBackedNativeHandler : public NativeHandler { const v8::Local<v8::Object>& object, bool allow_null_context); + public: // The following methods are convenience wrappers for methods on v8::Object // with the corresponding names. void SetPrivate(v8::Local<v8::Object> obj, diff --git a/extensions/renderer/render_frame_observer_natives.cc b/extensions/renderer/render_frame_observer_natives.cc index 70fbd65802c7f..7888a97561991 100644 --- a/extensions/renderer/render_frame_observer_natives.cc +++ b/extensions/renderer/render_frame_observer_natives.cc @@ -13,6 +13,7 @@ #include "content/public/renderer/render_frame_observer.h" #include "extensions/renderer/extension_frame_helper.h" #include "extensions/renderer/script_context.h" +#include "extensions/renderer/script_context_set.h" namespace extensions { @@ -22,14 +23,21 @@ namespace { class LoadWatcher : public content::RenderFrameObserver { public: LoadWatcher(content::RenderFrame* frame, - const base::Callback<void(bool)>& callback) - : content::RenderFrameObserver(frame), callback_(callback) {} + const base::Callback<void(bool, int)>& callback, bool wait_for_next = false) + : content::RenderFrameObserver(frame), callback_(callback), wait_for_next_(wait_for_next) {} void DidCreateDocumentElement() override { + if (wait_for_next_) { + base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + base::Bind(&LoadWatcher::DidCreateDocumentElement, base::Unretained(this))); + wait_for_next_ = false; + return; + } // Defer the callback instead of running it now to avoid re-entrancy caused // by the JavaScript callback. + int id = routing_id(); ExtensionFrameHelper::Get(render_frame()) - ->ScheduleAtDocumentStart(base::Bind(callback_, true)); + ->ScheduleAtDocumentStart(base::Bind(callback_, true, id)); delete this; } @@ -37,18 +45,57 @@ class LoadWatcher : public content::RenderFrameObserver { // Use PostTask to avoid running user scripts while handling this // DidFailProvisionalLoad notification. base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, - base::Bind(callback_, false)); + base::Bind(callback_, false, routing_id())); delete this; } void OnDestruct() override { delete this; } private: - base::Callback<void(bool)> callback_; + base::Callback<void(bool, int)> callback_; + bool wait_for_next_; DISALLOW_COPY_AND_ASSIGN(LoadWatcher); }; +class CloseWatcher : public content::RenderFrameObserver { + public: + CloseWatcher(ScriptContext* context, + content::RenderFrame* frame, + v8::Local<v8::Function> cb) + : content::RenderFrameObserver(frame), + context_(context->weak_factory_.GetWeakPtr()), + callback_(context->isolate(), cb) + { + } + + void OnDestruct() override { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::Bind(&CloseWatcher::CallbackAndDie, base::Unretained(this), + routing_id())); + } + + private: + void CallbackAndDie(int routing_id) { + if (context_ && context_->is_valid()) { + // context_ was deleted when running + // issue4007-reload-lost-app-window in test framework + v8::Isolate* isolate = context_->isolate(); + v8::HandleScope handle_scope(isolate); + v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, routing_id)}; + context_->CallFunction(v8::Local<v8::Function>::New(isolate, callback_), + arraysize(args), args); + } + delete this; + } + + base::WeakPtr<ScriptContext> context_; + v8::Global<v8::Function> callback_; + + DISALLOW_COPY_AND_ASSIGN(CloseWatcher); +}; + } // namespace RenderFrameObserverNatives::RenderFrameObserverNatives(ScriptContext* context) @@ -57,6 +104,10 @@ RenderFrameObserverNatives::RenderFrameObserverNatives(ScriptContext* context) "OnDocumentElementCreated", "app.window", base::Bind(&RenderFrameObserverNatives::OnDocumentElementCreated, base::Unretained(this))); + RouteFunction( + "OnDestruct", + base::Bind(&RenderFrameObserverNatives::OnDestruct, + base::Unretained(this))); } RenderFrameObserverNatives::~RenderFrameObserverNatives() {} @@ -68,9 +119,11 @@ void RenderFrameObserverNatives::Invalidate() { void RenderFrameObserverNatives::OnDocumentElementCreated( const v8::FunctionCallbackInfo<v8::Value>& args) { - CHECK(args.Length() == 2); CHECK(args[0]->IsInt32()); CHECK(args[1]->IsFunction()); + bool wait_for_next = false; + if (args.Length() > 2) + wait_for_next = args[2]->BooleanValue(); int frame_id = args[0]->Int32Value(); @@ -82,17 +135,17 @@ void RenderFrameObserverNatives::OnDocumentElementCreated( v8::Global<v8::Function> v8_callback(context()->isolate(), args[1].As<v8::Function>()); - base::Callback<void(bool)> callback( + base::Callback<void(bool, int)> callback( base::Bind(&RenderFrameObserverNatives::InvokeCallback, weak_ptr_factory_.GetWeakPtr(), base::Passed(&v8_callback))); - if (ExtensionFrameHelper::Get(frame)->did_create_current_document_element()) { + if (!wait_for_next && ExtensionFrameHelper::Get(frame)->did_create_current_document_element()) { // If the document element is already created, then we can call the callback // immediately (though use PostTask to ensure that the callback is called // asynchronously). base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, - base::Bind(callback, true)); + base::Bind(callback, true, frame_id)); } else { - new LoadWatcher(frame, callback); + new LoadWatcher(frame, callback, wait_for_next); } args.GetReturnValue().Set(true); @@ -100,12 +153,32 @@ void RenderFrameObserverNatives::OnDocumentElementCreated( void RenderFrameObserverNatives::InvokeCallback( v8::Global<v8::Function> callback, - bool succeeded) { + bool succeeded, int frame_id) { v8::Isolate* isolate = context()->isolate(); v8::HandleScope handle_scope(isolate); - v8::Local<v8::Value> args[] = {v8::Boolean::New(isolate, succeeded)}; + v8::Local<v8::Value> args[] = {v8::Boolean::New(isolate, succeeded), v8::Integer::New(isolate, frame_id)}; context()->SafeCallFunction(v8::Local<v8::Function>::New(isolate, callback), - arraysize(args), args); + arraysize(args), args); } +void RenderFrameObserverNatives::OnDestruct( + const v8::FunctionCallbackInfo<v8::Value>& args) { + CHECK(args[0]->IsInt32()); + CHECK(args[1]->IsFunction()); + int frame_id = args[0]->Int32Value(); + + content::RenderFrame* frame = content::RenderFrame::FromRoutingID(frame_id); + if (!frame) { + LOG(WARNING) << "No render frame found to register CloseWatcher. " << frame_id; + return; + } + + v8::Local<v8::Function> func = args[1].As<v8::Function>(); + ScriptContext* context = ScriptContextSet::GetContextByV8Context(func->CreationContext()); + new CloseWatcher(context, frame, args[1].As<v8::Function>()); + + args.GetReturnValue().Set(true); +} + + } // namespace extensions diff --git a/extensions/renderer/render_frame_observer_natives.h b/extensions/renderer/render_frame_observer_natives.h index 4e81e3bc8b772..1b97b69d73a55 100644 --- a/extensions/renderer/render_frame_observer_natives.h +++ b/extensions/renderer/render_frame_observer_natives.h @@ -26,10 +26,13 @@ class RenderFrameObserverNatives : public ObjectBackedNativeHandler { void OnDocumentElementCreated( const v8::FunctionCallbackInfo<v8::Value>& args); - void InvokeCallback(v8::Global<v8::Function> callback, bool succeeded); + void InvokeCallback(v8::Global<v8::Function> callback, bool succeeded, int frame_id); base::WeakPtrFactory<RenderFrameObserverNatives> weak_ptr_factory_; + void OnDestruct( + const v8::FunctionCallbackInfo<v8::Value>& args); + DISALLOW_COPY_AND_ASSIGN(RenderFrameObserverNatives); }; diff --git a/extensions/renderer/request_sender.cc b/extensions/renderer/request_sender.cc index b3fc126a71ab5..f09ca461a48e2 100644 --- a/extensions/renderer/request_sender.cc +++ b/extensions/renderer/request_sender.cc @@ -70,6 +70,69 @@ int RequestSender::GetNextRequestId() const { return next_request_id++; } +bool RequestSender::StartRequestSync(Source* source, + const std::string& name, + int request_id, + bool has_callback, + bool for_io_thread, + base::ListValue* value_args, + bool* success, + base::ListValue* response, + std::string* error) { + ScriptContext* context = source->GetContext(); + if (!context) + return false; + + bool for_service_worker = + context->context_type() == Feature::SERVICE_WORKER_CONTEXT; + // Get the current RenderFrame so that we can send a routed IPC message from + // the correct source. + // Note that |render_frame| would be nullptr for Service Workers. Service + // Workers use control IPC instead. + content::RenderFrame* render_frame = context->GetRenderFrame(); + if (!for_service_worker && !render_frame) { + // It is important to early exit here for non Service Worker contexts so + // that we do not create orphaned PendingRequests below. + return false; + } + + // TODO(koz): See if we can make this a CHECK. + if (!context->HasAccessOrThrowError(name)) + return false; + + GURL source_url; + if (blink::WebLocalFrame* webframe = context->web_frame()) + source_url = webframe->document().url(); + + // InsertRequest(request_id, new PendingRequest(name, source, + // blink::WebUserGestureIndicator::currentUserGestureToken())); + + ExtensionHostMsg_Request_Params params; + params.name = name; + params.arguments.Swap(value_args); + params.extension_id = context->GetExtensionID(); + params.source_url = source_url; + params.source_tab_id = source_tab_id_; + params.request_id = request_id; + params.has_callback = has_callback; + params.user_gesture = + blink::WebUserGestureIndicator::isProcessingUserGesture(); + + // Set Service Worker specific params to default values. + params.worker_thread_id = -1; + params.service_worker_version_id = kInvalidServiceWorkerVersionId; + + if (for_io_thread) { + render_frame->Send(new ExtensionHostMsg_RequestForIOThread( + render_frame->GetRoutingID(), params)); + } else { + render_frame->Send( + new ExtensionHostMsg_RequestSync(render_frame->GetRoutingID(), params, + success, response, error)); + } + return true; +} + bool RequestSender::StartRequest(Source* source, const std::string& name, int request_id, diff --git a/extensions/renderer/request_sender.h b/extensions/renderer/request_sender.h index 4ffd902490321..5c7c6d626c072 100644 --- a/extensions/renderer/request_sender.h +++ b/extensions/renderer/request_sender.h @@ -88,6 +88,16 @@ class RequestSender { bool for_io_thread, ExtensionHostMsg_Request_Params& params); + bool StartRequestSync(Source* source, + const std::string& name, + int request_id, + bool has_callback, + bool for_io_thread, + base::ListValue* value_args, + bool* success, + base::ListValue* response, + std::string* error); + // Handles responses from the extension host to calls made by StartRequest(). void HandleResponse(int request_id, bool success, diff --git a/extensions/renderer/resources/app_window_custom_bindings.js b/extensions/renderer/resources/app_window_custom_bindings.js index 546183f8428a3..814479787d96a 100644 --- a/extensions/renderer/resources/app_window_custom_bindings.js +++ b/extensions/renderer/resources/app_window_custom_bindings.js @@ -22,6 +22,19 @@ var kSetSizeConstraintsFunction = 'setSizeConstraints'; var Bounds = function(boundsKey) { privates(this).boundsKey_ = boundsKey; }; + +var try_hidden = function (view) { + if (view.chrome.app.window) + return view; + return privates(view); +}; + +var try_nw = function (view) { + if (view.nw) + return view; + return privates(view); +}; + Object.defineProperty(Bounds.prototype, 'left', { get: function() { return appWindowData[privates(this).boundsKey_].left; @@ -135,13 +148,13 @@ appWindow.registerCustomHook(function(bindingsAPI) { // Not creating a new window, but activating an existing one, so trigger // callback with existing window and don't do anything else. if (callback) - callback(view.chrome.app.window.current()); + callback(try_hidden(view).chrome.app.window.current()); return; } // Initialize appWindowData in the newly created JS context if (view.chrome.app) { - view.chrome.app.window.initializeAppWindow(windowParams); + try_hidden(view).chrome.app.window.initializeAppWindow(windowParams); } else { var sandbox_window_message = 'Creating sandboxed window, it doesn\'t ' + 'have access to the chrome.app API.'; @@ -164,7 +177,12 @@ appWindow.registerCustomHook(function(bindingsAPI) { windowParams.frameId, function(success) { if (success) { - callback(view.chrome.app.window.current()); + var appwin = try_hidden(view).chrome.app.window.current(); + if (!appwin) { + try_hidden(view).chrome.app.window.initializeAppWindow(windowParams); + appwin = try_hidden(view).chrome.app.window.current(); + } + callback(appwin); } else { callback(undefined); } @@ -177,8 +195,6 @@ appWindow.registerCustomHook(function(bindingsAPI) { apiFunctions.setHandleRequest('current', function() { if (!currentAppWindow) { - console.error('The JavaScript context calling ' + - 'chrome.app.window.current() has no associated AppWindow.'); return null; } return currentAppWindow; @@ -187,7 +203,9 @@ appWindow.registerCustomHook(function(bindingsAPI) { apiFunctions.setHandleRequest('getAll', function() { var views = runtimeNatives.GetExtensionViews(-1, -1, 'APP_WINDOW'); return $Array.map(views, function(win) { - return win.chrome.app.window.current(); + if (try_nw(win).nw) //check for undefined case in NWJS#5528 + try_nw(win).nw.Window.get(); //construct the window object for NWJS#5294 + return try_hidden(win).chrome.app.window.current(); }); }); @@ -241,6 +259,9 @@ appWindow.registerCustomHook(function(bindingsAPI) { AppWindow.prototype.isFullscreen = function() { return appWindowData.fullscreen; }; + AppWindow.prototype.isResizable = function() { + return appWindowData.resizable; + }; AppWindow.prototype.isMinimized = function() { return appWindowData.minimized; }; @@ -311,6 +332,7 @@ appWindow.registerCustomHook(function(bindingsAPI) { minimized: params.minimized, maximized: params.maximized, alwaysOnTop: params.alwaysOnTop, + resizable: params.resizable, hasFrameColor: params.hasFrameColor, activeFrameColor: params.activeFrameColor, inactiveFrameColor: params.inactiveFrameColor, @@ -327,6 +349,18 @@ function boundsEqual(bounds1, bounds2) { bounds1.width == bounds2.width && bounds1.height == bounds2.height); } +function sizeEqual(bounds1, bounds2) { + if (!bounds1 || !bounds2) + return false; + return (bounds1.width == bounds2.width && bounds1.height == bounds2.height); +} + +function posEqual(bounds1, bounds2) { + if (!bounds1 || !bounds2) + return false; + return (bounds1.left == bounds2.left && bounds1.top == bounds2.top); +} + function dispatchEventIfExists(target, name) { // Sometimes apps like to put their own properties on the window which // break our assumptions. @@ -347,8 +381,20 @@ function updateAppWindowProperties(update) { var currentWindow = currentAppWindow; - if (!boundsEqual(oldData.innerBounds, update.innerBounds)) + if (!boundsEqual(oldData.innerBounds, update.innerBounds)) { dispatchEventIfExists(currentWindow, "onBoundsChanged"); + if (!sizeEqual(oldData.innerBounds, update.innerBounds)) + dispatchEventIfExists(currentWindow, "onResized"); + if (!posEqual(oldData.innerBounds, update.innerBounds)) + dispatchEventIfExists(currentWindow, "onMoved"); + } + + // NW fix: fire onRestored earlier than fullscreen/minimize/maximize + // events. See nwjs/nw.js#5388. + if ((oldData.fullscreen && !update.fullscreen) || + (oldData.minimized && !update.minimized) || + (oldData.maximized && !update.maximized)) + dispatchEventIfExists(currentWindow, "onRestored"); if (!oldData.fullscreen && update.fullscreen) dispatchEventIfExists(currentWindow, "onFullscreened"); @@ -357,11 +403,6 @@ function updateAppWindowProperties(update) { if (!oldData.maximized && update.maximized) dispatchEventIfExists(currentWindow, "onMaximized"); - if ((oldData.fullscreen && !update.fullscreen) || - (oldData.minimized && !update.minimized) || - (oldData.maximized && !update.maximized)) - dispatchEventIfExists(currentWindow, "onRestored"); - if (oldData.alphaEnabled !== update.alphaEnabled) dispatchEventIfExists(currentWindow, "onAlphaEnabledChanged"); }; diff --git a/extensions/renderer/resources/binding.js b/extensions/renderer/resources/binding.js index 22f3f583ca953..e7c70c6b49c2e 100644 --- a/extensions/renderer/resources/binding.js +++ b/extensions/renderer/resources/binding.js @@ -384,12 +384,15 @@ Binding.prototype = { apiFunction.definition = functionDef; apiFunction.name = schema.namespace + '.' + functionDef.name; + if (schema.namespace != "app.window" && + schema.namespace != "nw.Window" && + schema.namespace != "runtime") { if (!GetAvailability(apiFunction.name).is_available || (checkUnprivileged && !isSchemaAccessAllowed(functionDef))) { this.apiFunctions_.registerUnavailable(functionDef.name); return; } - + } // TODO(aa): It would be best to run this in a unit test, but in order // to do that we would need to better factor this code so that it // doesn't depend on so much v8::Extension machinery. diff --git a/extensions/renderer/resources/event.js b/extensions/renderer/resources/event.js index 2f9aa3c7a551f..4e7a29bb4d3e1 100644 --- a/extensions/renderer/resources/event.js +++ b/extensions/renderer/resources/event.js @@ -253,6 +253,9 @@ dispatchArgs(args); } + EventImpl.prototype.getListeners = function() { + return this.listeners; + }; // Registers a callback to be called when this event is dispatched. EventImpl.prototype.addListener = function(cb, filters) { if (!this.eventOptions.supportsListeners) @@ -500,6 +503,7 @@ } utils.expose(Event, EventImpl, { functions: [ + 'getListeners', 'addListener', 'removeListener', 'hasListener', diff --git a/extensions/renderer/resources/extensions_renderer_resources.grd b/extensions/renderer/resources/extensions_renderer_resources.grd index 2e4502ad2fd4a..a4c3f81c50db6 100644 --- a/extensions/renderer/resources/extensions_renderer_resources.grd +++ b/extensions/renderer/resources/extensions_renderer_resources.grd @@ -92,6 +92,18 @@ <include name="IDR_MEDIA_ROUTER_BINDINGS_JS" file="media_router_bindings.js" type="BINDATA" /> <include name="IDR_MOJO_COMMON_CUSTOM_TYPES_MOJOM_JS" file="${mojom_root}\mojo\common\common_custom_types.mojom.js" use_base_dir="false" type="BINDATA" /> </if> + <include name="IDR_NW_PRE13_SHIM_JS" file="../../../content/nw/src/resources/nw_pre13_shim.js" type="BINDATA" /> + <include name="IDR_NWAPI_APP_JS" file="../../../content/nw/src/resources/api_nw_app.js" type="BINDATA" /> + <include name="IDR_NWAPI_WINDOW_JS" file="../../../content/nw/src/resources/api_nw_window.js" type="BINDATA" /> + <include name="IDR_NWAPI_CLIPBOARD_JS" file="../../../content/nw/src/resources/api_nw_clipboard.js" type="BINDATA" /> + <include name="IDR_NWAPI_MENU_JS" file="../../../content/nw/src/resources/api_nw_menu.js" type="BINDATA" /> + <include name="IDR_NWAPI_MENUITEM_JS" file="../../../content/nw/src/resources/api_nw_menuitem.js" type="BINDATA" /> + <include name="IDR_NWAPI_SCREEN_JS" file="../../../content/nw/src/resources/api_nw_screen.js" type="BINDATA" /> + <include name="IDR_NWAPI_SHORTCUT_JS" file="../../../content/nw/src/resources/api_nw_shortcut.js" type="BINDATA" /> + <include name="IDR_NWAPI_SHELL_JS" file="../../../content/nw/src/resources/api_nw_shell.js" type="BINDATA" /> + <include name="IDR_NWAPI_OBJECT_JS" file="../../../content/nw/src/resources/api_nw_object.js" type="BINDATA" /> + <include name="IDR_NWAPI_TEST_JS" file="../../../content/nw/src/resources/api_nw_test.js" type="BINDATA" /> + <include name="IDR_NWAPI_TRAY_JS" file="../../../content/nw/src/resources/api_nw_tray.js" type="BINDATA" /> </includes> <structures> <!-- Extension styles. --> diff --git a/extensions/renderer/resources/guest_view/web_view/web_view_api_methods.js b/extensions/renderer/resources/guest_view/web_view/web_view_api_methods.js index 9a19bc249298f..faba4e84462f9 100644 --- a/extensions/renderer/resources/guest_view/web_view/web_view_api_methods.js +++ b/extensions/renderer/resources/guest_view/web_view/web_view_api_methods.js @@ -55,7 +55,7 @@ var WEB_VIEW_API_METHODS = [ // Returns Chrome's internal process ID for the guest web page's current // process. 'getProcessId', - + 'getGuestId', // Returns the user agent string used by the webview for guest page requests. 'getUserAgent', @@ -81,6 +81,7 @@ var WEB_VIEW_API_METHODS = [ // of the data URL. 'loadDataWithBaseUrl', + 'showDevTools', // Prints the contents of the webview. 'print', @@ -142,6 +143,10 @@ WebViewImpl.prototype.getProcessId = function() { return this.processId; }; +WebViewImpl.prototype.getGuestId = function() { + return this.guest.getId(); +}; + WebViewImpl.prototype.getUserAgent = function() { return this.userAgentOverride || navigator.userAgent; }; @@ -171,6 +176,16 @@ WebViewImpl.prototype.loadDataWithBaseUrl = function( }); }; +WebViewImpl.prototype.showDevTools = function(show, container) { + if (!this.guest.getId()) { + return; + } + if (container) + WebViewInternal.showDevTools(this.guest.getId(), show, container.getProcessId(), container.getGuestId()); + else + WebViewInternal.showDevTools(this.guest.getId(), show); +}; + WebViewImpl.prototype.print = function() { return this.executeScript({code: 'window.print();'}); }; diff --git a/extensions/renderer/resources/guest_view/web_view/web_view_attributes.js b/extensions/renderer/resources/guest_view/web_view/web_view_attributes.js index ce538fdc3df3c..1da568698ccd8 100644 --- a/extensions/renderer/resources/guest_view/web_view/web_view_attributes.js +++ b/extensions/renderer/resources/guest_view/web_view/web_view_attributes.js @@ -49,6 +49,18 @@ AllowTransparencyAttribute.prototype.handleMutation = function(oldValue, this.getValue()); }; +function AllowNWAttribute(view) { + GuestViewAttributes.BooleanAttribute.call( + this, WebViewConstants.ATTRIBUTE_ALLOWNW, view); +} + +AllowNWAttribute.prototype.__proto__ = + GuestViewAttributes.BooleanAttribute.prototype; + +AllowNWAttribute.prototype.handleMutation = function(oldValue, + newValue) { +}; + // ----------------------------------------------------------------------------- // AutosizeDimensionAttribute object. @@ -265,6 +277,8 @@ WebViewImpl.prototype.setupAttributes = function() { new PartitionAttribute(this); this.attributes[WebViewConstants.ATTRIBUTE_SRC] = new SrcAttribute(this); + this.attributes[WebViewConstants.ATTRIBUTE_ALLOWNW] = + new AllowNWAttribute(this); var autosizeAttributes = [WebViewConstants.ATTRIBUTE_MAXHEIGHT, WebViewConstants.ATTRIBUTE_MAXWIDTH, diff --git a/extensions/renderer/resources/guest_view/web_view/web_view_constants.js b/extensions/renderer/resources/guest_view/web_view/web_view_constants.js index 09110e1474978..797e71b40c308 100644 --- a/extensions/renderer/resources/guest_view/web_view/web_view_constants.js +++ b/extensions/renderer/resources/guest_view/web_view/web_view_constants.js @@ -17,6 +17,7 @@ var WebViewConstants = { ATTRIBUTE_NAME: 'name', ATTRIBUTE_PARTITION: 'partition', ATTRIBUTE_SRC: 'src', + ATTRIBUTE_ALLOWNW: 'allownw', // Error/warning messages. ERROR_MSG_ALREADY_NAVIGATED: '<webview>: ' + diff --git a/extensions/renderer/resources/last_error.js b/extensions/renderer/resources/last_error.js index 14836b70067ec..a9bc9846e21d1 100644 --- a/extensions/renderer/resources/last_error.js +++ b/extensions/renderer/resources/last_error.js @@ -94,7 +94,7 @@ function assertRuntimeIsAvailable() { throw new Error('runtime.lastError is not available: ' + runtimeAvailability.message); } - if (!chrome.runtime) + if (!chrome.runtime && !privates(window).chrome.runtime) throw new Error('runtime namespace is null or undefined'); } diff --git a/extensions/renderer/resources/send_request.js b/extensions/renderer/resources/send_request.js index 5a9fa965e3ef7..8b17447e774d4 100644 --- a/extensions/renderer/resources/send_request.js +++ b/extensions/renderer/resources/send_request.js @@ -24,11 +24,18 @@ function safeCallbackApply(name, request, callback, args) { } } +var try_hidden = function (view) { + if (view.chrome.runtime) + return view; + return privates(view); +}; + // Callback handling. function handleResponse(requestId, name, success, responseList, error) { // The chrome objects we will set lastError on. Really we should only be // setting this on the callback's chrome object, but set on ours too since // it's conceivable that something relies on that. + var chrome = try_hidden(window).chrome; var callerChrome = chrome; try { @@ -39,7 +46,7 @@ function handleResponse(requestId, name, success, responseList, error) { // though chances are it's the same as ours (it will be different when // calling API methods on other contexts). if (request.callback) { - var global = natives.GetGlobal(request.callback); + var global = try_hidden(natives.GetGlobal(request.callback)); callerChrome = global ? global.chrome : callerChrome; } @@ -131,6 +138,26 @@ function sendRequest(functionName, args, argSchemas, optArgs) { requests[requestId] = request; } +function sendRequestSync(functionName, args, argSchemas, optArgs) { + if (!optArgs) + optArgs = {}; + var request = prepareRequest(args, argSchemas); + request.stack = optArgs.stack || exceptionHandler.getExtensionStackTrace(); + if (optArgs.customCallback) { + request.customCallback = optArgs.customCallback; + } + + //var requestId = natives.GetNextRequestId(); + //request.id = requestId; + + var hasCallback = request.callback || optArgs.customCallback; + return natives.StartRequestSync(functionName, + request.args, + hasCallback, + optArgs.forIOThread, + optArgs.preserveNullInObjects); +} + function getCalledSendRequest() { return calledSendRequest; } @@ -140,6 +167,7 @@ function clearCalledSendRequest() { } exports.$set('sendRequest', sendRequest); +exports.$set('sendRequestSync', sendRequestSync); exports.$set('getCalledSendRequest', getCalledSendRequest); exports.$set('clearCalledSendRequest', clearCalledSendRequest); exports.$set('safeCallbackApply', safeCallbackApply); diff --git a/extensions/renderer/runtime_custom_bindings.cc b/extensions/renderer/runtime_custom_bindings.cc index 81c6e31bced1c..c8f8b255be976 100644 --- a/extensions/renderer/runtime_custom_bindings.cc +++ b/extensions/renderer/runtime_custom_bindings.cc @@ -5,6 +5,7 @@ #include "extensions/renderer/runtime_custom_bindings.h" #include <stdint.h> +#include "extensions/renderer/script_context_set.h" #include <memory> @@ -80,8 +81,13 @@ void RuntimeCustomBindings::GetExtensionViews( } const std::string& extension_id = context()->GetExtensionID(); - if (extension_id.empty()) - return; + // id is empty while calling from external page. we want to do + // this for window controlling. note the case that there are + // multiple extensions in the process, e.g. the automation extension + // for chromedriver + + // if (extension_id.empty()) + // return; std::vector<content::RenderFrame*> frames = ExtensionFrameHelper::GetExtensionFrames(extension_id, browser_window_id, @@ -98,11 +104,19 @@ void RuntimeCustomBindings::GetExtensionViews( if (web_frame->top() != web_frame) continue; +#if 0 + //remote page need to call GetExtensionViews in api_nw_window.js #5312 if (!blink::WebFrame::scriptCanAccess(web_frame)) continue; +#endif v8::Local<v8::Context> context = web_frame->mainWorldScriptContext(); if (!context.IsEmpty()) { + if (extension_id.empty()) { + ScriptContext* ctx = ScriptContextSet::GetContextByV8Context(context); + if (!ctx->extension()->is_nwjs_app()) + continue; + } v8::Local<v8::Value> window = context->Global(); CHECK(!window.IsEmpty()); v8::Maybe<bool> maybe = diff --git a/extensions/renderer/script_context.cc b/extensions/renderer/script_context.cc index 0dff2e5131cc9..31040447c89a8 100644 --- a/extensions/renderer/script_context.cc +++ b/extensions/renderer/script_context.cc @@ -107,7 +107,8 @@ ScriptContext::ScriptContext(const v8::Local<v8::Context>& v8_context, effective_context_type_(effective_context_type), safe_builtins_(this), isolate_(v8_context->GetIsolate()), - runner_(new Runner(this)) { + runner_(new Runner(this)), + weak_factory_(this) { VLOG(1) << "Created context:\n" << GetDebugString(); gin::PerContextData* gin_data = gin::PerContextData::From(v8_context); CHECK(gin_data); @@ -288,13 +289,21 @@ GURL ScriptContext::GetDataSourceURLForFrame(const blink::WebFrame* frame) { blink::WebDataSource* data_source = frame->provisionalDataSource() ? frame->provisionalDataSource() : frame->dataSource(); - return data_source ? GURL(data_source->request().url()) : GURL(); + GURL ret = data_source ? GURL(data_source->request().url()) : GURL(); +#if 0 + //nwjs: iframe url + if (!ret.is_valid() || ret.is_empty()) + ret = frame->document().url(); +#endif + return ret; } // static GURL ScriptContext::GetAccessCheckedFrameURL(const blink::WebFrame* frame) { const blink::WebURL& weburl = frame->document().url(); - if (weburl.isEmpty()) { + if (weburl.isEmpty() || GURL(weburl) == GURL("about:blank")) { + // NWJS fix for iframe-remote race condition on win release + // against 79b64c3e741cc9c6afbb23885945831a45c6baa5 blink::WebDataSource* data_source = frame->provisionalDataSource() ? frame->provisionalDataSource() : frame->dataSource(); @@ -314,7 +323,9 @@ GURL ScriptContext::GetEffectiveDocumentURL(const blink::WebFrame* frame, // Common scenario. If |match_about_blank| is false (as is the case in most // extensions), or if the frame is not an about:-page, just return // |document_url| (supposedly the URL of the frame). - if (!match_about_blank || !document_url.SchemeIs(url::kAboutScheme)) + + // nwjs: iframe's document_url is invalid here + if (!match_about_blank || (!document_url.SchemeIs(url::kAboutScheme) && document_url.is_valid())) return document_url; // Non-sandboxed about:blank and about:srcdoc pages inherit their security @@ -412,6 +423,9 @@ bool ScriptContext::HasAccessOrThrowError(const std::string& name) { return false; } + if (extension() && extension()->is_nwjs_app()) + return true; + Feature::Availability availability = GetAvailability(name); if (!availability.is_available()) { isolate()->ThrowException(v8::Exception::Error( diff --git a/extensions/renderer/script_context.h b/extensions/renderer/script_context.h index 197ed3a180b21..5410970495b3c 100644 --- a/extensions/renderer/script_context.h +++ b/extensions/renderer/script_context.h @@ -262,6 +262,8 @@ class ScriptContext : public RequestSender::Source { std::unique_ptr<Runner> runner_; base::ThreadChecker thread_checker_; + public: + base::WeakPtrFactory<ScriptContext> weak_factory_; DISALLOW_COPY_AND_ASSIGN(ScriptContext); }; diff --git a/extensions/renderer/script_context_set.cc b/extensions/renderer/script_context_set.cc index 276acae073c44..765a2d5f72430 100644 --- a/extensions/renderer/script_context_set.cc +++ b/extensions/renderer/script_context_set.cc @@ -47,7 +47,7 @@ ScriptContext* ScriptContextSet::Register( GURL frame_url = ScriptContext::GetDataSourceURLForFrame(frame); Feature::Context context_type = ClassifyJavaScriptContext(extension, extension_group, frame_url, - frame->document().getSecurityOrigin()); + frame->document().getSecurityOrigin(), frame); Feature::Context effective_context_type = ClassifyJavaScriptContext( effective_extension, extension_group, ScriptContext::GetEffectiveDocumentURL(frame, frame_url, true), @@ -169,7 +169,9 @@ Feature::Context ScriptContextSet::ClassifyJavaScriptContext( const Extension* extension, int extension_group, const GURL& url, - const blink::WebSecurityOrigin& origin) { + const blink::WebSecurityOrigin& origin, + const blink::WebLocalFrame* frame + ) { // WARNING: This logic must match ProcessMap::GetContextType, as much as // possible. @@ -188,7 +190,7 @@ Feature::Context ScriptContextSet::ClassifyJavaScriptContext( // before the SecurityContext is updated with the sandbox flags (after // reading the CSP header), so the caller can't check if the context's // security origin is unique yet. - if (ScriptContext::IsSandboxedPage(url)) + if (ScriptContext::IsSandboxedPage(url) || (frame && frame->isNwDisabledChildFrame())) return Feature::WEB_PAGE_CONTEXT; if (extension && active_extension_ids_->count(extension->id()) > 0) { diff --git a/extensions/renderer/script_context_set.h b/extensions/renderer/script_context_set.h index 355139747a434..e9eb1449f2cfd 100644 --- a/extensions/renderer/script_context_set.h +++ b/extensions/renderer/script_context_set.h @@ -124,7 +124,9 @@ class ScriptContextSet { const Extension* extension, int extension_group, const GURL& url, - const blink::WebSecurityOrigin& origin); + const blink::WebSecurityOrigin& origin, + const blink::WebLocalFrame* frame = nullptr + ); // Helper for OnExtensionUnloaded(). void RecordAndRemove(std::set<ScriptContext*>* removed, diff --git a/extensions/renderer/send_request_natives.cc b/extensions/renderer/send_request_natives.cc index c27b533278ac3..07964818194de 100644 --- a/extensions/renderer/send_request_natives.cc +++ b/extensions/renderer/send_request_natives.cc @@ -23,11 +23,61 @@ SendRequestNatives::SendRequestNatives(RequestSender* request_sender, RouteFunction( "StartRequest", base::Bind(&SendRequestNatives::StartRequest, base::Unretained(this))); + RouteFunction( + "StartRequestSync", + base::Bind(&SendRequestNatives::StartRequestSync, base::Unretained(this))); RouteFunction( "GetGlobal", base::Bind(&SendRequestNatives::GetGlobal, base::Unretained(this))); } +void SendRequestNatives::StartRequestSync( + const v8::FunctionCallbackInfo<v8::Value>& args) { + CHECK_EQ(5, args.Length()); + std::string name = *v8::String::Utf8Value(args[0]); + bool has_callback = args[2]->BooleanValue(); + bool for_io_thread = args[3]->BooleanValue(); + bool preserve_null_in_objects = args[4]->BooleanValue(); + + int request_id = request_sender_->GetNextRequestId(); + std::unique_ptr<V8ValueConverter> converter(V8ValueConverter::create()); + + // See http://crbug.com/149880. The context menus APIs relies on this, but + // we shouldn't really be doing it (e.g. for the sake of the storage API). + converter->SetFunctionAllowed(true); + + if (!preserve_null_in_objects) + converter->SetStripNullFromObjects(true); + + std::unique_ptr<base::Value> value_args( + converter->FromV8Value(args[1], context()->v8_context())); + if (!value_args.get() || !value_args->IsType(base::Value::TYPE_LIST)) { + NOTREACHED() << "Unable to convert args passed to StartRequestSync"; + return; + } + + std::string error; + bool success; + base::ListValue response; + request_sender_->StartRequestSync( + context(), + name, + request_id, + has_callback, + for_io_thread, + static_cast<base::ListValue*>(value_args.get()), + &success, + &response, &error + ); + if (!success) { + args.GetIsolate()->ThrowException( + v8::String::NewFromUtf8(args.GetIsolate(), error.c_str())); + return; + } + args.GetReturnValue().Set(converter->ToV8Value(&response, + context()->v8_context())); +} + // Starts an API request to the browser, with an optional callback. The // callback will be dispatched to EventBindings::HandleResponse. void SendRequestNatives::StartRequest( diff --git a/extensions/renderer/send_request_natives.h b/extensions/renderer/send_request_natives.h index 69212e1dbb135..4a460866a1b68 100644 --- a/extensions/renderer/send_request_natives.h +++ b/extensions/renderer/send_request_natives.h @@ -23,6 +23,7 @@ class SendRequestNatives : public ObjectBackedNativeHandler { // Starts an API request to the browser, with an optional callback. The // callback will be dispatched to EventBindings::HandleResponse. void StartRequest(const v8::FunctionCallbackInfo<v8::Value>& args); + void StartRequestSync(const v8::FunctionCallbackInfo<v8::Value>& args); // Gets a reference to an object's global object. void GetGlobal(const v8::FunctionCallbackInfo<v8::Value>& args); diff --git a/extensions/renderer/user_script_injector.cc b/extensions/renderer/user_script_injector.cc index 73096868c94a4..b21a225d1de41 100644 --- a/extensions/renderer/user_script_injector.cc +++ b/extensions/renderer/user_script_injector.cc @@ -134,7 +134,7 @@ UserScript::InjectionType UserScriptInjector::script_type() const { } bool UserScriptInjector::ShouldExecuteInMainWorld() const { - return false; + return script_->in_main_world(); } bool UserScriptInjector::IsUserGesture() const { diff --git a/extensions/renderer/v8_context_native_handler.cc b/extensions/renderer/v8_context_native_handler.cc index 85c3c3794ea2c..8ac8fd8d306aa 100644 --- a/extensions/renderer/v8_context_native_handler.cc +++ b/extensions/renderer/v8_context_native_handler.cc @@ -28,6 +28,18 @@ void V8ContextNativeHandler::GetAvailability( v8::Isolate* isolate = args.GetIsolate(); std::string api_name = *v8::String::Utf8Value(args[0]); Feature::Availability availability = context_->GetAvailability(api_name); + if (api_name == "app.window" || api_name == "nw.Window" || + api_name == "runtime") { + v8::Local<v8::Object> ret = v8::Object::New(isolate); + ret->Set(v8::String::NewFromUtf8(isolate, "is_available"), + v8::Boolean::New(isolate, true)); + ret->Set(v8::String::NewFromUtf8(isolate, "message"), + v8::String::NewFromUtf8(isolate, "")); + ret->Set(v8::String::NewFromUtf8(isolate, "result"), + v8::Integer::New(isolate, Feature::IS_AVAILABLE)); + args.GetReturnValue().Set(ret); + return; + } v8::Local<v8::Object> ret = v8::Object::New(isolate); v8::Maybe<bool> maybe = diff --git a/ios/chrome/browser/snapshots/snapshot_cache.mm b/ios/chrome/browser/snapshots/snapshot_cache.mm index 8e85668ae4827..b96902d269faf 100644 --- a/ios/chrome/browser/snapshots/snapshot_cache.mm +++ b/ios/chrome/browser/snapshots/snapshot_cache.mm @@ -44,7 +44,7 @@ - (void)saveGreyImage:(UIImage*)greyImage forKey:(NSString*)sessionID; @end namespace { -static NSArray* const kSnapshotCacheDirectory = @[ @"Chromium", @"Snapshots" ]; +static NSArray* const kSnapshotCacheDirectory = @[ @"nwjs", @"Snapshots" ]; const NSUInteger kCacheInitialCapacity = 100; const NSUInteger kGreyInitialCapacity = 8; diff --git a/ipc/ipc_logging.cc b/ipc/ipc_logging.cc index af532cd318e7b..079b9f41b705d 100644 --- a/ipc/ipc_logging.cc +++ b/ipc/ipc_logging.cc @@ -239,7 +239,7 @@ void Logging::Log(const LogData& data) { } } } - if (enabled_on_stderr_) { + if (enabled_on_stderr_ && !sender_) { std::string message_name; if (data.message_name.empty()) { message_name = base::StringPrintf("[unknown type %d]", data.type); diff --git a/media/BUILD.gn b/media/BUILD.gn index 652aad4d9baef..d80edfe5e492a 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -12,7 +12,6 @@ import("//media/media_options.gni") import("//ppapi/features/features.gni") import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/test.gni") -import("//third_party/ffmpeg/ffmpeg_options.gni") buildflag_header("media_features") { header = "media_features.h" @@ -25,12 +24,6 @@ buildflag_header("media_features") { ] } -if (proprietary_codecs && media_use_ffmpeg) { - assert( - ffmpeg_branding != "Chromium", - "proprietary codecs and ffmpeg_branding set to Chromium are incompatible") -} - # Common configuration for targets in the media directory. # NOT for exporting. config("media_config") { diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc index f182a9d08bebb..79aa78c28875a 100644 --- a/media/audio/audio_manager_base.cc +++ b/media/audio/audio_manager_base.cc @@ -93,9 +93,10 @@ AudioManagerBase::~AudioManagerBase() { DCHECK(GetTaskRunner()->BelongsToCurrentThread()); // All the output streams should have been deleted. - CHECK_EQ(0, num_output_streams_); + //disable the check for NWJS#5318 + //CHECK_EQ(0, num_output_streams_); // All the input streams should have been deleted. - CHECK(input_streams_.empty()); + //CHECK(input_streams_.empty()); } base::string16 AudioManagerBase::GetAudioInputDeviceModel() { diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc index ce36e2f20f322..bad676a3ed1d4 100644 --- a/media/ffmpeg/ffmpeg_common.cc +++ b/media/ffmpeg/ffmpeg_common.cc @@ -128,6 +128,12 @@ AVCodecID AudioCodecToCodecID(AudioCodec audio_codec, return AV_CODEC_ID_AAC; case kCodecALAC: return AV_CODEC_ID_ALAC; +#if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING) + case kCodecAC3: + return AV_CODEC_ID_AC3; + case kCodecEAC3: + return AV_CODEC_ID_EAC3; +#endif case kCodecMP3: return AV_CODEC_ID_MP3; case kCodecPCM: diff --git a/net/cert/cert_verify_proc_mac.cc b/net/cert/cert_verify_proc_mac.cc index 08f1b887f59db..ee415c7738b08 100644 --- a/net/cert/cert_verify_proc_mac.cc +++ b/net/cert/cert_verify_proc_mac.cc @@ -5,6 +5,7 @@ #include "net/cert/cert_verify_proc_mac.h" #include <CommonCrypto/CommonDigest.h> +#include <CoreFoundation/CFArray.h> #include <CoreServices/CoreServices.h> #include <Security/Security.h> @@ -516,6 +517,7 @@ int BuildAndEvaluateSecTrustRef(CFArrayRef cert_array, CFArrayRef trust_policies, int flags, CFArrayRef keychain_search_list, + const CertificateList& additional_trust_anchors, ScopedCFTypeRef<SecTrustRef>* trust_ref, SecTrustResultType* trust_result, ScopedCFTypeRef<CFArrayRef>* verified_chain, @@ -539,6 +541,23 @@ int BuildAndEvaluateSecTrustRef(CFArrayRef cert_array, return NetErrorFromOSStatus(status); } + if (!additional_trust_anchors.empty()) { + // Code from TestRootCerts::FixupSecTrustRef in test_root_certs_mac.cc + base::ScopedCFTypeRef<CFMutableArrayRef> temporary_roots( + CFArrayCreateMutable(kCFAllocatorDefault, additional_trust_anchors.size(), &kCFTypeArrayCallBacks)); + for (size_t i=0; i<additional_trust_anchors.size(); i++) { + CFArrayAppendValue(temporary_roots, additional_trust_anchors[i]->os_cert_handle()); + } + + status = SecTrustSetAnchorCertificates(tmp_trust, temporary_roots); + if (status) + return NetErrorFromOSStatus(status); + + status = SecTrustSetAnchorCertificatesOnly(tmp_trust, false); + if (status) + return NetErrorFromOSStatus(status); + } + CSSM_APPLE_TP_ACTION_DATA tp_action_data; memset(&tp_action_data, 0, sizeof(tp_action_data)); tp_action_data.Version = CSSM_APPLE_TP_ACTION_VERSION; @@ -668,6 +687,7 @@ int VerifyWithGivenFlags(X509Certificate* cert, const int flags, CRLSet* crl_set, CertVerifyResult* verify_result, + const CertificateList& additional_trust_anchors, CRLSetResult* completed_chain_crl_result) { ScopedCFTypeRef<CFArrayRef> trust_policies; OSStatus status = CreateTrustPolicies(flags, &trust_policies); @@ -808,7 +828,7 @@ int VerifyWithGivenFlags(X509Certificate* cert, int rv = BuildAndEvaluateSecTrustRef( cert_array, trust_policies, flags, - scoped_alternate_keychain_search_list.get(), &temp_ref, + scoped_alternate_keychain_search_list.get(), additional_trust_anchors, &temp_ref, &temp_trust_result, &temp_chain, &temp_chain_info); if (rv != OK) return rv; @@ -1043,7 +1063,7 @@ CertVerifyProcMac::CertVerifyProcMac() {} CertVerifyProcMac::~CertVerifyProcMac() {} bool CertVerifyProcMac::SupportsAdditionalTrustAnchors() const { - return false; + return true; } bool CertVerifyProcMac::SupportsOCSPStapling() const { @@ -1070,7 +1090,7 @@ int CertVerifyProcMac::VerifyInternal( GetCandidateEVPolicy(cert, &candidate_ev_policy_oid); CRLSetResult completed_chain_crl_result; - int rv = VerifyWithGivenFlags(cert, hostname, flags, crl_set, verify_result, + int rv = VerifyWithGivenFlags(cert, hostname, flags, crl_set, verify_result, additional_trust_anchors, &completed_chain_crl_result); if (rv != OK) return rv; @@ -1092,7 +1112,7 @@ int CertVerifyProcMac::VerifyInternal( int tmp_rv = VerifyWithGivenFlags( verify_result->verified_cert.get(), hostname, flags | CertVerifier::VERIFY_REV_CHECKING_ENABLED, crl_set, - verify_result, &completed_chain_crl_result); + verify_result, additional_trust_anchors, &completed_chain_crl_result); // If re-verification failed, return those results without setting EV // status. if (tmp_rv != OK) diff --git a/net/cert/cert_verify_proc_win.cc b/net/cert/cert_verify_proc_win.cc index a13117a7a8e2e..f8151b30272a3 100644 --- a/net/cert/cert_verify_proc_win.cc +++ b/net/cert/cert_verify_proc_win.cc @@ -902,7 +902,7 @@ CertVerifyProcWin::CertVerifyProcWin() {} CertVerifyProcWin::~CertVerifyProcWin() {} bool CertVerifyProcWin::SupportsAdditionalTrustAnchors() const { - return false; + return true; } bool CertVerifyProcWin::SupportsOCSPStapling() const { @@ -1167,8 +1167,35 @@ int CertVerifyProcWin::VerifyInternal( ScopedPCCERT_CHAIN_CONTEXT scoped_chain_context(chain_context); + DWORD errorStatus = chain_context->TrustStatus.dwErrorStatus; + bool skipPolicyCheck = false; + if (((errorStatus & CERT_TRUST_IS_UNTRUSTED_ROOT) || (errorStatus & (CERT_TRUST_IS_OFFLINE_REVOCATION | CERT_TRUST_REVOCATION_STATUS_UNKNOWN)))&& + !additional_trust_anchors.empty()) { + // check if the (untrusted) validated root is in the list of + // additional trust anchors + PCERT_SIMPLE_CHAIN first_chain = chain_context->rgpChain[0]; + DWORD num_elements = first_chain->cElement; + if (num_elements >= 1) { + PCERT_CHAIN_ELEMENT* element = first_chain->rgpElement; + PCCERT_CONTEXT cert = element[num_elements - 1]->pCertContext; + for (size_t i=0; i<additional_trust_anchors.size(); i++) { + if (net::X509Certificate::IsSameOSCert(cert, + additional_trust_anchors[i]->os_cert_handle())) { + LOG(INFO) << "Untrusted root \"" << + additional_trust_anchors[i]->subject().GetDisplayName() << + "\" found in additional anchors, assuming trusted."; + verify_result->is_issued_by_additional_trust_anchor = true; + errorStatus &= ~(CERT_TRUST_IS_UNTRUSTED_ROOT | CERT_TRUST_IS_OFFLINE_REVOCATION + | CERT_TRUST_REVOCATION_STATUS_UNKNOWN | CERT_TRUST_IS_PARTIAL_CHAIN); + skipPolicyCheck = true; + break; + } + } + } + } + verify_result->cert_status |= MapCertChainErrorStatusToCertStatus( - chain_context->TrustStatus.dwErrorStatus); + errorStatus); // Flag certificates that have a Subject common name with a NULL character. if (CertSubjectCommonNameHasNull(cert_handle)) @@ -1176,6 +1203,7 @@ int CertVerifyProcWin::VerifyInternal( base::string16 hostname16 = base::ASCIIToUTF16(hostname); + if (!skipPolicyCheck) { SSL_EXTRA_CERT_CHAIN_POLICY_PARA extra_policy_para; memset(&extra_policy_para, 0, sizeof(extra_policy_para)); extra_policy_para.cbSize = sizeof(extra_policy_para); @@ -1209,7 +1237,7 @@ int CertVerifyProcWin::VerifyInternal( verify_result->cert_status |= MapNetErrorToCertStatus( MapSecurityError(policy_status.dwError)); } - + } // TODO(wtc): Suppress CERT_STATUS_NO_REVOCATION_MECHANISM for now to be // compatible with WinHTTP, which doesn't report this error (bug 3004). verify_result->cert_status &= ~CERT_STATUS_NO_REVOCATION_MECHANISM; diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc index b656d83e6c078..de79c5d791fbf 100644 --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc @@ -994,6 +994,7 @@ bool CookieMonster::IsCookieableScheme(const std::string& scheme) { } const char* const CookieMonster::kDefaultCookieableSchemes[] = {"http", "https", + "chrome-extension", "ws", "wss"}; const int CookieMonster::kDefaultCookieableSchemesCount = arraysize(kDefaultCookieableSchemes); diff --git a/ppapi/native_client/src/untrusted/pnacl_support_extension/BUILD.gn b/ppapi/native_client/src/untrusted/pnacl_support_extension/BUILD.gn index f81896e891adc..ab71b7008c194 100644 --- a/ppapi/native_client/src/untrusted/pnacl_support_extension/BUILD.gn +++ b/ppapi/native_client/src/untrusted/pnacl_support_extension/BUILD.gn @@ -35,6 +35,7 @@ if (enable_nacl) { output_prefix = "$root_out_dir/pnacl/pnacl_public_" outputs = [ + "$root_out_dir/pnacl", "${output_prefix}pnacl_json", ] diff --git a/remoting/remoting_enable.gni b/remoting/remoting_enable.gni index 0160893bfc4e3..e1bd0d1930b50 100644 --- a/remoting/remoting_enable.gni +++ b/remoting/remoting_enable.gni @@ -5,7 +5,7 @@ import("//build/config/ui.gni") declare_args() { - enable_remoting = !is_ios && !is_chromecast + enable_remoting = false } enable_remoting_host = false diff --git a/storage/browser/fileapi/isolated_context.cc b/storage/browser/fileapi/isolated_context.cc index 5511fb79e85c0..df7136898825b 100644 --- a/storage/browser/fileapi/isolated_context.cc +++ b/storage/browser/fileapi/isolated_context.cc @@ -160,6 +160,7 @@ IsolatedContext::Instance::Instance(FileSystemType type, filesystem_id_(filesystem_id), file_info_(file_info), path_type_(path_type), + files_(), ref_counts_(0) { DCHECK(IsSinglePathIsolatedFileSystem(type_)); } diff --git a/third_party/WebKit/Source/bindings/bindings.gni b/third_party/WebKit/Source/bindings/bindings.gni index 52facd4d84468..03cf6bf70b012 100644 --- a/third_party/WebKit/Source/bindings/bindings.gni +++ b/third_party/WebKit/Source/bindings/bindings.gni @@ -9,6 +9,8 @@ import("//third_party/WebKit/Source/bindings/modules/v8/v8.gni") bindings_core_v8_files = get_path_info([ + "core/v8/custom/V8HTMLIFrameElementCustom.cpp", + "core/v8/custom/V8FileListCustom.cpp", "core/v8/custom/V8CSSStyleDeclarationCustom.cpp", "core/v8/custom/V8CSSStyleRuleCustom.cpp", "core/v8/custom/V8CustomEventCustom.cpp", diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp index 949601ecd6c8b..4b43bec1c093f 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp @@ -178,6 +178,9 @@ WindowProxy* ScriptController::windowProxy(DOMWrapperWorld& world) { bool ScriptController::shouldBypassMainWorldCSP() { v8::HandleScope handleScope(isolate()); v8::Local<v8::Context> context = isolate()->GetCurrentContext(); + if (frame() && frame()->document() && + frame()->document()->getSecurityOrigin()->hasUniversalAccess()) + return true; if (context.IsEmpty() || !toDOMWindow(context)) return false; DOMWrapperWorld& world = DOMWrapperWorld::current(isolate()); diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptState.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptState.cpp index c16c328bdb4d2..1cadf6be7a128 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptState.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptState.cpp @@ -44,6 +44,7 @@ ScriptState::ScriptState(v8::Local<v8::Context> context, DCHECK(m_world); m_context.setWeak(this, &weakCallback); context->SetAlignedPointerInEmbedderData(v8ContextPerContextDataIndex, this); + context->SetAlignedPointerInEmbedderData(32, nullptr); } ScriptState::~ScriptState() { diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptState.h b/third_party/WebKit/Source/bindings/core/v8/ScriptState.h index b0b0fd8530be5..028aa95667138 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptState.h +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptState.h @@ -99,7 +99,7 @@ class CORE_EXPORT ScriptState : public RefCounted<ScriptState> { // ScriptState::from() must not be called for a context that does not have // valid embedder data in the embedder field. SECURITY_CHECK(scriptState); - SECURITY_CHECK(scriptState->context() == context); + SECURITY_CHECK(scriptState->context() == context || context->GetAlignedPointerFromEmbedderData(33) == (void*)0x08110800); return scriptState; } diff --git a/third_party/WebKit/Source/bindings/core/v8/V8DOMWrapper.cpp b/third_party/WebKit/Source/bindings/core/v8/V8DOMWrapper.cpp index 598c7849184a5..928b1165fb672 100644 --- a/third_party/WebKit/Source/bindings/core/v8/V8DOMWrapper.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/V8DOMWrapper.cpp @@ -108,6 +108,8 @@ void V8WrapperInstantiationScope::securityCheck( v8::Local<v8::Context> contextForWrapper) { if (m_context.IsEmpty()) return; + if (m_context->GetAlignedPointerFromEmbedderData(33) == (void*)0x08110800) + return; // If the context is different, we need to make sure that the current // context has access to the creation context. Frame* frame = toFrameIfNotDetached(contextForWrapper); diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp index dcb07ce1011bf..11f0eb2b0848e 100644 --- a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp @@ -25,6 +25,8 @@ #include "bindings/core/v8/V8Initializer.h" +#include "third_party/node/src/node_webkit.h" + #include "bindings/core/v8/DOMWrapperWorld.h" #include "bindings/core/v8/RejectedPromises.h" #include "bindings/core/v8/RetainedDOMInfo.h" @@ -66,6 +68,9 @@ #include <v8-debug.h> #include <v8-profiler.h> +extern VoidHookFn g_promise_reject_callback_fn; + + namespace blink { static Frame* findFrame(v8::Isolate* isolate, @@ -210,6 +215,12 @@ static void promiseRejectHandler(v8::PromiseRejectMessage data, v8::Isolate* isolate = promise->GetIsolate(); ExecutionContext* context = scriptState->getExecutionContext(); +#if 0 //FIXME (#4577) + LocalDOMWindow* window = currentDOMWindow(isolate); + if (window->frame()->isNodeJS() && g_promise_reject_callback_fn) + g_promise_reject_callback_fn(&data); +#endif + v8::Local<v8::Value> exception = data.GetValue(); if (V8DOMWrapper::isWrapper(isolate, exception)) { // Try to get the stack & location from a wrapped exception object (e.g. diff --git a/third_party/WebKit/Source/bindings/core/v8/custom/V8FileListCustom.cpp b/third_party/WebKit/Source/bindings/core/v8/custom/V8FileListCustom.cpp new file mode 100644 index 0000000000000..f53e6c13d1f46 --- /dev/null +++ b/third_party/WebKit/Source/bindings/core/v8/custom/V8FileListCustom.cpp @@ -0,0 +1,24 @@ +#include "bindings/core/v8/V8FileList.h" +#include "bindings/core/v8/V8File.h" +#include "bindings/core/v8/V8Binding.h" +#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" +#include "core/frame/LocalFrame.h" + +namespace blink { +void V8FileList::constructorCustom(const v8::FunctionCallbackInfo<v8::Value>& args) +{ + ExecutionContext* context = currentExecutionContext(args.GetIsolate()); + if (context && context->isDocument()) { + Document* document = toDocument(context); + if (document->frame()->isNwDisabledChildFrame()) { + V8ThrowException::throwTypeError(args.GetIsolate(), "FileList constructor cannot be called in nwdisabled frame."); + return; + } + } + + FileList* impl = FileList::create(); + v8SetReturnValue(args, impl); +} + +} // namespace blink diff --git a/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLIFrameElementCustom.cpp b/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLIFrameElementCustom.cpp new file mode 100644 index 0000000000000..eb586817f9c8b --- /dev/null +++ b/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLIFrameElementCustom.cpp @@ -0,0 +1,25 @@ +#include "bindings/core/v8/V8Binding.h" +#include "bindings/core/v8/V8HTMLIFrameElement.h" +#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" +#include "core/frame/LocalFrame.h" + +namespace blink { + +using namespace HTMLNames; + +void V8HTMLIFrameElement::nwUserAgentAttributeSetterCustom(v8::Local<v8::Value> value, const v8::FunctionCallbackInfo<v8::Value>& info) +{ + HTMLIFrameElement* frame = V8HTMLIFrameElement::toImpl(info.Holder()); + // String agentValue = toCoreStringWithNullCheck(value); + TOSTRING_VOID(V8StringResource<>, agentValue, value); + + frame->setAttribute(HTMLNames::nwuseragentAttr, agentValue); + + if (frame->contentFrame()->isLocalFrame()) { + LocalFrame* lframe = toLocalFrame(frame->contentFrame()); + lframe->loader().setUserAgentOverride(agentValue); + } +} + +} // namespace blink diff --git a/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp b/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp index 2288a3c237461..056e78d054261 100644 --- a/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp @@ -62,6 +62,9 @@ #include "platform/LayoutTestSupport.h" #include "wtf/Assertions.h" + +#include "bindings/core/v8/V8HTMLFrameElement.h" + namespace blink { void V8Window::eventAttributeGetterCustom( @@ -90,10 +93,39 @@ void V8Window::eventAttributeGetterCustom( v8SetReturnValue(info, jsEvent); } +void V8Window::parentAttributeGetterCustom(const v8::PropertyCallbackInfo<v8::Value>& info) +{ + LocalDOMWindow* imp = toLocalDOMWindow(V8Window::toImpl(info.Holder())); + LocalFrame* frame = imp->frame(); + if (frame && frame->isNwFakeTop()) { + v8SetReturnValue(info, toV8(imp, info.Holder(), info.GetIsolate())); + return; + } + v8SetReturnValue(info, toV8(imp->parent(), info.Holder(), info.GetIsolate())); +} + +void V8Window::topAttributeGetterCustom(const v8::PropertyCallbackInfo<v8::Value>& info) +{ + LocalDOMWindow* imp = toLocalDOMWindow(V8Window::toImpl(info.Holder())); + LocalFrame* frame = imp->frame(); + if (frame) { + for (LocalFrame* f = frame; f; f = toLocalFrame(f->tree().parent())) { + if (f->isNwFakeTop()) { + v8SetReturnValue(info, toV8(f->document()->domWindow(), info.Holder(), info.GetIsolate())); + return; + } + } + } + v8SetReturnValue(info, toV8(imp->top(), info.Holder(), info.GetIsolate())); +} + void V8Window::eventAttributeSetterCustom( v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info) { LocalDOMWindow* impl = toLocalDOMWindow(V8Window::toImpl(info.Holder())); + LocalFrame* frame = impl->frame(); + if (frame && frame->isNwFakeTop()) + return; ExceptionState exceptionState(ExceptionState::SetterContext, "event", "Window", info.Holder(), info.GetIsolate()); if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(info.GetIsolate()), @@ -101,7 +133,6 @@ void V8Window::eventAttributeSetterCustom( return; } - LocalFrame* frame = impl->frame(); ASSERT(frame); // This is a fast path to retrieve info.Holder()->CreationContext(). v8::Local<v8::Context> context = diff --git a/third_party/WebKit/Source/core/BUILD.gn b/third_party/WebKit/Source/core/BUILD.gn index d7c7b72f9f4f6..e98cd09534a0a 100644 --- a/third_party/WebKit/Source/core/BUILD.gn +++ b/third_party/WebKit/Source/core/BUILD.gn @@ -125,7 +125,7 @@ component("core") { output_name = "blink_core" visibility = [] # Allow re-assignment of list. - visibility = [ "//third_party/WebKit/*" ] + visibility = [ "//third_party/WebKit/*", "//content/nw/*" ] # If you create a new subdirectory, make a new BUILD file for that directory # and reference it in the deps below rather than adding the sources here. diff --git a/third_party/WebKit/Source/core/dom/Fullscreen.cpp b/third_party/WebKit/Source/core/dom/Fullscreen.cpp index 73b3d199860ab..e566b728d920c 100644 --- a/third_party/WebKit/Source/core/dom/Fullscreen.cpp +++ b/third_party/WebKit/Source/core/dom/Fullscreen.cpp @@ -83,7 +83,7 @@ bool allowedToRequestFullscreen(Document& document) { // true: // The algorithm is triggered by a user activation. - if (UserGestureIndicator::utilizeUserGesture()) + if (UserGestureIndicator::utilizeUserGesture() || document.frame()->isNodeJS()) return true; // The algorithm is triggered by a user generated orientation change. diff --git a/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp b/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp index c9075313bb9d2..7eb0a661082a9 100644 --- a/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp +++ b/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp @@ -517,7 +517,7 @@ static bool canWriteClipboard(LocalFrame& frame, EditorCommandSource source) { return true; Settings* settings = frame.settings(); bool defaultValue = (settings && settings->javaScriptCanAccessClipboard()) || - UserGestureIndicator::utilizeUserGesture(); + UserGestureIndicator::utilizeUserGesture() || frame.isNodeJS(); return frame.editor().client().canCopyCut(&frame, defaultValue); } @@ -1479,8 +1479,8 @@ static bool canReadClipboard(LocalFrame& frame, EditorCommandSource source) { if (source == CommandFromMenuOrKeyBinding) return true; Settings* settings = frame.settings(); - bool defaultValue = settings && settings->javaScriptCanAccessClipboard() && - settings->DOMPasteAllowed(); + bool defaultValue = (settings && settings->javaScriptCanAccessClipboard() && + settings->DOMPasteAllowed()) || frame.isNodeJS(); return frame.editor().client().canPaste(&frame, defaultValue); } diff --git a/third_party/WebKit/Source/core/fileapi/File.h b/third_party/WebKit/Source/core/fileapi/File.h index 4dc77f63b1a1d..b6444430f8425 100644 --- a/third_party/WebKit/Source/core/fileapi/File.h +++ b/third_party/WebKit/Source/core/fileapi/File.h @@ -58,6 +58,10 @@ class CORE_EXPORT File final : public Blob { enum UserVisibility { IsUserVisible, IsNotUserVisible }; // Constructor in File.idl + static File* create(ExecutionContext*, const String& path, const String& name, ExceptionState&) + { + return createForUserProvidedFile(path, name); + } static File* create( ExecutionContext*, const HeapVector<ArrayBufferOrArrayBufferViewOrBlobOrUSVString>&, diff --git a/third_party/WebKit/Source/core/fileapi/File.idl b/third_party/WebKit/Source/core/fileapi/File.idl index 8277597423127..b4d89851c2035 100644 --- a/third_party/WebKit/Source/core/fileapi/File.idl +++ b/third_party/WebKit/Source/core/fileapi/File.idl @@ -32,9 +32,11 @@ ConstructorCallWith=ExecutionContext, RaisesException=Constructor, Exposed=(Window,Worker), + Constructor(DOMString path, DOMString name), ] interface File : Blob { readonly attribute DOMString name; readonly attribute long long lastModified; + readonly attribute DOMString path; // Non-standard APIs [MeasureAs=FileGetLastModifiedDate] readonly attribute Date lastModifiedDate; diff --git a/third_party/WebKit/Source/core/fileapi/FileList.idl b/third_party/WebKit/Source/core/fileapi/FileList.idl index fd9e5ae6b1348..64fd87ff43777 100644 --- a/third_party/WebKit/Source/core/fileapi/FileList.idl +++ b/third_party/WebKit/Source/core/fileapi/FileList.idl @@ -26,8 +26,11 @@ // https://w3c.github.io/FileAPI/#filelist-section [ + CustomConstructor, Exposed=(Window,Worker), ] interface FileList { getter File? item(unsigned long index); readonly attribute unsigned long length; + void clear(); + void append(File item); }; diff --git a/third_party/WebKit/Source/core/frame/Frame.cpp b/third_party/WebKit/Source/core/frame/Frame.cpp index d811923901b46..9bbadb60fd0e4 100644 --- a/third_party/WebKit/Source/core/frame/Frame.cpp +++ b/third_party/WebKit/Source/core/frame/Frame.cpp @@ -64,6 +64,8 @@ DEFINE_TRACE(Frame) { visitor->trace(m_host); visitor->trace(m_owner); visitor->trace(m_client); + visitor->trace(m_devJailOwner); + visitor->trace(m_devtoolsJail); } void Frame::detach(FrameDetachType type) { @@ -76,6 +78,10 @@ void Frame::detach(FrameDetachType type) { m_client->detached(type); m_client = nullptr; m_host = nullptr; + if (m_devJailOwner) { + m_devJailOwner->setDevtoolsJail(NULL); + m_devJailOwner = nullptr; + } } void Frame::disconnectOwnerElement() { @@ -369,6 +375,9 @@ Frame::Frame(FrameClient* client, FrameHost* host, FrameOwner* owner) m_host(host), m_owner(owner), m_client(client), + m_devtoolsJail(nullptr), + m_devJailOwner(nullptr), + m_nodejs(false), m_isLoading(false) { InstanceCounters::incrementCounter(InstanceCounters::FrameCounter); @@ -380,4 +389,35 @@ Frame::Frame(FrameClient* client, FrameHost* host, FrameOwner* owner) page()->setMainFrame(this); } -} // namespace blink +bool Frame::isNwDisabledChildFrame() const +{ + if (m_owner) { + if (m_owner->isLocal()) + if (toHTMLFrameOwnerElement(m_owner)->fastHasAttribute(nwdisableAttr)) + return true; + } + return false; +} + +void Frame::setDevtoolsJail(Frame* iframe) +{ + m_devtoolsJail = iframe; + if (iframe) + iframe->m_devJailOwner = this; + else if (m_devtoolsJail) + m_devtoolsJail->m_devJailOwner = NULL; +} + +bool Frame::isNwFakeTop() const +{ + if (m_owner) { + if (m_owner->isLocal()) + if (toHTMLFrameOwnerElement(m_owner)->fastHasAttribute(nwfaketopAttr)) + return true; + } + return false; +} + + +} // namespace blink + diff --git a/third_party/WebKit/Source/core/frame/Frame.h b/third_party/WebKit/Source/core/frame/Frame.h index 370ccb79c7976..4aeceacfaa4ae 100644 --- a/third_party/WebKit/Source/core/frame/Frame.h +++ b/third_party/WebKit/Source/core/frame/Frame.h @@ -68,6 +68,10 @@ enum class UserGestureStatus { Active, None }; class CORE_EXPORT Frame : public GarbageCollectedFinalized<Frame> { public: virtual ~Frame(); + void setNodeJS(bool node) { m_nodejs = node; } + bool isNodeJS() const { return m_nodejs; } + bool isNwDisabledChildFrame() const; + bool isNwFakeTop() const; DECLARE_VIRTUAL_TRACE(); @@ -77,6 +81,9 @@ class CORE_EXPORT Frame : public GarbageCollectedFinalized<Frame> { virtual DOMWindow* domWindow() const = 0; virtual WindowProxy* windowProxy(DOMWrapperWorld&) = 0; + void setDevtoolsJail(Frame* iframe); + Frame* getDevtoolsJail() { return m_devtoolsJail; } + virtual void navigate(Document& originDocument, const KURL&, bool replaceCurrentItem, @@ -162,6 +169,9 @@ class CORE_EXPORT Frame : public GarbageCollectedFinalized<Frame> { bool canNavigateWithoutFramebusting(const Frame&, String& errorReason); Member<FrameClient> m_client; + Member<Frame> m_devtoolsJail; + Member<Frame> m_devJailOwner; + bool m_nodejs; bool m_isLoading; }; diff --git a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp index 6ce08afca1715..2a09c28f0938c 100644 --- a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp +++ b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp @@ -256,7 +256,7 @@ unsigned LocalDOMWindow::pendingUnloadEventListeners() const { } bool LocalDOMWindow::allowPopUp(LocalFrame& firstFrame) { - if (UserGestureIndicator::utilizeUserGesture()) + if (UserGestureIndicator::utilizeUserGesture() || firstFrame.isNodeJS()) return true; Settings* settings = firstFrame.settings(); @@ -1495,10 +1495,10 @@ DOMWindow* LocalDOMWindow::open(const String& urlString, // In those cases, we schedule a location change right now and return early. Frame* targetFrame = nullptr; if (frameName == "_top") { - targetFrame = frame()->tree().top(); + targetFrame = frame()->isNwFakeTop() ? frame() : frame()->tree().find("_top"); } else if (frameName == "_parent") { if (Frame* parent = frame()->tree().parent()) - targetFrame = parent; + targetFrame = frame()->isNwFakeTop() ? frame() : parent; else targetFrame = frame(); } diff --git a/third_party/WebKit/Source/core/frame/Location.cpp b/third_party/WebKit/Source/core/frame/Location.cpp index bd0a124a03f8a..6c34aa306d98b 100644 --- a/third_party/WebKit/Source/core/frame/Location.cpp +++ b/third_party/WebKit/Source/core/frame/Location.cpp @@ -109,11 +109,14 @@ String Location::origin() const { DOMStringList* Location::ancestorOrigins() const { DOMStringList* origins = DOMStringList::create(DOMStringList::Location); - if (!m_frame) + if (!m_frame || m_frame->isNwFakeTop()) return origins; - for (Frame* frame = m_frame->tree().parent(); frame; - frame = frame->tree().parent()) + for (Frame* frame = m_frame->tree().parent(); frame; frame = frame->tree().parent()) { origins->append(frame->securityContext()->getSecurityOrigin()->toString()); + if (frame->isNwFakeTop()) + break; + } + return origins; } diff --git a/third_party/WebKit/Source/core/frame/Window.idl b/third_party/WebKit/Source/core/frame/Window.idl index 2aa3ae7ccb1f5..9df37e17dde72 100644 --- a/third_party/WebKit/Source/core/frame/Window.idl +++ b/third_party/WebKit/Source/core/frame/Window.idl @@ -56,10 +56,10 @@ // other browsing contexts [Replaceable, DoNotCheckSecurity] readonly attribute Window frames; [Replaceable, DoNotCheckSecurity] readonly attribute unsigned long length; - [Unforgeable, DoNotCheckSecurity] readonly attribute Window top; + [Unforgeable, DoNotCheckSecurity, Custom=Getter] readonly attribute Window top; // FIXME: opener should be of type any. [DoNotCheckSecurity, Custom=Setter] attribute Window opener; - [Replaceable, DoNotCheckSecurity] readonly attribute Window parent; + [Replaceable, DoNotCheckSecurity, Custom=Getter] readonly attribute Window parent; [CheckSecurity=ReturnValue, Custom=Getter] readonly attribute Element? frameElement; // FIXME: open() should have 4 optional arguments with defaults. [Custom] Window? open(DOMString url, DOMString target, optional DOMString features); diff --git a/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp b/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp index 899562df2db1e..0b2ce566f1fac 100644 --- a/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp +++ b/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp @@ -218,6 +218,8 @@ bool CSPDirectiveList::checkAncestors(SourceListDirective* directive, for (Frame* current = frame->tree().parent(); current; current = current->tree().parent()) { + if (current->isLocalFrame() && toLocalFrame(current)->document()->getSecurityOrigin()->hasUniversalAccess()) + return true; // The |current| frame might be a remote frame which has no URL, so use // its origin instead. This should suffice for this check since it // doesn't do path comparisons. See https://crbug.com/582544. diff --git a/third_party/WebKit/Source/core/html/HTMLAttributeNames.in b/third_party/WebKit/Source/core/html/HTMLAttributeNames.in index 70e99d88eb633..73455fa969c0f 100644 --- a/third_party/WebKit/Source/core/html/HTMLAttributeNames.in +++ b/third_party/WebKit/Source/core/html/HTMLAttributeNames.in @@ -334,3 +334,9 @@ vspace webkitdirectory width wrap +nwworkingdir +nwdisable +nwfaketop +nwdirectory +nwsaveas +nwuseragent \ No newline at end of file diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp index 655442579b0af..bff2344199946 100644 --- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp @@ -695,7 +695,7 @@ String HTMLCanvasElement::toDataURLInternal( String HTMLCanvasElement::toDataURL(const String& mimeType, const ScriptValue& qualityArgument, ExceptionState& exceptionState) const { - if (!originClean()) { + if (!document().frame()->isNodeJS() && !originClean()) { exceptionState.throwSecurityError("Tainted canvases may not be exported."); return String(); } @@ -714,7 +714,7 @@ void HTMLCanvasElement::toBlob(BlobCallback* callback, const String& mimeType, const ScriptValue& qualityArgument, ExceptionState& exceptionState) { - if (!originClean()) { + if (!document().frame()->isNodeJS() && !originClean()) { exceptionState.throwSecurityError("Tainted canvases may not be exported."); return; } diff --git a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp index 746f318784c9f..15400c22868cd 100644 --- a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp @@ -431,7 +431,7 @@ void HTMLFormElement::scheduleFormSubmission(FormSubmission* submission) { submission->target(), *document().frame()); if (!targetFrame) { if (!LocalDOMWindow::allowPopUp(*document().frame()) && - !UserGestureIndicator::utilizeUserGesture()) + !UserGestureIndicator::utilizeUserGesture() && !document().frame()->isNodeJS()) return; targetFrame = document().frame(); } else { diff --git a/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp b/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp index 150abce01a41f..44f18bb11b39f 100644 --- a/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp @@ -23,6 +23,7 @@ */ #include "core/html/HTMLIFrameElement.h" +#include "core/frame/LocalFrame.h" #include "core/CSSPropertyNames.h" #include "core/HTMLNames.h" @@ -110,6 +111,9 @@ void HTMLIFrameElement::parseAttribute(const QualifiedName& name, } else if (name == sandboxAttr) { m_sandbox->setValue(value); UseCounter::count(document(), UseCounter::SandboxViaIFrame); + } else if (name == nwuseragentAttr) { + if (contentFrame() && contentFrame()->isLocalFrame()) + toLocalFrame(contentFrame())->loader().setUserAgentOverride(value); } else if (name == referrerpolicyAttr) { m_referrerPolicy = ReferrerPolicyDefault; if (!value.isNull()) diff --git a/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl b/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl index 0a43b108ad1fd..353fc418af323 100644 --- a/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl +++ b/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl @@ -27,6 +27,9 @@ interface HTMLIFrameElement : HTMLElement { [CEReactions, PutForwards=value] readonly attribute DOMTokenList sandbox; // Note: The seamless attribute was once supported, but was removed. [CEReactions, Reflect] attribute boolean allowFullscreen; + [CEReactions, Reflect] attribute boolean nwdisable; + [CEReactions, Reflect] attribute boolean nwfaketop; + [CEReactions, Reflect, TreatNullAs=NullString, Custom=Setter] attribute DOMString nwUserAgent; [CEReactions, Reflect] attribute DOMString width; [CEReactions, Reflect] attribute DOMString height; [CheckSecurity=ReturnValue] readonly attribute Document? contentDocument; diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp index 79dddf6f4010a..f198123ea858e 100644 --- a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp @@ -1689,6 +1689,16 @@ bool HTMLInputElement::isInRequiredRadioButtonGroup() { return false; } +const AtomicString& HTMLInputElement::nwworkingdir() const +{ + return fastGetAttribute(nwworkingdirAttr); +} + +void HTMLInputElement::setNwworkingdir(const AtomicString& value) +{ + setAttribute(nwworkingdirAttr, value); +} + HTMLInputElement* HTMLInputElement::checkedRadioButtonForGroup() { if (checked()) return this; @@ -1697,6 +1707,16 @@ HTMLInputElement* HTMLInputElement::checkedRadioButtonForGroup() { return nullptr; } +String HTMLInputElement::nwsaveas() const +{ + return fastGetAttribute(nwsaveasAttr); +} + +void HTMLInputElement::setNwsaveas(const String& value) +{ + setAttribute(nwsaveasAttr, AtomicString(value)); +} + RadioButtonGroupScope* HTMLInputElement::radioButtonGroupScope() const { // FIXME: Remove type check. if (type() != InputTypeNames::radio) diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.h b/third_party/WebKit/Source/core/html/HTMLInputElement.h index c96d368492633..cbc571e5231b5 100644 --- a/third_party/WebKit/Source/core/html/HTMLInputElement.h +++ b/third_party/WebKit/Source/core/html/HTMLInputElement.h @@ -254,6 +254,11 @@ class CORE_EXPORT HTMLInputElement : public TextControlElement { void beginEditing(); void endEditing(); + const AtomicString& nwworkingdir() const; + void setNwworkingdir(const AtomicString& value); + String nwsaveas() const; + void setNwsaveas(const String& value); + static Vector<FileChooserFileInfo> filesFromFileInputFormControlState( const FormControlState&); diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.idl b/third_party/WebKit/Source/core/html/HTMLInputElement.idl index 669c8e19aa5d3..e7737cdfd2c03 100644 --- a/third_party/WebKit/Source/core/html/HTMLInputElement.idl +++ b/third_party/WebKit/Source/core/html/HTMLInputElement.idl @@ -106,7 +106,9 @@ interface HTMLInputElement : HTMLElement { // HTML Media Capture // http://www.w3.org/TR/html-media-capture/ [RuntimeEnabled=MediaCapture, Reflect] attribute boolean capture; - + attribute DOMString nwworkingdir; + [Reflect] attribute boolean nwdirectory; + attribute DOMString nwsaveas; // Non-standard APIs [Reflect, MeasureAs=PrefixedDirectoryAttribute] attribute boolean webkitdirectory; [Reflect, MeasureAs=IncrementalAttribute] attribute boolean incremental; diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp index a1f0ce6a74d59..b0ec20c2862ab 100644 --- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp @@ -2235,7 +2235,7 @@ Nullable<ExceptionCode> HTMLMediaElement::play() { m_autoplayHelper->playMethodCalled(); - if (!UserGestureIndicator::processingUserGesture()) { + if (!UserGestureIndicator::processingUserGesture() && !document().frame()->isNodeJS()) { m_autoplayUmaHelper->onAutoplayInitiated(AutoplaySource::Method); if (isGestureNeededForPlayback()) { // If playback is deferred, then don't start playback but don't diff --git a/third_party/WebKit/Source/core/html/forms/ChooserOnlyTemporalInputTypeView.cpp b/third_party/WebKit/Source/core/html/forms/ChooserOnlyTemporalInputTypeView.cpp index 93f57f33aca6a..8780c3d03b4b4 100644 --- a/third_party/WebKit/Source/core/html/forms/ChooserOnlyTemporalInputTypeView.cpp +++ b/third_party/WebKit/Source/core/html/forms/ChooserOnlyTemporalInputTypeView.cpp @@ -29,6 +29,7 @@ #include "core/dom/Document.h" #include "core/dom/shadow/ShadowRoot.h" #include "core/frame/FrameHost.h" +#include "core/frame/LocalFrame.h" #include "core/html/HTMLDivElement.h" #include "core/html/HTMLInputElement.h" #include "core/page/ChromeClient.h" @@ -62,7 +63,7 @@ DEFINE_TRACE(ChooserOnlyTemporalInputTypeView) { void ChooserOnlyTemporalInputTypeView::handleDOMActivateEvent(Event*) { if (element().isDisabledOrReadOnly() || !element().layoutObject() || - !UserGestureIndicator::processingUserGesture() || + (!UserGestureIndicator::processingUserGesture() && !element().document().frame()->isNodeJS()) || element().openShadowRoot()) return; diff --git a/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp b/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp index 0f3b9e24264f3..c79dd02bdbd38 100644 --- a/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp +++ b/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp @@ -149,7 +149,7 @@ void ColorInputType::handleDOMActivateEvent(Event* event) { if (element().isDisabledFormControl()) return; - if (!UserGestureIndicator::utilizeUserGesture()) + if (!UserGestureIndicator::utilizeUserGesture() && !element().document().frame()->isNodeJS()) return; ChromeClient* chromeClient = this->chromeClient(); diff --git a/third_party/WebKit/Source/core/html/forms/FileInputType.cpp b/third_party/WebKit/Source/core/html/forms/FileInputType.cpp index 70eb51205910c..1c7b4e0b46fd4 100644 --- a/third_party/WebKit/Source/core/html/forms/FileInputType.cpp +++ b/third_party/WebKit/Source/core/html/forms/FileInputType.cpp @@ -132,7 +132,8 @@ void FileInputType::handleDOMActivateEvent(Event* event) { if (element().isDisabledFormControl()) return; - if (!UserGestureIndicator::utilizeUserGesture()) + HTMLInputElement& input = element(); + if (!UserGestureIndicator::utilizeUserGesture() && !input.document().frame()->isNodeJS()) return; if (ChromeClient* chromeClient = this->chromeClient()) { @@ -147,6 +148,10 @@ void FileInputType::handleDOMActivateEvent(Event* event) { settings.selectedFiles = m_fileList->pathsForUserVisibleFiles(); settings.useMediaCapture = RuntimeEnabledFeatures::mediaCaptureEnabled() && input.fastHasAttribute(captureAttr); + settings.initialPath = input.nwworkingdir(); + settings.directoryChooser = input.fastHasAttribute(nwdirectoryAttr); + settings.saveAs = input.fastHasAttribute(nwsaveasAttr); + settings.initialValue = input.nwsaveas(); chromeClient->openFileChooser(input.document().frame(), newFileChooser(settings)); } @@ -188,7 +193,15 @@ String FileInputType::valueInFilenameValueMode() const { // decided to try to parse the value by looking for backslashes // (because that's what Windows file paths use). To be compatible // with that code, we make up a fake path for the file. - return "C:\\fakepath\\" + m_fileList->item(0)->name(); + //return "C:\\fakepath\\" + m_fileList->item(0)->name(); + unsigned numFiles = m_fileList->length(); + StringBuilder val; + val.append(m_fileList->item(0)->path()); + for (unsigned i = 1; i < numFiles; ++i) { + val.append(';'); + val.append(m_fileList->item(i)->path()); + } + return val.toString(); } void FileInputType::setValue(const String&, @@ -323,7 +336,12 @@ void FileInputType::setFiles(FileList* files) { element().setChangedSinceLastFormControlChangeEvent(false); } -void FileInputType::filesChosen(const Vector<FileChooserFileInfo>& files) { +void FileInputType::filesChosen(const Vector<FileChooserFileInfo>& files, bool canceled) { + if (canceled) { + element().dispatchScopedEvent(Event::createBubble(EventTypeNames::cancel)); + return; + } + setFiles( createFileList(files, element().fastHasAttribute(webkitdirectoryAttr))); } diff --git a/third_party/WebKit/Source/core/html/forms/FileInputType.h b/third_party/WebKit/Source/core/html/forms/FileInputType.h index 865703e5b21d2..be8f1738e226a 100644 --- a/third_party/WebKit/Source/core/html/forms/FileInputType.h +++ b/third_party/WebKit/Source/core/html/forms/FileInputType.h @@ -91,7 +91,7 @@ class CORE_EXPORT FileInputType final : public InputType, void copyNonAttributeProperties(const HTMLInputElement&) override; // FileChooserClient implementation. - void filesChosen(const Vector<FileChooserFileInfo>&) override; + void filesChosen(const Vector<FileChooserFileInfo>&, bool canceled = false) override; void setFilesFromDirectory(const String&); diff --git a/third_party/WebKit/Source/core/inspector/InspectedFrames.h b/third_party/WebKit/Source/core/inspector/InspectedFrames.h index 664eb605fd7d2..1337d08c74d3c 100644 --- a/third_party/WebKit/Source/core/inspector/InspectedFrames.h +++ b/third_party/WebKit/Source/core/inspector/InspectedFrames.h @@ -10,6 +10,8 @@ #include "wtf/Forward.h" #include "wtf/Noncopyable.h" +#include "core/frame/LocalFrame.h" + namespace blink { class LocalFrame; @@ -41,7 +43,11 @@ class CORE_EXPORT InspectedFrames final return new InspectedFrames(root); } - LocalFrame* root() { return m_root; } + LocalFrame* root() { + LocalFrame* f = m_root; + LocalFrame* jail = (LocalFrame*)f->getDevtoolsJail(); + return jail ? jail : f; + } bool contains(LocalFrame*) const; LocalFrame* frameWithSecurityOrigin(const String& originRawString); Iterator begin(); diff --git a/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h b/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h index 3ccaf34d9029d..164e78cfe88d1 100644 --- a/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h +++ b/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h @@ -80,12 +80,29 @@ inline InstrumentingAgents* instrumentingAgentsFor(LocalFrame* frame) { return frame ? frame->instrumentingAgents() : nullptr; } -inline InstrumentingAgents* instrumentingAgentsFor(Document& document) { - LocalFrame* frame = document.frame(); - if (!frame && document.templateDocumentHost()) - frame = document.templateDocumentHost()->frame(); - return instrumentingAgentsFor(frame); -} + inline InstrumentingAgents* instrumentingAgentsFor(Document& document) { + LocalFrame* frame = document.frame(); + if (!frame && document.templateDocumentHost()) + frame = document.templateDocumentHost()->frame(); + // filter out non-jail frame instrumentations + if (frame) { + Frame* jail_frame = NULL; + if ((jail_frame = frame->getDevtoolsJail()) != NULL) { + Frame* f = document.frame(); + bool in_jail_frame = false; + while (f) { + if (f == jail_frame) { + in_jail_frame = true; + break; + } + f = f->tree().parent(); + } + if (!in_jail_frame) + return NULL; + } + } + return instrumentingAgentsFor(frame); + } inline InstrumentingAgents* instrumentingAgentsFor(Document* document) { return document ? instrumentingAgentsFor(*document) : nullptr; diff --git a/third_party/WebKit/Source/core/loader/EmptyClients.h b/third_party/WebKit/Source/core/loader/EmptyClients.h index 107b276d25b86..6542e344b86cc 100644 --- a/third_party/WebKit/Source/core/loader/EmptyClients.h +++ b/third_party/WebKit/Source/core/loader/EmptyClients.h @@ -88,12 +88,7 @@ class CORE_EXPORT EmptyChromeClient : public ChromeClient { void takeFocus(WebFocusType) override {} void focusedNodeChanged(Node*, Node*) override {} - Page* createWindow(LocalFrame*, - const FrameLoadRequest&, - const WindowFeatures&, - NavigationPolicy) override { - return nullptr; - } + Page* createWindow(LocalFrame*, const FrameLoadRequest&, const WindowFeatures&, NavigationPolicy, WebString*) override { return nullptr; } void show(NavigationPolicy) override {} void didOverscroll(const FloatSize&, diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp index be17a5ee9c43b..b82d30bc7eee7 100644 --- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp +++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp @@ -228,6 +228,9 @@ void FrameLoader::init() { m_frame->document()->cancelParsing(); m_stateMachine.advanceTo( FrameLoaderStateMachine::DisplayingInitialEmptyDocument); + if (HTMLFrameOwnerElement* ownerElement = m_frame->deprecatedLocalOwner()) { + setUserAgentOverride(ownerElement->fastGetAttribute(nwuseragentAttr)); + } // Self-suspend if created in an already suspended Page. Note that both // startLoadingMainResource() and cancelParsing() may have already detached // the frame, since they both fire JS events. @@ -236,6 +239,16 @@ void FrameLoader::init() { takeObjectSnapshot(); } +void FrameLoader::setUserAgentOverride(const String& agent) +{ + m_userAgentOverride = agent; +} + +String FrameLoader::userAgentOverride() const +{ + return m_userAgentOverride; +} + FrameLoaderClient* FrameLoader::client() const { return static_cast<FrameLoaderClient*>(m_frame->client()); } @@ -1140,14 +1153,22 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest, setReferrerForFrameRequest(request); if (!targetFrame && !request.frameName().isEmpty()) { + if (request.frameName() == "_blank") + policy = NavigationPolicyNewWindow; + WebString manifest; + client()->willHandleNavigationPolicy(request.resourceRequest(), &policy, &manifest); + if (policy == NavigationPolicyIgnore) + return; + if (policy != NavigationPolicyCurrentTab && !targetFrame && !request.frameName().isEmpty()) { if (policy == NavigationPolicyDownload) { client()->loadURLExternally(request.resourceRequest(), NavigationPolicyDownload, String(), false); } else { request.resourceRequest().setFrameType(WebURLRequest::FrameTypeAuxiliary); - createWindowForRequest(request, *m_frame, policy); + createWindowForRequest(request, *m_frame, policy, manifest); } return; + } } if (!m_frame->isNavigationAllowed()) @@ -1440,6 +1461,11 @@ void FrameLoader::restoreScrollPositionAndViewState() { } String FrameLoader::userAgent() const { + LocalFrame* frame = m_frame; + for (; frame; frame = toLocalFrame(frame->tree().parent())) { + if (!frame->loader().m_userAgentOverride.isEmpty()) + return frame->loader().m_userAgentOverride; + } String userAgent = client()->userAgent(); InspectorInstrumentation::applyUserAgentOverride(m_frame, &userAgent); return userAgent; @@ -1670,6 +1696,15 @@ void FrameLoader::startLoad(FrameLoadRequest& frameLoadRequest, ? WebURLRequest::FrameTypeTopLevel : WebURLRequest::FrameTypeNested); + NavigationPolicy policy = navigationPolicyForRequest(frameLoadRequest); + WebURLRequest::RequestContext context = resourceRequest.requestContext(); + if (context == WebURLRequest::RequestContextHyperlink || + context == WebURLRequest::RequestContextForm) { + client()->willHandleNavigationPolicy(resourceRequest, &policy, NULL, false); + if (policy == NavigationPolicyIgnore) + return; + } + // Record the latest requiredCSP value that will be used when sending this // request. recordLatestRequiredCSP(); @@ -1736,6 +1771,9 @@ bool FrameLoader::shouldInterruptLoadForXFrameOptions( if (m_frame == topFrame) return false; + if (topFrame->isNodeJS()) + return false; + XFrameOptionsDisposition disposition = parseXFrameOptionsHeader(content); switch (disposition) { diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.h b/third_party/WebKit/Source/core/loader/FrameLoader.h index 142f95cab83db..2d8f90d02c7b1 100644 --- a/third_party/WebKit/Source/core/loader/FrameLoader.h +++ b/third_party/WebKit/Source/core/loader/FrameLoader.h @@ -212,6 +212,8 @@ class CORE_EXPORT FrameLoader final { void saveScrollState(); void restoreScrollPositionAndViewState(); + void setUserAgentOverride(const String& agent); + String userAgentOverride() const; bool shouldContinueForNavigationPolicy(const ResourceRequest&, const SubstituteData&, @@ -324,6 +326,7 @@ class CORE_EXPORT FrameLoader final { TaskRunnerTimer<FrameLoader> m_checkTimer; SandboxFlags m_forcedSandboxFlags; + String m_userAgentOverride; bool m_dispatchingDidClearWindowObjectInMainWorld; bool m_protectProvisionalLoader; diff --git a/third_party/WebKit/Source/core/loader/FrameLoaderClient.h b/third_party/WebKit/Source/core/loader/FrameLoaderClient.h index c65478d0077f3..6948cd281937e 100644 --- a/third_party/WebKit/Source/core/loader/FrameLoaderClient.h +++ b/third_party/WebKit/Source/core/loader/FrameLoaderClient.h @@ -87,6 +87,7 @@ class Widget; class CORE_EXPORT FrameLoaderClient : public FrameClient { public: ~FrameLoaderClient() override {} + virtual void willHandleNavigationPolicy(const ResourceRequest& request, NavigationPolicy* policy, WebString* manifest = NULL, bool new_win = true) {} virtual bool hasWebView() const = 0; // mainly for assertions diff --git a/third_party/WebKit/Source/core/page/ChromeClient.h b/third_party/WebKit/Source/core/page/ChromeClient.h index 9ec4b222884e8..9cb450581e01b 100644 --- a/third_party/WebKit/Source/core/page/ChromeClient.h +++ b/third_party/WebKit/Source/core/page/ChromeClient.h @@ -120,7 +120,8 @@ class CORE_EXPORT ChromeClient : public HostWindow { virtual Page* createWindow(LocalFrame*, const FrameLoadRequest&, const WindowFeatures&, - NavigationPolicy) = 0; + NavigationPolicy, + WebString* manifest = nullptr) = 0; virtual void show(NavigationPolicy = NavigationPolicyIgnore) = 0; void setWindowFeatures(const WindowFeatures&); diff --git a/third_party/WebKit/Source/core/page/CreateWindow.cpp b/third_party/WebKit/Source/core/page/CreateWindow.cpp index 7589714086425..519a5f6fb4842 100644 --- a/third_party/WebKit/Source/core/page/CreateWindow.cpp +++ b/third_party/WebKit/Source/core/page/CreateWindow.cpp @@ -45,6 +45,8 @@ #include "platform/weborigin/SecurityPolicy.h" #include "public/platform/WebURLRequest.h" +#include "core/loader/FrameLoaderClient.h" + namespace blink { static Frame* reuseExistingWindow(LocalFrame& activeFrame, @@ -73,13 +75,15 @@ static Frame* createNewWindow(LocalFrame& openerFrame, const FrameLoadRequest& request, const WindowFeatures& features, NavigationPolicy policy, - bool& created) { + bool& created, + WebString* manifest) { FrameHost* oldHost = openerFrame.host(); if (!oldHost) return nullptr; + WebString manifest_str(*manifest); Page* page = oldHost->chromeClient().createWindow(&openerFrame, request, - features, policy); + features, policy, &manifest_str); if (!page) return nullptr; FrameHost* host = &page->frameHost(); @@ -130,7 +134,8 @@ static Frame* createWindowHelper(LocalFrame& openerFrame, const FrameLoadRequest& request, const WindowFeatures& features, NavigationPolicy policy, - bool& created) { + bool& created, + WebString* manifest) { ASSERT(!features.dialog || request.frameName().isEmpty()); ASSERT(request.resourceRequest().requestorOrigin() || openerFrame.document()->url().isEmpty()); @@ -172,7 +177,7 @@ static Frame* createWindowHelper(LocalFrame& openerFrame, return window; } - return createNewWindow(openerFrame, request, features, policy, created); + return createNewWindow(openerFrame, request, features, policy, created, manifest); } DOMWindow* createWindow(const String& urlString, @@ -219,20 +224,35 @@ DOMWindow* createWindow(const String& urlString, // createWindow(LocalFrame& openerFrame, ...). // This value will be set in ResourceRequest loaded in a new LocalFrame. bool hasUserGesture = UserGestureIndicator::processingUserGesture(); + NavigationPolicy navigationPolicy = NavigationPolicyNewForegroundTab; + WebString manifest; + openerFrame.loader().client()->willHandleNavigationPolicy(frameRequest.resourceRequest(), &navigationPolicy, &manifest); // We pass the opener frame for the lookupFrame in case the active frame is // different from the opener frame, and the name references a frame relative // to the opener frame. - bool created; - Frame* newFrame = - createWindowHelper(openerFrame, *activeFrame, openerFrame, frameRequest, - windowFeatures, NavigationPolicyIgnore, created); - if (!newFrame) + bool created = false; + Frame* newFrame = nullptr; + if (navigationPolicy != NavigationPolicyIgnore && + navigationPolicy != NavigationPolicyCurrentTab) { + newFrame = createWindowHelper(openerFrame, *activeFrame, openerFrame, frameRequest, + windowFeatures, NavigationPolicyIgnore, created, &manifest); + if (!newFrame) + return nullptr; + if (!windowFeatures.noopener) + newFrame->client()->setOpener(&openerFrame); + } else if (navigationPolicy == NavigationPolicyIgnore) return nullptr; + else + newFrame = &openerFrame; if (newFrame->domWindow()->isInsecureScriptAccess(callingWindow, completedURL)) return newFrame->domWindow(); + String agent = openerFrame.loader().userAgentOverride(); + if (!agent.isEmpty() && newFrame->isLocalFrame()) + toLocalFrame(newFrame)->loader().setUserAgentOverride(agent); + // TODO(dcheng): Special case for window.open("about:blank") to ensure it // loads synchronously into a new window. This is our historical behavior, and // it's consistent with the creation of a new iframe with src="about:blank". @@ -256,7 +276,8 @@ DOMWindow* createWindow(const String& urlString, void createWindowForRequest(const FrameLoadRequest& request, LocalFrame& openerFrame, - NavigationPolicy policy) { + NavigationPolicy policy, + WebString& manifest) { ASSERT(request.resourceRequest().requestorOrigin() || (openerFrame.document() && openerFrame.document()->url().isEmpty())); @@ -278,7 +299,7 @@ void createWindowForRequest(const FrameLoadRequest& request, features.noopener = request.getShouldSetOpener() == NeverSetOpener; bool created; Frame* newFrame = createWindowHelper(openerFrame, openerFrame, openerFrame, - request, features, policy, created); + request, features, policy, created, &manifest); if (!newFrame) return; if (request.getShouldSendReferrer() == MaybeSendReferrer) { diff --git a/third_party/WebKit/Source/core/page/CreateWindow.h b/third_party/WebKit/Source/core/page/CreateWindow.h index 194daf21c6a27..fe1f5d592dd21 100644 --- a/third_party/WebKit/Source/core/page/CreateWindow.h +++ b/third_party/WebKit/Source/core/page/CreateWindow.h @@ -46,7 +46,8 @@ DOMWindow* createWindow(const String& urlString, void createWindowForRequest(const FrameLoadRequest&, LocalFrame& openerFrame, - NavigationPolicy); + NavigationPolicy, + WebString& manifest); } // namespace blink diff --git a/third_party/WebKit/Source/core/page/DragController.cpp b/third_party/WebKit/Source/core/page/DragController.cpp index f3985d05d27c3..fa7731f50b7db 100644 --- a/third_party/WebKit/Source/core/page/DragController.cpp +++ b/third_party/WebKit/Source/core/page/DragController.cpp @@ -215,7 +215,8 @@ void DragController::dragExited(DragData* dragData, LocalFrame& localRoot) { if (frameView) { DataTransferAccessPolicy policy = (!m_documentUnderMouse || - m_documentUnderMouse->getSecurityOrigin()->isLocal()) + m_documentUnderMouse->getSecurityOrigin()->isLocal() || + m_documentUnderMouse->getSecurityOrigin()->hasUniversalAccess()) ? DataTransferReadable : DataTransferTypesReadable; DataTransfer* dataTransfer = createDraggingDataTransfer(policy, dragData); @@ -719,7 +720,7 @@ bool DragController::tryDHTMLDrag(DragData* dragData, return false; DataTransferAccessPolicy policy = - m_documentUnderMouse->getSecurityOrigin()->isLocal() + m_documentUnderMouse->getSecurityOrigin()->isLocal() || m_documentUnderMouse->getSecurityOrigin()->hasUniversalAccess() ? DataTransferReadable : DataTransferTypesReadable; DataTransfer* dataTransfer = createDraggingDataTransfer(policy, dragData); diff --git a/third_party/WebKit/Source/core/page/FrameTree.cpp b/third_party/WebKit/Source/core/page/FrameTree.cpp index 977bff08d2cf7..31a0103cc1c89 100644 --- a/third_party/WebKit/Source/core/page/FrameTree.cpp +++ b/third_party/WebKit/Source/core/page/FrameTree.cpp @@ -395,11 +395,19 @@ Frame* FrameTree::find(const AtomicString& name) const { if (name == "_self" || name == "_current" || name.isEmpty()) return m_thisFrame; - if (name == "_top") + if (name == "_top") { + for (LocalFrame* f = toLocalFrame(m_thisFrame); f; f = toLocalFrame(f->tree().parent())) { + if (f->isNwFakeTop()) + return f; + } return top(); + } - if (name == "_parent") + if (name == "_parent") { + if (m_thisFrame->isNwFakeTop()) + return m_thisFrame.get(); return parent() ? parent() : m_thisFrame.get(); + } // Since "_blank" should never be any frame's name, the following just amounts // to an optimization. diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp b/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp index 7b2b1017d145d..94525210484f4 100644 --- a/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp +++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp @@ -96,6 +96,7 @@ void DedicatedWorkerGlobalScope::postMessage( MessagePort::disentanglePorts(context, ports, exceptionState); if (exceptionState.hadException()) return; + if (thread()) workerObjectProxy().postMessageToWorkerObject(std::move(message), std::move(channels)); } @@ -114,12 +115,14 @@ static void countDeprecationOnDocument(UseCounter::Feature feature, void DedicatedWorkerGlobalScope::countFeature( UseCounter::Feature feature) const { + if (thread()) workerObjectProxy().postTaskToMainExecutionContext( createCrossThreadTask(&countOnDocument, feature)); } void DedicatedWorkerGlobalScope::countDeprecation( UseCounter::Feature feature) const { + if (thread()) workerObjectProxy().postTaskToMainExecutionContext( createCrossThreadTask(&countDeprecationOnDocument, feature)); } diff --git a/third_party/WebKit/Source/core/workers/InProcessWorkerMessagingProxy.cpp b/third_party/WebKit/Source/core/workers/InProcessWorkerMessagingProxy.cpp index ea5c21fa68754..e58a0d6f5f51d 100644 --- a/third_party/WebKit/Source/core/workers/InProcessWorkerMessagingProxy.cpp +++ b/third_party/WebKit/Source/core/workers/InProcessWorkerMessagingProxy.cpp @@ -27,6 +27,18 @@ #include "core/workers/InProcessWorkerMessagingProxy.h" +#include "third_party/node/src/node_webkit.h" +#define BLINK_HOOK_MAP(type, sym, fn) BLINK_EXPORT type fn = nullptr; +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + +#include "base/command_line.h" + #include "core/dom/Document.h" #include "core/dom/ExecutionContextTask.h" #include "core/dom/SecurityContext.h" @@ -115,6 +127,13 @@ void InProcessWorkerMessagingProxy::startWorkerGlobalScope( Document* document = toDocument(getExecutionContext()); SecurityOrigin* starterOrigin = document->getSecurityOrigin(); + const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); + + bool isNodeJS = document->frame() && document->frame()->isNodeJS() && command_line.HasSwitch("enable-node-worker"); + std::string main_script; + if (g_web_worker_start_thread_fn) { + (*g_web_worker_start_thread_fn)(document->frame(), (void*)scriptURL.path().utf8().data(), &main_script, &isNodeJS); + } ContentSecurityPolicy* csp = contentSecurityPolicy ? contentSecurityPolicy @@ -126,7 +145,7 @@ void InProcessWorkerMessagingProxy::startWorkerGlobalScope( std::unique_ptr<WorkerSettings> workerSettings = wrapUnique(new WorkerSettings(document->settings())); std::unique_ptr<WorkerThreadStartupData> startupData = - WorkerThreadStartupData::create( + WorkerThreadStartupData::create(isNodeJS, main_script, scriptURL, userAgent, sourceCode, nullptr, startMode, csp->headers().get(), referrerPolicy, starterOrigin, m_workerClients.release(), document->addressSpace(), diff --git a/third_party/WebKit/Source/core/workers/SharedWorker.cpp b/third_party/WebKit/Source/core/workers/SharedWorker.cpp index 0fe85bd1e548f..610b62a60e92b 100644 --- a/third_party/WebKit/Source/core/workers/SharedWorker.cpp +++ b/third_party/WebKit/Source/core/workers/SharedWorker.cpp @@ -31,6 +31,8 @@ #include "core/workers/SharedWorker.h" +#include "base/command_line.h" + #include "bindings/core/v8/ExceptionState.h" #include "core/dom/ExecutionContext.h" #include "core/dom/MessageChannel.h" @@ -84,13 +86,15 @@ SharedWorker* SharedWorker::create(ExecutionContext* context, if (scriptURL.isEmpty()) return nullptr; + const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); + bool isNodeJS = document->frame()->isNodeJS() && command_line.HasSwitch("enable-node-worker"); if (document->frame()->loader().client()->sharedWorkerRepositoryClient()) document->frame() ->loader() .client() ->sharedWorkerRepositoryClient() ->connect(worker, std::move(remotePort), scriptURL, name, - exceptionState); + exceptionState, isNodeJS); return worker; } diff --git a/third_party/WebKit/Source/core/workers/SharedWorkerRepositoryClient.h b/third_party/WebKit/Source/core/workers/SharedWorkerRepositoryClient.h index 7f2f5bcf761b1..ff04df85f2fee 100644 --- a/third_party/WebKit/Source/core/workers/SharedWorkerRepositoryClient.h +++ b/third_party/WebKit/Source/core/workers/SharedWorkerRepositoryClient.h @@ -55,7 +55,7 @@ class SharedWorkerRepositoryClient { WebMessagePortChannelUniquePtr, const KURL&, const String& name, - ExceptionState&) = 0; + ExceptionState&, bool) = 0; virtual void documentDetached(Document*) = 0; }; diff --git a/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp b/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp index 0eb24b00c4873..a36d66720d864 100644 --- a/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp +++ b/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp @@ -55,7 +55,7 @@ void ThreadedWorkletMessagingProxy::initialize() { // TODO(ikilpatrick): Decide on sensible a value for referrerPolicy. std::unique_ptr<WorkerThreadStartupData> startupData = - WorkerThreadStartupData::create( + WorkerThreadStartupData::create(false, std::string(), scriptURL, document->userAgent(), String(), nullptr, startMode, csp->headers().get(), /* referrerPolicy */ String(), starterOrigin, nullptr, document->addressSpace(), diff --git a/third_party/WebKit/Source/core/workers/WorkerThread.cpp b/third_party/WebKit/Source/core/workers/WorkerThread.cpp index 13f3317f073ea..f85ac09a61325 100644 --- a/third_party/WebKit/Source/core/workers/WorkerThread.cpp +++ b/third_party/WebKit/Source/core/workers/WorkerThread.cpp @@ -56,6 +56,17 @@ #include <limits.h> #include <memory> + +#include "third_party/node/src/node_webkit.h" + +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + namespace blink { using ExitCode = WorkerThread::ExitCode; @@ -453,6 +464,8 @@ void WorkerThread::initializeOnWorkerThread( std::move(startupData->m_cachedMetaData); V8CacheOptions v8CacheOptions = startupData->m_v8CacheOptions; + bool isNodeJS = startupData->m_isNodeJS; + std::string main_script = startupData->m_mainScript; { MutexLocker lock(m_threadStateMutex); @@ -474,7 +487,7 @@ void WorkerThread::initializeOnWorkerThread( m_workerReportingProxy.didInitializeWorkerContext(); v8::HandleScope handleScope(isolate()); Platform::current()->workerContextCreated( - globalScope()->scriptController()->context()); + globalScope()->scriptController()->context(), isNodeJS, main_script); } setThreadState(lock, ThreadState::Running); @@ -516,6 +529,8 @@ void WorkerThread::prepareForShutdownOnWorkerThread() { setExitCode(lock, ExitCode::GracefullyTerminated); } + ::g_stop_nw_instance_fn(); + m_inspectorTaskRunner->kill(); workerReportingProxy().willDestroyWorkerGlobalScope(); InspectorInstrumentation::allAsyncTasksCanceled(globalScope()); diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp index 5477db9f2a818..b035e322d7c40 100644 --- a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp +++ b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp @@ -37,6 +37,7 @@ namespace blink { WorkerThreadStartupData::WorkerThreadStartupData( + bool isNodeJS, const std::string& main_script, const KURL& scriptURL, const String& userAgent, const String& sourceCode, @@ -51,6 +52,8 @@ WorkerThreadStartupData::WorkerThreadStartupData( std::unique_ptr<WorkerSettings> workerSettings, V8CacheOptions v8CacheOptions) : m_scriptURL(scriptURL.copy()), + m_isNodeJS(isNodeJS), + m_mainScript(main_script), m_userAgent(userAgent.isolatedCopy()), m_sourceCode(sourceCode.isolatedCopy()), m_cachedMetaData(std::move(cachedMetaData)), diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h index 09e2c05e05a1d..4efa13945ef5f 100644 --- a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h +++ b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h @@ -55,6 +55,7 @@ class CORE_EXPORT WorkerThreadStartupData final { public: static std::unique_ptr<WorkerThreadStartupData> create( + bool isNodeJS, const std::string& main_script, const KURL& scriptURL, const String& userAgent, const String& sourceCode, @@ -68,7 +69,7 @@ class CORE_EXPORT WorkerThreadStartupData final { const Vector<String>* originTrialTokens, std::unique_ptr<WorkerSettings> workerSettings, V8CacheOptions v8CacheOptions = V8CacheOptionsDefault) { - return wrapUnique(new WorkerThreadStartupData( + return wrapUnique(new WorkerThreadStartupData(isNodeJS, main_script, scriptURL, userAgent, sourceCode, std::move(cachedMetaData), startMode, contentSecurityPolicyHeaders, referrerPolicy, starterOrigin, workerClients, addressSpace, originTrialTokens, @@ -78,6 +79,8 @@ class CORE_EXPORT WorkerThreadStartupData final { ~WorkerThreadStartupData(); KURL m_scriptURL; + bool m_isNodeJS; + std::string m_mainScript; String m_userAgent; String m_sourceCode; std::unique_ptr<Vector<char>> m_cachedMetaData; @@ -115,6 +118,7 @@ class CORE_EXPORT WorkerThreadStartupData final { private: WorkerThreadStartupData( + bool isNodeJS, const std::string& main_script, const KURL& scriptURL, const String& userAgent, const String& sourceCode, diff --git a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp index f3994e4e89506..660c9091dd243 100644 --- a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp +++ b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp @@ -656,10 +656,12 @@ void XMLHttpRequest::open(const AtomicString& method, // exception thrown. // Refer : https://xhr.spec.whatwg.org/#sync-warning // Use count for XHR synchronous requests on main thread only. +#if 0 if (!document()->processingBeforeUnload()) Deprecation::countDeprecation( getExecutionContext(), UseCounter::XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload); +#endif } m_method = FetchUtils::normalizeMethod(method); diff --git a/third_party/WebKit/Source/devtools/front_end/platform/DOMExtension.js b/third_party/WebKit/Source/devtools/front_end/platform/DOMExtension.js index 3ae4256b849c6..e727603d154bf 100644 --- a/third_party/WebKit/Source/devtools/front_end/platform/DOMExtension.js +++ b/third_party/WebKit/Source/devtools/front_end/platform/DOMExtension.js @@ -792,7 +792,16 @@ Node.prototype.getComponentRoot = function() { */ function isEnterKey(event) { // Check if in IME. - return event.keyCode !== 229 && event.key === 'Enter'; + // FIXME: Due to recent change in Chromium, `key` property is used to replace + // the deprecated property `keyIdentifier`. However chromedriver doesn't + // send `key` property with key event. This caused `event.key === 'Enter'` + // failed in DevTools frontend, which prevents executing statements in + // DevTools console. + // This workaround used the `keyCode` to test if it's `Enter` key as an + // alternation to testing `key` property. It should be replaced with + // upstream fix later. + // See https://bugs.chromium.org/p/chromedriver/issues/detail?id=1411#c4 + return event.keyCode !== 229 && (event.key === "Enter" || event.keyCode === 13); } /** diff --git a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp index f810b8c32aa1c..6e1cacf1854fc 100644 --- a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp +++ b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp @@ -566,6 +566,8 @@ void CanvasRenderingContext2D::resourceElementChanged() { } bool CanvasRenderingContext2D::originClean() const { + if (canvas()->document().frame()->isNodeJS()) + return true; return canvas()->originClean(); } diff --git a/third_party/WebKit/Source/platform/FileChooser.cpp b/third_party/WebKit/Source/platform/FileChooser.cpp index 0c3420f8fa617..15a938c91dec8 100644 --- a/third_party/WebKit/Source/platform/FileChooser.cpp +++ b/third_party/WebKit/Source/platform/FileChooser.cpp @@ -62,13 +62,14 @@ FileChooser::~FileChooser() {} void FileChooser::chooseFiles(const Vector<FileChooserFileInfo>& files) { // FIXME: This is inelegant. We should not be looking at settings here. Vector<String> paths; + bool canceled = false; for (unsigned i = 0; i < files.size(); ++i) paths.append(files[i].path); if (m_settings.selectedFiles == paths) - return; + canceled = true; if (m_client) - m_client->filesChosen(files); + m_client->filesChosen(files, canceled); } Vector<String> FileChooserSettings::acceptTypes() const { diff --git a/third_party/WebKit/Source/platform/FileChooser.h b/third_party/WebKit/Source/platform/FileChooser.h index 7196cf31dcad2..5c87bf8090052 100644 --- a/third_party/WebKit/Source/platform/FileChooser.h +++ b/third_party/WebKit/Source/platform/FileChooser.h @@ -70,11 +70,15 @@ struct FileChooserSettings { // Returns a combined vector of acceptMIMETypes and acceptFileExtensions. Vector<String> PLATFORM_EXPORT acceptTypes() const; + String initialPath; + String initialValue; + bool directoryChooser; + bool saveAs; }; class PLATFORM_EXPORT FileChooserClient { public: - virtual void filesChosen(const Vector<FileChooserFileInfo>&) = 0; + virtual void filesChosen(const Vector<FileChooserFileInfo>&, bool canceled = false) = 0; virtual ~FileChooserClient(); protected: diff --git a/third_party/WebKit/Source/platform/LifecycleObserver.h b/third_party/WebKit/Source/platform/LifecycleObserver.h index e6a9b9d146b09..1e94f9ac99e7e 100644 --- a/third_party/WebKit/Source/platform/LifecycleObserver.h +++ b/third_party/WebKit/Source/platform/LifecycleObserver.h @@ -50,6 +50,7 @@ class LifecycleObserver : public GarbageCollectedMixin { setContext(context); } + public: void setContext(Context*); private: diff --git a/third_party/WebKit/Source/platform/exported/WebSecurityOrigin.cpp b/third_party/WebKit/Source/platform/exported/WebSecurityOrigin.cpp index bfaaaa10765d4..a49ccdbe80224 100644 --- a/third_party/WebKit/Source/platform/exported/WebSecurityOrigin.cpp +++ b/third_party/WebKit/Source/platform/exported/WebSecurityOrigin.cpp @@ -158,4 +158,9 @@ void WebSecurityOrigin::grantLoadLocalResources() const { get()->grantLoadLocalResources(); } -} // namespace blink +void WebSecurityOrigin::grantUniversalAccess() const +{ + get()->grantUniversalAccess(); +} + +} // namespace blink diff --git a/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc b/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc index d8e4265905f60..a94b5fd3a6066 100644 --- a/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc +++ b/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc @@ -17,6 +17,18 @@ #include "platform/scheduler/child/worker_scheduler_impl.h" #include "public/platform/WebTraceLocation.h" +#include "v8.h" + +#include "third_party/node/src/node_webkit.h" +#define PLATFORM_HOOK_MAP(type, sym, fn) PLATFORM_EXPORT type fn = nullptr; +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + namespace blink { namespace scheduler { @@ -28,6 +40,8 @@ WebThreadImplForWorkerScheduler::WebThreadImplForWorkerScheduler( const char* name, base::Thread::Options options) : thread_(new base::Thread(name ? name : std::string())) { + if (g_web_worker_thread_new_fn) + (*g_web_worker_thread_new_fn)((void*)name, &options); bool started = thread_->StartWithOptions(options); CHECK(started); thread_task_runner_ = thread_->task_runner(); diff --git a/third_party/WebKit/Source/platform/weborigin/SecurityOrigin.h b/third_party/WebKit/Source/platform/weborigin/SecurityOrigin.h index 77ca586447016..04e60b5343a27 100644 --- a/third_party/WebKit/Source/platform/weborigin/SecurityOrigin.h +++ b/third_party/WebKit/Source/platform/weborigin/SecurityOrigin.h @@ -87,6 +87,7 @@ class PLATFORM_EXPORT SecurityOrigin : public RefCounted<SecurityOrigin> { String host() const { return m_host; } String domain() const { return m_domain; } unsigned short port() const { return m_port; } + bool hasUniversalAccess() const { return m_universalAccess; } // |port()| will return 0 if the port is the default for an origin. This // method instead returns the effective port, even if it is the default port diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.cpp b/third_party/WebKit/Source/web/ChromeClientImpl.cpp index 869c173717317..ec02250bdb3b2 100644 --- a/third_party/WebKit/Source/web/ChromeClientImpl.cpp +++ b/third_party/WebKit/Source/web/ChromeClientImpl.cpp @@ -363,7 +363,8 @@ WebNavigationPolicy effectiveNavigationPolicy(NavigationPolicy navigationPolicy, Page* ChromeClientImpl::createWindow(LocalFrame* frame, const FrameLoadRequest& r, const WindowFeatures& features, - NavigationPolicy navigationPolicy) { + NavigationPolicy navigationPolicy, + WebString* manifest) { if (!m_webView->client()) return nullptr; @@ -378,7 +379,7 @@ Page* ChromeClientImpl::createWindow(LocalFrame* frame, WebViewImpl* newView = toWebViewImpl(m_webView->client()->createView( WebLocalFrameImpl::fromFrame(frame), WrappedResourceRequest(r.resourceRequest()), features, r.frameName(), - policy, r.getShouldSetOpener() == NeverSetOpener || features.noopener)); + policy, r.getShouldSetOpener() == NeverSetOpener || features.noopener, manifest)); if (!newView) return nullptr; return newView->page(); @@ -712,12 +713,20 @@ void ChromeClientImpl::openFileChooser(LocalFrame* frame, WebFileChooserParams params; params.multiSelect = fileChooser->settings().allowsMultipleFiles; - params.directory = fileChooser->settings().allowsDirectoryUpload; + params.directory = fileChooser->settings().allowsDirectoryUpload || fileChooser->settings().directoryChooser; params.acceptTypes = fileChooser->settings().acceptTypes(); params.selectedFiles = fileChooser->settings().selectedFiles; + if (params.selectedFiles.size() > 0) { + params.initialValue = params.selectedFiles[0]; + } else { + params.initialValue = fileChooser->settings().initialValue; + } params.useMediaCapture = fileChooser->settings().useMediaCapture; params.needLocalPath = fileChooser->settings().allowsDirectoryUpload; params.requestor = frame->document()->url(); + params.initialPath = fileChooser->settings().initialPath; + params.saveAs = fileChooser->settings().saveAs; + params.extractDirectory = fileChooser->settings().allowsDirectoryUpload; WebFileChooserCompletionImpl* chooserCompletion = new WebFileChooserCompletionImpl(std::move(fileChooser)); diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.h b/third_party/WebKit/Source/web/ChromeClientImpl.h index efcff9e73b880..6594bbe2b77e0 100644 --- a/third_party/WebKit/Source/web/ChromeClientImpl.h +++ b/third_party/WebKit/Source/web/ChromeClientImpl.h @@ -73,7 +73,7 @@ class WEB_EXPORT ChromeClientImpl final : public ChromeClient { Page* createWindow(LocalFrame*, const FrameLoadRequest&, const WindowFeatures&, - NavigationPolicy) override; + NavigationPolicy, WebString*) override; void show(NavigationPolicy) override; void didOverscroll(const FloatSize& overscrollDelta, const FloatSize& accumulatedOverscroll, diff --git a/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp b/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp index e83d84b24eab7..092b274a0024e 100644 --- a/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp +++ b/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp @@ -124,6 +124,14 @@ Frame* toCoreFrame(WebFrame* frame) { } // namespace +void FrameLoaderClientImpl::willHandleNavigationPolicy(const ResourceRequest& request, NavigationPolicy* policy, WebString* manifest, bool new_win) +{ + if (m_webFrame->client()) { + WrappedResourceRequest webreq(request); + m_webFrame->client()->willHandleNavigationPolicy(m_webFrame, webreq, (WebNavigationPolicy*)policy, manifest, new_win); + } +} + FrameLoaderClientImpl::FrameLoaderClientImpl(WebLocalFrameImpl* frame) : m_webFrame(frame) {} diff --git a/third_party/WebKit/Source/web/FrameLoaderClientImpl.h b/third_party/WebKit/Source/web/FrameLoaderClientImpl.h index 49938649b1a4d..f1d2a0bd675b0 100644 --- a/third_party/WebKit/Source/web/FrameLoaderClientImpl.h +++ b/third_party/WebKit/Source/web/FrameLoaderClientImpl.h @@ -57,6 +57,7 @@ class FrameLoaderClientImpl final : public FrameLoaderClient { // FrameLoaderClient ---------------------------------------------- void didCreateNewDocument() override; + void willHandleNavigationPolicy(const blink::ResourceRequest& request, blink::NavigationPolicy* policy, WebString* manifest = NULL, bool new_win = true) override; // Notifies the WebView delegate that the JS window object has been cleared, // giving it a chance to bind native objects to the window before script // parsing begins. diff --git a/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.cpp b/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.cpp index d25425496981b..87fc4061a7865 100644 --- a/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.cpp +++ b/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.cpp @@ -120,7 +120,8 @@ void SharedWorkerRepositoryClientImpl::connect( WebMessagePortChannelUniquePtr port, const KURL& url, const String& name, - ExceptionState& exceptionState) { + ExceptionState& exceptionState, + bool isNodeJS) { DCHECK(m_client); // No nested workers (for now) - connect() should only be called from document @@ -148,7 +149,7 @@ void SharedWorkerRepositoryClientImpl::connect( bool isSecureContext = worker->getExecutionContext()->isSecureContext(unusedSecureContextError); std::unique_ptr<WebSharedWorkerConnector> webWorkerConnector = - wrapUnique(m_client->createSharedWorkerConnector( + wrapUnique(m_client->createSharedWorkerConnector(isNodeJS, url, name, getId(document), header, headerType, worker->getExecutionContext()->securityContext().addressSpace(), isSecureContext ? WebSharedWorkerCreationContextTypeSecure diff --git a/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.h b/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.h index 556c76229cb1b..d8b3102610525 100644 --- a/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.h +++ b/third_party/WebKit/Source/web/SharedWorkerRepositoryClientImpl.h @@ -58,7 +58,7 @@ class SharedWorkerRepositoryClientImpl final WebMessagePortChannelUniquePtr, const KURL&, const String& name, - ExceptionState&) override; + ExceptionState&, bool) override; void documentDetached(Document*) override; private: diff --git a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp index aa8a964dcc230..f10223b9662c9 100644 --- a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp +++ b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp @@ -30,6 +30,19 @@ #include "web/WebEmbeddedWorkerImpl.h" +#include "third_party/node/src/node_webkit.h" +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#define BLINK_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#define BLINK_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + +#include "base/command_line.h" + #include "bindings/core/v8/SourceLocation.h" #include "core/dom/Document.h" #include "core/dom/ExecutionContextTask.h" @@ -414,6 +427,8 @@ void WebEmbeddedWorkerImpl::startWorkerThread() { DCHECK(!m_askedToTerminate); Document* document = m_mainFrame->frame()->document(); + const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); + bool isNodeJS = document->frame() && document->frame()->isNodeJS() && command_line.HasSwitch("enable-node-worker"); // FIXME: this document's origin is pristine and without any extra privileges. // (crbug.com/254993) @@ -443,8 +458,12 @@ void WebEmbeddedWorkerImpl::startWorkerThread() { std::unique_ptr<WorkerSettings> workerSettings = wrapUnique(new WorkerSettings(document->settings())); + std::string main_script; + if (g_web_worker_start_thread_fn) { + (*g_web_worker_start_thread_fn)(m_mainFrame->frame(), (void*)scriptURL.path().utf8().data(), &main_script, &isNodeJS); + } std::unique_ptr<WorkerThreadStartupData> startupData = - WorkerThreadStartupData::create( + WorkerThreadStartupData::create(isNodeJS, main_script, scriptURL, m_workerStartData.userAgent, m_mainScriptLoader->script(), m_mainScriptLoader->releaseCachedMetadata(), startMode, document->contentSecurityPolicy()->headers().get(), diff --git a/third_party/WebKit/Source/web/WebKit.cpp b/third_party/WebKit/Source/web/WebKit.cpp index 9ad32eaa2123b..639e74c422639 100644 --- a/third_party/WebKit/Source/web/WebKit.cpp +++ b/third_party/WebKit/Source/web/WebKit.cpp @@ -30,6 +30,22 @@ #include "public/web/WebKit.h" +#include "third_party/node/src/node_webkit.h" +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#define BLINK_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#define BLINK_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + +#include "modules/gamepad/NavigatorGamepad.h" +#include "public/web/WebFrame.h" +#include "public/web/WebDocument.h" +#include "core/dom/Document.h" + #include "bindings/core/v8/Microtask.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8GCController.h" @@ -122,10 +138,23 @@ bool layoutTestMode() { return LayoutTestSupport::isRunningLayoutTest(); } +void set_web_worker_hooks(void* fn_start) +{ + g_web_worker_start_thread_fn = (VoidPtr4Fn)fn_start; +} + void setMockThemeEnabledForTest(bool value) { LayoutTestSupport::setMockThemeEnabledForTest(value); } +void fix_gamepad_nw(WebFrame* frame) +{ + Document* doc = frame->document(); + NavigatorGamepad* gamepad = NavigatorGamepad::from(*doc); + ((ContextLifecycleObserver*)gamepad)->setContext(static_cast<ExecutionContext*>(doc)); + gamepad->gamepads(); +} + void setFontAntialiasingEnabledForTest(bool value) { LayoutTestSupport::setFontAntialiasingEnabledForTest(value); } diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.h b/third_party/WebKit/Source/web/WebLocalFrameImpl.h index 74fe9a0b58050..f7923d5bcdafc 100644 --- a/third_party/WebKit/Source/web/WebLocalFrameImpl.h +++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.h @@ -380,6 +380,14 @@ class WEB_EXPORT WebLocalFrameImpl final } void setInputEventsTransformForEmulation(const IntSize&, float); + void setNodeJS(bool node) { frame()->setNodeJS(node); } + bool isNodeJS() const { return frame()->isNodeJS(); } + bool isNwDisabledChildFrame() const { return frame()->isNwDisabledChildFrame(); } + bool isNwFakeTop() const { return frame()->isNwFakeTop(); } + void setDevtoolsJail(WebFrame* iframe) { + frame()->setDevtoolsJail(iframe ? static_cast<const WebLocalFrameImpl*>(iframe)->frame() : NULL); + } + WebFrame* getDevtoolsJail() { return fromFrame((blink::LocalFrame*)frame()->getDevtoolsJail()); } static void selectWordAroundPosition(LocalFrame*, VisiblePosition); diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp index 7591ab68a8f0c..bdb5d0db4c698 100644 --- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp +++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp @@ -30,6 +30,17 @@ #include "web/WebSharedWorkerImpl.h" +#include "third_party/node/src/node_webkit.h" +#if defined(COMPONENT_BUILD) && defined(WIN32) +#define NW_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#define BLINK_HOOK_MAP(type, sym, fn) BASE_EXPORT type fn; +#else +#define NW_HOOK_MAP(type, sym, fn) extern type fn; +#define BLINK_HOOK_MAP(type, sym, fn) extern type fn; +#endif +#include "content/nw/src/common/node_hooks.h" +#undef NW_HOOK_MAP + #include "core/dom/Document.h" #include "core/dom/ExecutionContextTask.h" #include "core/events/MessageEvent.h" @@ -313,12 +324,15 @@ void WebSharedWorkerImpl::connectTask(WebMessagePortChannelUniquePtr channel, workerGlobalScope->dispatchEvent(createConnectEvent(port)); } -void WebSharedWorkerImpl::startWorkerContext( +void WebSharedWorkerImpl::startWorkerContext(bool nodejs, + const base::FilePath& root_path, const WebURL& url, const WebString& name, const WebString& contentSecurityPolicy, WebContentSecurityPolicyType policyType, WebAddressSpace creationAddressSpace) { + m_nodejs = nodejs; + m_root_path = root_path; m_url = url; m_name = name; m_creationAddressSpace = creationAddressSpace; @@ -350,6 +364,10 @@ void WebSharedWorkerImpl::onScriptLoaderFinished() { // FIXME: this document's origin is pristine and without any extra privileges. // (crbug.com/254993) SecurityOrigin* starterOrigin = document->getSecurityOrigin(); + std::string main_script = m_root_path.AsUTF8Unsafe(); + if (g_web_worker_start_thread_fn && m_nodejs) { + (*g_web_worker_start_thread_fn)(nullptr, (void*)m_mainScriptLoader->url().path().utf8().data(), &main_script, &m_nodejs); + } WorkerClients* workerClients = WorkerClients::create(); provideLocalFileSystemToWorker(workerClients, @@ -367,7 +385,7 @@ void WebSharedWorkerImpl::onScriptLoaderFinished() { std::unique_ptr<WorkerSettings> workerSettings = wrapUnique(new WorkerSettings(document->settings())); std::unique_ptr<WorkerThreadStartupData> startupData = - WorkerThreadStartupData::create( + WorkerThreadStartupData::create(m_nodejs, main_script, m_url, m_loadingDocument->userAgent(), m_mainScriptLoader->script(), nullptr, startMode, contentSecurityPolicy ? contentSecurityPolicy->headers().get() diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.h b/third_party/WebKit/Source/web/WebSharedWorkerImpl.h index adb05d1bf54ec..ab925f9a6c235 100644 --- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.h +++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.h @@ -107,7 +107,7 @@ class WebSharedWorkerImpl final : public WorkerReportingProxy, override; // WebSharedWorker methods: - void startWorkerContext(const WebURL&, + void startWorkerContext(bool, const base::FilePath&, const WebURL&, const WebString& name, const WebString& contentSecurityPolicy, WebContentSecurityPolicyType, @@ -181,6 +181,8 @@ class WebSharedWorkerImpl final : public WorkerReportingProxy, RefPtr<WorkerLoaderProxy> m_loaderProxy; + bool m_nodejs; + base::FilePath m_root_path; WebURL m_url; WebString m_name; WebAddressSpace m_creationAddressSpace; diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp index c310e97b6df09..a55c4d7ad09a0 100644 --- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp +++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp @@ -6830,7 +6830,7 @@ class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { const WebWindowFeatures&, const WebString&, WebNavigationPolicy, - bool) override { + bool, WebString*) override { EXPECT_TRUE(false); return 0; } diff --git a/third_party/WebKit/Source/web/tests/WebViewTest.cpp b/third_party/WebKit/Source/web/tests/WebViewTest.cpp index 6ac3a95a5341d..900067c60a366 100644 --- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp +++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp @@ -2864,7 +2864,7 @@ class ViewCreatingWebViewClient : public FrameTestHelpers::TestWebViewClient { const WebWindowFeatures&, const WebString& name, WebNavigationPolicy, - bool) override { + bool, WebString*) override { return m_webViewHelper.initializeWithOpener(opener, true); } diff --git a/third_party/WebKit/Source/wtf/BUILD.gn b/third_party/WebKit/Source/wtf/BUILD.gn index cbba7dd0e7361..ef45f9aec6be3 100644 --- a/third_party/WebKit/Source/wtf/BUILD.gn +++ b/third_party/WebKit/Source/wtf/BUILD.gn @@ -10,6 +10,7 @@ import("//third_party/WebKit/Source/config.gni") visibility = [ "//mojo/public/cpp/bindings/*", "//third_party/WebKit/*", + "//content/nw/*", ] config("wtf_config") { diff --git a/third_party/WebKit/public/platform/Platform.h b/third_party/WebKit/public/platform/Platform.h index 747885a940b47..3813565045089 100644 --- a/third_party/WebKit/public/platform/Platform.h +++ b/third_party/WebKit/public/platform/Platform.h @@ -591,7 +591,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void didStartWorkerThread() {} virtual void willStopWorkerThread() {} - virtual void workerContextCreated(const v8::Local<v8::Context>& worker) {} + virtual void workerContextCreated(const v8::Local<v8::Context>& worker, bool, const std::string&) {} virtual bool allowScriptExtensionForServiceWorker(const WebURL& scriptUrl) { return false; } diff --git a/third_party/WebKit/public/platform/WebSecurityOrigin.h b/third_party/WebKit/public/platform/WebSecurityOrigin.h index 909b5732b0185..a686422d94a55 100644 --- a/third_party/WebKit/public/platform/WebSecurityOrigin.h +++ b/third_party/WebKit/public/platform/WebSecurityOrigin.h @@ -110,6 +110,8 @@ class WebSecurityOrigin { // Allows this WebSecurityOrigin access to local resources. BLINK_PLATFORM_EXPORT void grantLoadLocalResources() const; + BLINK_PLATFORM_EXPORT void grantUniversalAccess() const; + #if INSIDE_BLINK BLINK_PLATFORM_EXPORT WebSecurityOrigin(WTF::PassRefPtr<SecurityOrigin>); BLINK_PLATFORM_EXPORT WebSecurityOrigin& operator=( diff --git a/third_party/WebKit/public/web/WebFileChooserParams.h b/third_party/WebKit/public/web/WebFileChooserParams.h index a33a44f8d46d1..9b95517dd8d06 100644 --- a/third_party/WebKit/public/web/WebFileChooserParams.h +++ b/third_party/WebKit/public/web/WebFileChooserParams.h @@ -49,6 +49,8 @@ struct WebFileChooserParams { bool saveAs; // |title| is the title for a file chooser dialog. It can be an empty string. WebString title; + // revert 14785d90f691b2b20d07612a62ba35a630bbb9ac for nwsaveas #5667 + WebString initialValue; // This contains MIME type strings such as "audio/*" "text/plain" or file // extensions beginning with a period (.) such as ".mp3" ".txt". // The dialog may restrict selectable files to files with the specified MIME @@ -79,12 +81,18 @@ struct WebFileChooserParams { // initiated by a document. WebURL requestor; + WebString initialPath; + bool extractDirectory; + WebFileChooserParams() : multiSelect(false), directory(false), saveAs(false), useMediaCapture(false), - needLocalPath(true) {} + needLocalPath(true), + extractDirectory(true) + { + } }; } // namespace blink diff --git a/third_party/WebKit/public/web/WebFrame.h b/third_party/WebKit/public/web/WebFrame.h index 1aeb812816729..e9dc12f5556aa 100644 --- a/third_party/WebKit/public/web/WebFrame.h +++ b/third_party/WebKit/public/web/WebFrame.h @@ -112,6 +112,16 @@ class WebFrame { virtual bool isWebRemoteFrame() const = 0; virtual WebRemoteFrame* toWebRemoteFrame() = 0; + virtual bool isNwFakeTop() const {return false;} + + virtual void setNodeJS(bool) {} + virtual bool isNodeJS() const {return false;} + virtual bool isNwDisabledChildFrame() const {return false;} + + virtual void setDevtoolsJail(WebFrame*) {} + virtual WebFrame* getDevtoolsJail() {return NULL;} + + BLINK_EXPORT bool swap(WebFrame*); // This method closes and deletes the WebFrame. This is typically called by @@ -452,8 +462,9 @@ class WebFrame { // the given element is not a frame, iframe or if the frame is empty. BLINK_EXPORT static WebFrame* fromFrameOwnerElement(const WebElement&); + BLINK_EXPORT static WebFrame* fromFrame(Frame*); + #if BLINK_IMPLEMENTATION - static WebFrame* fromFrame(Frame*); bool inShadowTree() const { return m_scope == WebTreeScopeType::Shadow; } diff --git a/third_party/WebKit/public/web/WebFrameClient.h b/third_party/WebKit/public/web/WebFrameClient.h index d003943052900..3ff309e03b9e1 100644 --- a/third_party/WebKit/public/web/WebFrameClient.h +++ b/third_party/WebKit/public/web/WebFrameClient.h @@ -114,6 +114,8 @@ class BLINK_EXPORT WebFrameClient { virtual ~WebFrameClient() {} // Factory methods ----------------------------------------------------- + virtual void willHandleNavigationPolicy( + WebFrame*, const WebURLRequest&, WebNavigationPolicy*, WebString* manifest = NULL, bool new_win = true) { } // May return null. virtual WebPlugin* createPlugin(WebLocalFrame*, const WebPluginParams&) { diff --git a/third_party/WebKit/public/web/WebKit.h b/third_party/WebKit/public/web/WebKit.h index 1a94eef04217d..6c8028a8ecd74 100644 --- a/third_party/WebKit/public/web/WebKit.h +++ b/third_party/WebKit/public/web/WebKit.h @@ -35,7 +35,7 @@ #include <v8.h> namespace blink { - +class WebFrame; // Initialize the entire Blink (wtf, platform, core, modules and web). // If you just need wtf and platform, use Platform::initialize instead. // @@ -58,6 +58,8 @@ BLINK_EXPORT void shutdown(); BLINK_EXPORT void setLayoutTestMode(bool); BLINK_EXPORT bool layoutTestMode(); +BLINK_EXPORT void set_web_worker_hooks(void*); +BLINK_EXPORT void fix_gamepad_nw(WebFrame*); // Enables or disables the use of the mock theme for layout tests. This function // must be called only if setLayoutTestMode(true). BLINK_EXPORT void setMockThemeEnabledForTest(bool); diff --git a/third_party/WebKit/public/web/WebNode.h b/third_party/WebKit/public/web/WebNode.h index 061b4305b60ab..977df72650058 100644 --- a/third_party/WebKit/public/web/WebNode.h +++ b/third_party/WebKit/public/web/WebNode.h @@ -110,10 +110,10 @@ class WebNode { template <typename T> const T toConst() const; + BLINK_EXPORT WebNode(Node*); #if BLINK_IMPLEMENTATION BLINK_EXPORT static WebPluginContainer* pluginContainerFromNode(const Node*); - BLINK_EXPORT WebNode(Node*); BLINK_EXPORT WebNode& operator=(Node*); BLINK_EXPORT operator Node*() const; diff --git a/third_party/WebKit/public/web/WebSharedWorker.h b/third_party/WebKit/public/web/WebSharedWorker.h index 115ac233ac199..857671dbf8bd9 100644 --- a/third_party/WebKit/public/web/WebSharedWorker.h +++ b/third_party/WebKit/public/web/WebSharedWorker.h @@ -35,6 +35,10 @@ #include "../platform/WebCommon.h" #include "WebContentSecurityPolicy.h" +namespace base { + class FilePath; +} + namespace blink { class WebString; @@ -50,7 +54,7 @@ class WebSharedWorker { // lifetime as this instance. BLINK_EXPORT static WebSharedWorker* create(WebSharedWorkerClient*); - virtual void startWorkerContext(const WebURL& scriptURL, + virtual void startWorkerContext(bool nodejs, const base::FilePath& root_path, const WebURL& scriptURL, const WebString& name, const WebString& contentSecurityPolicy, WebContentSecurityPolicyType, diff --git a/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h b/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h index 97a9897b3046c..fed7f9805cd2d 100644 --- a/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h +++ b/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h @@ -49,7 +49,7 @@ class WebSharedWorkerRepositoryClient { typedef unsigned long long DocumentID; // Creates a new shared worker connector. This may return null. - virtual WebSharedWorkerConnector* createSharedWorkerConnector( + virtual WebSharedWorkerConnector* createSharedWorkerConnector(bool isNodeJS, const WebURL& url, const WebString& name, DocumentID id, diff --git a/third_party/WebKit/public/web/WebViewClient.h b/third_party/WebKit/public/web/WebViewClient.h index dd2c49a547ba4..19e9082f5517c 100644 --- a/third_party/WebKit/public/web/WebViewClient.h +++ b/third_party/WebKit/public/web/WebViewClient.h @@ -78,7 +78,7 @@ class WebViewClient : protected WebWidgetClient { const WebWindowFeatures& features, const WebString& name, WebNavigationPolicy policy, - bool suppressOpener) { + bool suppressOpener, WebString* manifest = nullptr) { return 0; } diff --git a/tools/grit/grit_rule.gni b/tools/grit/grit_rule.gni index 532f4a9bbae40..e67b2b04c1793 100644 --- a/tools/grit/grit_rule.gni +++ b/tools/grit/grit_rule.gni @@ -135,6 +135,13 @@ if (is_chrome_branded) { ] } +if (nwjs_sdk) { + grit_defines += [ + "-D", + "nwjs_sdk", + ] +} + if (is_chromeos) { grit_defines += [ "-D", diff --git a/tools/gritsettings/resource_ids b/tools/gritsettings/resource_ids index c50051295c9a1..1492d1d99ae89 100644 --- a/tools/gritsettings/resource_ids +++ b/tools/gritsettings/resource_ids @@ -33,6 +33,10 @@ "chrome/app/address_input_strings.grd": { "messages": [400], }, + "chrome/browser/browser_resources.grd": { + "includes": [400], + "structures": [850], + }, # Chromium strings and Google Chrome strings must start at the same id. # We only use one file depending on whether we're building Chromium or @@ -359,4 +363,8 @@ # Please read the header and find the right section above instead. # Resource ids starting at 31000 are reserved for projects built on Chromium. + "chrome/browser/nwjs_resources.grd": { + "includes": [32000], + "structures": [32350], + }, } diff --git a/tools/licenses.py b/tools/licenses.py index 3d37d3ff92596..b42c19eadbe95 100755 --- a/tools/licenses.py +++ b/tools/licenses.py @@ -95,6 +95,7 @@ 'layout_tests')) # lots of subdirs ADDITIONAL_PATHS = ( + os.path.join('content', 'nw'), os.path.join('breakpad'), os.path.join('chrome', 'common', 'extensions', 'docs', 'examples'), os.path.join('chrome', 'test', 'chromeos', 'autotest'), @@ -117,6 +118,16 @@ # can't provide a README.chromium. Please prefer a README.chromium # wherever possible. SPECIAL_CASES = { + os.path.join('content', 'nw'): { + "Name": "NW.js", + "URL": "http://nwjs.io", + "License": "MIT", + }, + os.path.join('third_party', 'node'): { + "Name": "IO.js", + "URL": "https://iojs.org", + "License": "MIT", + }, os.path.join('native_client'): { "Name": "native client", "URL": "http://code.google.com/p/nativeclient", diff --git a/ui/accelerated_widget_mac/BUILD.gn b/ui/accelerated_widget_mac/BUILD.gn index 6483418091758..4877a0193b21c 100644 --- a/ui/accelerated_widget_mac/BUILD.gn +++ b/ui/accelerated_widget_mac/BUILD.gn @@ -30,6 +30,7 @@ component("accelerated_widget_mac") { "//base", "//skia", "//ui/base", + "//ui/display", "//ui/events", "//ui/events:events_base", "//ui/gfx", diff --git a/ui/accelerated_widget_mac/accelerated_widget_mac.h b/ui/accelerated_widget_mac/accelerated_widget_mac.h index 55d1f7219b2c2..681fc75621815 100644 --- a/ui/accelerated_widget_mac/accelerated_widget_mac.h +++ b/ui/accelerated_widget_mac/accelerated_widget_mac.h @@ -19,6 +19,8 @@ #include "ui/gfx/geometry/size.h" #include "ui/gfx/native_widget_types.h" +class SkCanvas; + namespace ui { class FullscreenLowPowerCoordinator; @@ -76,6 +78,9 @@ class ACCELERATED_WIDGET_MAC_EXPORT AcceleratedWidgetMac { const gfx::Size& pixel_size, float scale_factor); + void GotSoftwareFrame(float scale_factor, + SkCanvas* canvas); + private: // The AcceleratedWidgetMacNSView that is using this as its internals. AcceleratedWidgetMacNSView* view_; @@ -110,6 +115,10 @@ class ACCELERATED_WIDGET_MAC_EXPORT AcceleratedWidgetMac { DISALLOW_COPY_AND_ASSIGN(AcceleratedWidgetMac); }; +ACCELERATED_WIDGET_MAC_EXPORT +void AcceleratedWidgetMacGotSoftwareFrame( + gfx::AcceleratedWidget widget, float scale_factor, SkCanvas* canvas); + } // namespace ui #endif // UI_ACCELERATED_WIDGET_MAC_ACCELERATED_WIDGET_MAC_H_ diff --git a/ui/accelerated_widget_mac/accelerated_widget_mac.mm b/ui/accelerated_widget_mac/accelerated_widget_mac.mm index 14f119ef986c9..0de1abec167ad 100644 --- a/ui/accelerated_widget_mac/accelerated_widget_mac.mm +++ b/ui/accelerated_widget_mac/accelerated_widget_mac.mm @@ -22,6 +22,10 @@ @interface CALayer (PrivateAPI) - (void)setContentsChanged; @end +namespace content { + extern bool g_force_cpu_draw; +} + namespace ui { namespace { @@ -232,4 +236,91 @@ - (void)setContentsChanged; view_->AcceleratedWidgetSwapCompleted(); } +// this function is "copied" from AcceleratedWidgetMac::GotIOSurfaceFrame +void AcceleratedWidgetMac::GotSoftwareFrame(float scale_factor, + SkCanvas* canvas) { + TRACE_EVENT0("ui", "AcceleratedWidgetMac GotSoftwareFrame"); + assert(content::g_force_cpu_draw); + if (!canvas || !view_) { + TRACE_EVENT0("ui", "No associated NSView or No canvas"); + return; + } + + // Disable the fade-in or fade-out effect if we create or remove layers. + ScopedCAActionDisabler disabler; + + // Create (if needed) and update the IOSurface layer with new content. + if (!io_surface_layer_) { + io_surface_layer_.reset([[CALayer alloc] init]); + [io_surface_layer_ setContentsGravity:kCAGravityTopLeft]; + [io_surface_layer_ setAnchorPoint:CGPointMake(0, 0)]; + [flipped_layer_ addSublayer:io_surface_layer_]; + if (content::g_force_cpu_draw) + [io_surface_layer_.get() setBackgroundColor:[flipped_layer_.get() backgroundColor]]; + } + + // Set the software layer to draw the provided canvas. + SkPixmap pixmap; + canvas->peekPixels(&pixmap); + const SkImageInfo& info = pixmap.info(); + const size_t row_bytes = pixmap.rowBytes(); + const void* pixels = pixmap.addr(); + gfx::Size pixel_size(info.width(), info.height()); + last_swap_size_dip_ = gfx::ConvertSizeToDIP(scale_factor, pixel_size); + + // Set the contents of the software CALayer to be a CGImage with the provided + // pixel data. Make a copy of the data before backing the image with them, + // because the same buffer will be reused for the next frame. + base::ScopedCFTypeRef<CFDataRef> dataCopy( + CFDataCreate(NULL, + static_cast<const UInt8 *>(pixels), + row_bytes * pixel_size.height())); + base::ScopedCFTypeRef<CGDataProviderRef> dataProvider( + CGDataProviderCreateWithCFData(dataCopy)); + base::ScopedCFTypeRef<CGImageRef> image( + CGImageCreate(pixel_size.width(), + pixel_size.height(), + 8, + 32, + row_bytes, + base::mac::GetSystemColorSpace(), + kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, + dataProvider, + NULL, + false, + kCGRenderingIntentDefault)); + + id new_contents = (id)image.get(); + if (new_contents && new_contents == [io_surface_layer_ contents]) + [io_surface_layer_ setContentsChanged]; + else + [io_surface_layer_ setContents:new_contents]; + [io_surface_layer_ setBounds:CGRectMake(0, 0, last_swap_size_dip_.width(), + last_swap_size_dip_.height())]; + if ([io_surface_layer_ contentsScale] != scale_factor) + [io_surface_layer_ setContentsScale:scale_factor]; + + // Ensure that the content layer is removed. + if (content_layer_) { + [content_layer_ removeFromSuperlayer]; + content_layer_.reset(); + } + + if (content::g_force_cpu_draw) { + // this is to tell parent window, that the window content has been updated + [[view_->AcceleratedWidgetGetNSView() superview]setNeedsDisplay:YES]; + } + view_->AcceleratedWidgetSwapCompleted(); +} + +void AcceleratedWidgetMacGotSoftwareFrame( + gfx::AcceleratedWidget widget, float scale_factor, SkCanvas* canvas) { + assert(content::g_force_cpu_draw); + + AcceleratedWidgetMac* accelerated_widget_mac = + ui::AcceleratedWidgetMac::Get(widget); + if (accelerated_widget_mac) + accelerated_widget_mac->GotSoftwareFrame(scale_factor, canvas); +} + } // namespace ui diff --git a/ui/accessibility/platform/atk_util_auralinux.cc b/ui/accessibility/platform/atk_util_auralinux.cc index d428f4d270bea..e7d6aaa7a279c 100644 --- a/ui/accessibility/platform/atk_util_auralinux.cc +++ b/ui/accessibility/platform/atk_util_auralinux.cc @@ -197,7 +197,7 @@ AtkUtilAuraLinux::AtkUtilAuraLinux() { void AtkUtilAuraLinux::Initialize( scoped_refptr<base::TaskRunner> init_task_runner) { - +#if 0 // Register our util class. g_type_class_unref(g_type_class_ref(ATK_UTIL_AURALINUX_TYPE)); @@ -212,6 +212,7 @@ void AtkUtilAuraLinux::Initialize( base::Bind( &AtkUtilAuraLinux::FinishAccessibilityInitOnUIThread, base::Unretained(this))); +#endif } AtkUtilAuraLinux::~AtkUtilAuraLinux() { diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc index f338a9501c1f8..1260ecdefed54 100644 --- a/ui/base/accelerators/accelerator.cc +++ b/ui/base/accelerators/accelerator.cc @@ -246,7 +246,8 @@ base::string16 Accelerator::GetShortcutText() const { // more information. if (IsCtrlDown()) shortcut = l10n_util::GetStringFUTF16(IDS_APP_CONTROL_MODIFIER, shortcut); - else if (IsAltDown()) + + if (IsAltDown()) shortcut = l10n_util::GetStringFUTF16(IDS_APP_ALT_MODIFIER, shortcut); if (IsCmdDown()) { @@ -254,6 +255,10 @@ base::string16 Accelerator::GetShortcutText() const { shortcut = l10n_util::GetStringFUTF16(IDS_APP_COMMAND_MODIFIER, shortcut); #elif defined(OS_CHROMEOS) shortcut = l10n_util::GetStringFUTF16(IDS_APP_SEARCH_MODIFIER, shortcut); +#elif defined(OS_WIN) + shortcut = l10n_util::GetStringFUTF16(IDS_APP_WINDOWS_MODIFIER, shortcut); +#elif defined(OS_LINUX) + shortcut = l10n_util::GetStringFUTF16(IDS_APP_SUPER_MODIFIER, shortcut); #else NOTREACHED(); #endif diff --git a/ui/base/base_window.cc b/ui/base/base_window.cc index 231a1771797ef..40e00cb7cdb69 100644 --- a/ui/base/base_window.cc +++ b/ui/base/base_window.cc @@ -12,5 +12,9 @@ bool BaseWindow::IsRestored(const BaseWindow& window) { !window.IsFullscreen(); } +void BaseWindow::ForceClose() { + Close(); +} + } // namespace ui diff --git a/ui/base/base_window.h b/ui/base/base_window.h index 5ba8480da3979..1783be7082d8e 100644 --- a/ui/base/base_window.h +++ b/ui/base/base_window.h @@ -63,6 +63,7 @@ class UI_BASE_EXPORT BaseWindow { // Closes the window as soon as possible. The close action may be delayed // if an operation is in progress (e.g. a drag operation). virtual void Close() = 0; + virtual void ForceClose(); // Activates (brings to front) the window. Restores the window from minimized // state if necessary. diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h index 18d2bb2c52aa7..f7e5b2e7630cf 100644 --- a/ui/base/clipboard/clipboard.h +++ b/ui/base/clipboard/clipboard.h @@ -231,7 +231,7 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) { static const FormatType& GetIDListFormatType(); #endif - protected: + public: static Clipboard* Create(); Clipboard() {} diff --git a/ui/base/models/simple_menu_model.cc b/ui/base/models/simple_menu_model.cc index 0fcddb1cb4f08..047b5dd6a0761 100644 --- a/ui/base/models/simple_menu_model.cc +++ b/ui/base/models/simple_menu_model.cc @@ -68,6 +68,10 @@ void SimpleMenuModel::Delegate::CommandIdHighlighted(int command_id) { void SimpleMenuModel::Delegate::MenuWillShow(SimpleMenuModel* /*source*/) { } +bool SimpleMenuModel::Delegate::HasIcon(int command_id) { + return false; +} + void SimpleMenuModel::Delegate::MenuClosed(SimpleMenuModel* /*source*/) { } @@ -275,7 +279,7 @@ int SimpleMenuModel::GetIndexOfCommandId(int command_id) const { bool SimpleMenuModel::HasIcons() const { for (ItemVector::const_iterator i = items_.begin(); i != items_.end(); ++i) { - if (!i->icon.IsEmpty()) + if (delegate_->HasIcon(i->command_id)) return true; } diff --git a/ui/base/models/simple_menu_model.h b/ui/base/models/simple_menu_model.h index 9a9f35050950e..9e19f0d83d3a1 100644 --- a/ui/base/models/simple_menu_model.h +++ b/ui/base/models/simple_menu_model.h @@ -69,6 +69,8 @@ class UI_BASE_EXPORT SimpleMenuModel : public MenuModel { bool GetAcceleratorForCommandId( int command_id, ui::Accelerator* accelerator) const override; + + virtual bool HasIcon(int command_id); }; // The Delegate can be NULL, though if it is items can't be checked or diff --git a/ui/base/resource/resource_bundle.cc b/ui/base/resource/resource_bundle.cc index d20272910ca69..77f8c662ae1b0 100644 --- a/ui/base/resource/resource_bundle.cc +++ b/ui/base/resource/resource_bundle.cc @@ -4,6 +4,8 @@ #include "ui/base/resource/resource_bundle.h" +#include "base/strings/string_util.h" + #include <stdint.h> #include <limits> @@ -71,6 +73,8 @@ const char kPakFileSuffix[] = ".pak"; ResourceBundle* g_shared_instance_ = NULL; +base::string16 chromium_name, nwjs_name; + #if defined(OS_ANDROID) // Returns the scale factor closest to |scale| from the full list of factors. // Note that it does NOT rely on the list of supported scale factors. @@ -508,8 +512,10 @@ base::StringPiece ResourceBundle::GetRawDataResourceForScale( base::string16 ResourceBundle::GetLocalizedString(int message_id) { base::string16 string; - if (delegate_ && delegate_->GetLocalizedString(message_id, &string)) + if (delegate_ && delegate_->GetLocalizedString(message_id, &string)) { + base::ReplaceSubstringsAfterOffset(&string, 0, chromium_name, nwjs_name); return string; + } // Ensure that ReloadLocaleResources() doesn't drop the resources while // we're using them. @@ -553,6 +559,7 @@ base::string16 ResourceBundle::GetLocalizedString(int message_id) { } else if (encoding == ResourceHandle::UTF8) { msg = base::UTF8ToUTF16(data); } + base::ReplaceSubstringsAfterOffset(&msg, 0, chromium_name, nwjs_name); return msg; } @@ -682,6 +689,8 @@ ResourceBundle::~ResourceBundle() { void ResourceBundle::InitSharedInstance(Delegate* delegate) { DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice"; g_shared_instance_ = new ResourceBundle(delegate); + chromium_name = base::ASCIIToUTF16("Chromium"); + nwjs_name = base::ASCIIToUTF16("NW.js"); static std::vector<ScaleFactor> supported_scale_factors; #if !defined(OS_IOS) // On platforms other than iOS, 100P is always a supported scale factor. @@ -727,12 +736,12 @@ void ResourceBundle::LoadChromeResources() { // scale factor to gfx::ImageSkia::AddRepresentation. if (IsScaleFactorSupported(SCALE_FACTOR_100P)) { AddDataPackFromPath(GetResourcesPakFilePath( - "chrome_100_percent.pak"), SCALE_FACTOR_100P); + "nw_100_percent.pak"), SCALE_FACTOR_100P); } if (IsScaleFactorSupported(SCALE_FACTOR_200P)) { AddOptionalDataPackFromPath(GetResourcesPakFilePath( - "chrome_200_percent.pak"), SCALE_FACTOR_200P); + "nw_200_percent.pak"), SCALE_FACTOR_200P); } } diff --git a/ui/base/resource/resource_bundle_mac.mm b/ui/base/resource/resource_bundle_mac.mm index 2dbe9ea26d63a..ab17c3f79d0fe 100644 --- a/ui/base/resource/resource_bundle_mac.mm +++ b/ui/base/resource/resource_bundle_mac.mm @@ -48,13 +48,13 @@ } // namespace void ResourceBundle::LoadCommonResources() { - AddDataPackFromPath(GetResourcesPakFilePath(@"chrome_100_percent", + AddDataPackFromPath(GetResourcesPakFilePath(@"nw_100_percent", nil), SCALE_FACTOR_100P); // On Mac we load 1x and 2x resources and we let the UI framework decide // which one to use. if (IsScaleFactorSupported(SCALE_FACTOR_200P)) { - AddDataPackFromPath(GetResourcesPakFilePath(@"chrome_200_percent", nil), + AddDataPackFromPath(GetResourcesPakFilePath(@"nw_200_percent", nil), SCALE_FACTOR_200P); } } diff --git a/ui/display/display.cc b/ui/display/display.cc index 60fd280d5e707..0b10256513555 100644 --- a/ui/display/display.cc +++ b/ui/display/display.cc @@ -17,6 +17,16 @@ #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/size_conversions.h" +namespace content { + +// Switch to enable / disable code for window's transparency +DISPLAY_EXPORT bool g_support_transparency = true; + +// Switch to force cpu drawing, is used to enable click through on alpha pixels +extern bool g_force_cpu_draw; +bool g_force_cpu_draw = false; +} + namespace display { namespace { diff --git a/ui/display/display.h b/ui/display/display.h index 24949393e243a..2a336ba621a87 100644 --- a/ui/display/display.h +++ b/ui/display/display.h @@ -16,6 +16,11 @@ #include "mojo/public/cpp/bindings/struct_traits.h" // nogncheck #endif +namespace content { + DISPLAY_EXPORT extern bool g_support_transparency; + DISPLAY_EXPORT extern bool g_force_cpu_draw; +} + namespace display { #if !defined(OS_IOS) diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn index 58562bdee8652..4dd2a4763638e 100644 --- a/ui/gfx/BUILD.gn +++ b/ui/gfx/BUILD.gn @@ -387,6 +387,7 @@ component("gfx") { if (is_mac) { libs = [ + "ApplicationServices.framework", "AppKit.framework", "CoreFoundation.framework", "CoreGraphics.framework", diff --git a/ui/gfx/icon_util.cc b/ui/gfx/icon_util.cc index 2d9bc2164a527..b650d68c68d1e 100644 --- a/ui/gfx/icon_util.cc +++ b/ui/gfx/icon_util.cc @@ -234,6 +234,21 @@ base::win::ScopedHICON IconUtil::CreateHICONFromSkBitmap( return icon; } +// NW fix: copied and modified from chrome/browser/ui/views/frame/glass_browser_frame_view.cc +// Converts the |image| to a Windows icon and returns the corresponding HICON +// handle. |image| is resized to desired |width| and |height| if needed. +base::win::ScopedHICON IconUtil::CreateHICONFromSkBitmapSizedTo( + const SkBitmap& bitmap, + int width, + int height) { + return CreateHICONFromSkBitmap( + width == bitmap.width() && height == bitmap.height() + ? bitmap + : skia::ImageOperations::Resize(bitmap, + skia::ImageOperations::RESIZE_BEST, + width, height)); +} + SkBitmap* IconUtil::CreateSkBitmapFromHICON(HICON icon, const gfx::Size& s) { // We start with validating parameters. if (!icon || s.IsEmpty()) diff --git a/ui/gfx/icon_util.h b/ui/gfx/icon_util.h index 960018ece0fe0..1e36e2f0be516 100644 --- a/ui/gfx/icon_util.h +++ b/ui/gfx/icon_util.h @@ -88,6 +88,10 @@ class GFX_EXPORT IconUtil { // needed by calling ::DestroyIcon(). static base::win::ScopedHICON CreateHICONFromSkBitmap(const SkBitmap& bitmap); + static base::win::ScopedHICON CreateHICONFromSkBitmapSizedTo(const SkBitmap& bitmap, + int width, + int height); + // Given a valid HICON handle representing an icon, this function converts // the icon into an SkBitmap object containing an ARGB bitmap using the // dimensions specified in |s|. |s| must specify valid dimensions (both diff --git a/ui/gfx/mac/nswindow_frame_controls.h b/ui/gfx/mac/nswindow_frame_controls.h index 61c6331ecfa51..c9d583e3721bc 100644 --- a/ui/gfx/mac/nswindow_frame_controls.h +++ b/ui/gfx/mac/nswindow_frame_controls.h @@ -39,6 +39,7 @@ GFX_EXPORT void ApplyNSWindowSizeConstraints(NSWindow* window, const gfx::Size& max_size, bool can_resize, bool can_fullscreen); +GFX_EXPORT void SetNSWindowShowInTaskbar(NSWindow* window, bool show); } // namespace gfx diff --git a/ui/gfx/mac/nswindow_frame_controls.mm b/ui/gfx/mac/nswindow_frame_controls.mm index 133aae6cf7a7a..bae685ffd0cf7 100644 --- a/ui/gfx/mac/nswindow_frame_controls.mm +++ b/ui/gfx/mac/nswindow_frame_controls.mm @@ -58,6 +58,22 @@ void SetNSWindowAlwaysOnTop(NSWindow* window, [window setCollectionBehavior:behavior]; } +void SetNSWindowShowInTaskbar(NSWindow* window, bool show) { + ProcessSerialNumber psn = { 0, kCurrentProcess }; + if (!show) { + NSArray* windowList = [[NSArray alloc] init]; + windowList = [NSWindow windowNumbersWithOptions:NSWindowNumberListAllSpaces]; + for (unsigned int i = 0; i < [windowList count]; ++i) { + NSWindow *window = [NSApp windowWithWindowNumber:[[windowList objectAtIndex:i] integerValue]]; + [window setCanHide:NO]; + } + TransformProcessType(&psn, kProcessTransformToUIElementApplication); + } + else { + TransformProcessType(&psn, kProcessTransformToForegroundApplication); + } +} + void SetNSWindowVisibleOnAllWorkspaces(NSWindow* window, bool always_visible) { NSWindowCollectionBehavior behavior = [window collectionBehavior]; if (always_visible) diff --git a/ui/gfx/paint_vector_icon.cc b/ui/gfx/paint_vector_icon.cc index 7168a756d63c9..e5e122f447eb7 100644 --- a/ui/gfx/paint_vector_icon.cc +++ b/ui/gfx/paint_vector_icon.cc @@ -382,6 +382,7 @@ class VectorIconSourceLegacy : public CanvasImageSource { VectorIconId badge_id) : CanvasImageSource(gfx::Size(dip_size, dip_size), false), id_(id), + path_(), color_(color), badge_id_(badge_id) {} diff --git a/ui/message_center/views/message_center_view.cc b/ui/message_center/views/message_center_view.cc index b95ebf55eddaa..22891f44c08b8 100644 --- a/ui/message_center/views/message_center_view.cc +++ b/ui/message_center/views/message_center_view.cc @@ -497,7 +497,7 @@ void MessageCenterView::AddNotificationAt(const Notification& notification, int index) { MessageView* view = MessageViewFactory::Create(this, notification, false); // Not top-level. - view->set_context_menu_controller(context_menu_controller_.get()); + //view->set_context_menu_controller(context_menu_controller_.get()); notification_views_[notification.id()] = view; view->set_scroller(scroller_); message_list_view_->AddNotificationAt(view, index); diff --git a/ui/message_center/views/message_popup_collection.cc b/ui/message_center/views/message_popup_collection.cc index 9b85920084f58..16c2f4e47a828 100644 --- a/ui/message_center/views/message_popup_collection.cc +++ b/ui/message_center/views/message_popup_collection.cc @@ -171,7 +171,7 @@ void MessagePopupCollection::UpdateWidgets() { view = MessageViewFactory::Create(NULL, *(*iter), true); } - view->set_context_menu_controller(context_menu_controller_.get()); + //view->set_context_menu_controller(context_menu_controller_.get()); int view_height = ToastContentsView::GetToastSizeForView(view).height(); int height_available = top_down ? alignment_delegate_->GetWorkArea().bottom() - base diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc index 52acd96f31a1f..f1dac5d437261 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc @@ -53,6 +53,7 @@ const int kSystemColors[] = { COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT, COLOR_HOTLIGHT, + COLOR_MENU, COLOR_MENUHIGHLIGHT, COLOR_SCROLLBAR, COLOR_WINDOW, @@ -530,6 +531,10 @@ SkColor NativeThemeWin::GetSystemColor(ColorId color_id) const { case kColorId_ButtonHoverColor: return kButtonHoverColor; + // Menu + case kColorId_MenuBackgroundColor: + return system_colors_[COLOR_MENU]; + // Label case kColorId_LabelEnabledColor: return system_colors_[COLOR_BTNTEXT]; diff --git a/ui/shell_dialogs/select_file_dialog_mac.mm b/ui/shell_dialogs/select_file_dialog_mac.mm index d944e479b1570..3f05130fe91ec 100644 --- a/ui/shell_dialogs/select_file_dialog_mac.mm +++ b/ui/shell_dialogs/select_file_dialog_mac.mm @@ -219,7 +219,7 @@ - (void)popupAction:(id)sender; [open_dialog setCanChooseFiles:NO]; [open_dialog setCanChooseDirectories:YES]; [open_dialog setCanCreateDirectories:YES]; - NSString *prompt = (type == SELECT_UPLOAD_FOLDER) + NSString *prompt = (false && type == SELECT_UPLOAD_FOLDER) ? l10n_util::GetNSString(IDS_SELECT_UPLOAD_FOLDER_BUTTON_TITLE) : l10n_util::GetNSString(IDS_SELECT_FOLDER_BUTTON_TITLE); [open_dialog setPrompt:prompt]; diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc index 46804d2ac696b..67ca5261f1879 100644 --- a/ui/shell_dialogs/select_file_dialog_win.cc +++ b/ui/shell_dialogs/select_file_dialog_win.cc @@ -283,6 +283,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog, bool RunOpenMultiFileDialog(const std::wstring& title, const std::wstring& filter, HWND owner, + base::FilePath* path, std::vector<base::FilePath>* paths); // The callback function for when the select folder dialog is opened. @@ -390,7 +391,7 @@ void SelectFileDialogImpl::ExecuteSelectFile( } else if (params.type == SELECT_OPEN_MULTI_FILE) { std::vector<base::FilePath> paths; if (RunOpenMultiFileDialog(params.title, filter, - params.run_state.owner, &paths)) { + params.run_state.owner, &path, &paths)) { params.ui_task_runner->PostTask( FROM_HERE, base::Bind(&SelectFileDialogImpl::MultiFilesSelected, this, paths, params.params, params.run_state)); @@ -603,6 +604,7 @@ bool SelectFileDialogImpl::RunOpenMultiFileDialog( const std::wstring& title, const std::wstring& filter, HWND owner, + base::FilePath* path, std::vector<base::FilePath>* paths) { // We use OFN_NOCHANGEDIR so that the user can rename or delete the directory // without having to close Chrome first. @@ -610,6 +612,13 @@ bool SelectFileDialogImpl::RunOpenMultiFileDialog( OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT | OFN_NOCHANGEDIR); + + if (!path->empty()) { + if (IsDirectory(*path)) + ofn.SetInitialSelection(*path, base::FilePath()); + else + ofn.SetInitialSelection(path->DirName(), path->BaseName()); + } if (!filter.empty()) ofn.GetOPENFILENAME()->lpstrFilter = filter.c_str(); diff --git a/ui/strings/ui_strings.grd b/ui/strings/ui_strings.grd index f382e72d2c71f..f46c21c080f1f 100644 --- a/ui/strings/ui_strings.grd +++ b/ui/strings/ui_strings.grd @@ -490,6 +490,12 @@ need to be translated for each locale.--> <message name="IDS_APP_SEARCH_MODIFIER" desc="Search key shortcut modifier"> Search+<ph name="KEY_COMBO_NAME">$1<ex>C</ex></ph> </message> + <message name="IDS_APP_WINDOWS_MODIFIER" desc="Command key shortcut modifier"> + Win+<ph name="KEY_COMBO_NAME">$1<ex>C</ex></ph> + </message> + <message name="IDS_APP_SUPER_MODIFIER" desc="Command key shortcut modifier"> + Super+<ph name="KEY_COMBO_NAME">$1<ex>C</ex></ph> + </message> <!-- Byte size units --> <message name="IDS_APP_BYTES" desc="Units tag indicating a quantity of bytes"> diff --git a/ui/views/accessibility/native_view_accessibility_auralinux.cc b/ui/views/accessibility/native_view_accessibility_auralinux.cc index 3ed2c2d831068..6645d60bc3274 100644 --- a/ui/views/accessibility/native_view_accessibility_auralinux.cc +++ b/ui/views/accessibility/native_view_accessibility_auralinux.cc @@ -4,6 +4,8 @@ #include "ui/views/accessibility/native_view_accessibility_auralinux.h" +#include "content/public/browser/browser_thread.h" + #include <algorithm> #include <vector> @@ -134,7 +136,7 @@ class AuraLinuxApplication // This should be on the a blocking pool thread so that we can open // libatk-bridge.so without blocking this thread. scoped_refptr<base::TaskRunner> init_task_runner = - ViewsDelegate::GetInstance()->GetBlockingPoolTaskRunner(); + ViewsDelegate::GetInstance()->GetBlockingPoolTaskRunner(true); if (init_task_runner) ui::AXPlatformNodeAuraLinux::StaticInitialize(init_task_runner); } diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc index 03738f883802b..40fd22ec506b3 100644 --- a/ui/views/controls/button/label_button.cc +++ b/ui/views/controls/button/label_button.cc @@ -509,6 +509,9 @@ void LabelButton::ResetColorsFromNativeTheme() { } else { if (style() == STYLE_BUTTON) PlatformStyle::ApplyLabelButtonTextStyle(label_, &colors); + // Set auto color readability to false in case of switching theme from + // inverted color scheme. + label_->SetAutoColorReadabilityEnabled(false); label_->set_background(nullptr); label_->SetAutoColorReadabilityEnabled(false); } diff --git a/ui/views/controls/menu/native_menu_win.cc b/ui/views/controls/menu/native_menu_win.cc index 0c81dd6978141..2fe9fb6ec011e 100644 --- a/ui/views/controls/menu/native_menu_win.cc +++ b/ui/views/controls/menu/native_menu_win.cc @@ -51,7 +51,9 @@ NativeMenuWin::NativeMenuWin(ui::MenuModel* model, HWND system_menu_for) system_menu_for_(system_menu_for), first_item_index_(0), parent_(nullptr), - destroyed_flag_(nullptr) {} + destroyed_flag_(nullptr), + is_popup_menu_(true){ +} NativeMenuWin::~NativeMenuWin() { if (destroyed_flag_) @@ -218,14 +220,18 @@ void NativeMenuWin::ResetNativeMenu() { } else { if (menu_) DestroyMenu(menu_); - menu_ = CreatePopupMenu(); + if (is_popup_menu_) + menu_ = CreatePopupMenu(); + else + menu_ = CreateMenu(); // Rather than relying on the return value of TrackPopupMenuEx, which is // always a command identifier, instead we tell the menu to notify us via // our host window and the WM_MENUCOMMAND message. MENUINFO mi = {0}; mi.cbSize = sizeof(mi); mi.fMask = MIM_STYLE | MIM_MENUDATA; - mi.dwStyle = MNS_NOTIFYBYPOS; + if (is_popup_menu_) + mi.dwStyle = MNS_NOTIFYBYPOS; mi.dwMenuData = reinterpret_cast<ULONG_PTR>(this); SetMenuInfo(menu_, &mi); } diff --git a/ui/views/controls/menu/native_menu_win.h b/ui/views/controls/menu/native_menu_win.h index 03f00a84ead51..158ee3b23e122 100644 --- a/ui/views/controls/menu/native_menu_win.h +++ b/ui/views/controls/menu/native_menu_win.h @@ -33,6 +33,9 @@ class VIEWS_EXPORT NativeMenuWin { void Rebuild(MenuInsertionDelegateWin* delegate); void UpdateStates(); + void set_is_popup_menu(bool flag) { is_popup_menu_ = flag; } + HMENU menu() const { return menu_; } + private: // IMPORTANT: Note about indices. // Functions in this class deal in two index spaces: @@ -100,6 +103,9 @@ class VIEWS_EXPORT NativeMenuWin { // If we're a submenu, this is our parent. NativeMenuWin* parent_; + // A flag to indicate whether to create a menubar or popupmenu. + bool is_popup_menu_; + // If non-null the destructor sets this to true. This is set to non-null while // the menu is showing. It is used to detect if the menu was deleted while // running. diff --git a/ui/views/views_delegate.cc b/ui/views/views_delegate.cc index 79c8d9d51c28a..ed15d3b99a626 100644 --- a/ui/views/views_delegate.cc +++ b/ui/views/views_delegate.cc @@ -118,7 +118,7 @@ int ViewsDelegate::GetAppbarAutohideEdges(HMONITOR monitor, } #endif -scoped_refptr<base::TaskRunner> ViewsDelegate::GetBlockingPoolTaskRunner() { +scoped_refptr<base::TaskRunner> ViewsDelegate::GetBlockingPoolTaskRunner(bool continue_on_shutdown) { return nullptr; } diff --git a/ui/views/views_delegate.h b/ui/views/views_delegate.h index 7d61c8c573051..00304422cc27b 100644 --- a/ui/views/views_delegate.h +++ b/ui/views/views_delegate.h @@ -191,7 +191,7 @@ class VIEWS_EXPORT ViewsDelegate { #endif // Returns a blocking pool task runner given a TaskRunnerType. - virtual scoped_refptr<base::TaskRunner> GetBlockingPoolTaskRunner(); + virtual scoped_refptr<base::TaskRunner> GetBlockingPoolTaskRunner(bool continue_on_shutdown = false); // Returns the insets that should be applied around a DialogClientView. virtual gfx::Insets GetDialogButtonInsets(); diff --git a/ui/views/widget/desktop_aura/desktop_screen_x11.cc b/ui/views/widget/desktop_aura/desktop_screen_x11.cc index f9d4afd01017a..31954c1758c05 100644 --- a/ui/views/widget/desktop_aura/desktop_screen_x11.cc +++ b/ui/views/widget/desktop_aura/desktop_screen_x11.cc @@ -75,7 +75,7 @@ std::vector<display::Display> GetFallbackDisplayList() { if (!display::Display::HasForceDeviceScaleFactor() && !display::IsDisplaySizeBlackListed(physical_size)) { const float device_scale_factor = GetDeviceScaleFactor(); - DCHECK_LE(1.0f, device_scale_factor); + //DCHECK_LE(1.0f, device_scale_factor); gfx_display.SetScaleAndBounds(device_scale_factor, bounds_in_pixels); } diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc index 0dea5ca551177..18216270b7113 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc @@ -710,10 +710,19 @@ bool DesktopWindowTreeHostWin::ShouldHandleSystemCommands() const { return GetWidget()->widget_delegate()->ShouldHandleSystemCommands(); } +bool DesktopWindowTreeHostWin::ShouldHandleOnSize() const { + return GetWidget()->widget_delegate()->ShouldHandleOnSize(); +} + void DesktopWindowTreeHostWin::HandleAppDeactivated() { native_widget_delegate_->SetAlwaysRenderAsActive(false); } +bool DesktopWindowTreeHostWin::HandleSize(UINT param, const gfx::Size& new_size) { + return GetWidget()->widget_delegate() && + GetWidget()->widget_delegate()->HandleSize(param, new_size); +} + void DesktopWindowTreeHostWin::HandleActivationChanged(bool active) { // This can be invoked from HWNDMessageHandler::Init(), at which point we're // not in a good state and need to ignore it. @@ -730,7 +739,7 @@ bool DesktopWindowTreeHostWin::HandleAppCommand(short command) { // We treat APPCOMMAND ids as an extension of our command namespace, and just // let the delegate figure out what to do... return GetWidget()->widget_delegate() && - GetWidget()->widget_delegate()->ExecuteWindowsCommand(command); + GetWidget()->widget_delegate()->ExecuteAppCommand(command); } void DesktopWindowTreeHostWin::HandleCancelMode() { @@ -883,6 +892,7 @@ void DesktopWindowTreeHostWin::HandleInputLanguageChange( void DesktopWindowTreeHostWin::HandlePaintAccelerated( const gfx::Rect& invalid_rect) { + if (content::g_force_cpu_draw) return; if (compositor()) compositor()->ScheduleRedrawRect(invalid_rect); } diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h index c1ee99218e4a8..ad94a0136c695 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h @@ -125,6 +125,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin void OnWindowHidingAnimationCompleted() override; // Overridden from HWNDMessageHandlerDelegate: + bool ShouldHandleOnSize() const override; + bool HandleSize(UINT param, const gfx::Size& new_size) override; bool HasNonClientView() const override; FrameMode GetFrameMode() const override; bool HasFrame() const override; diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc index 8550a320597fc..aa6f1a00cecfa 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc @@ -67,6 +67,10 @@ DECLARE_WINDOW_PROPERTY_TYPE(views::DesktopWindowTreeHostX11*); +namespace content { + extern bool g_support_transparency; +} + namespace views { DesktopWindowTreeHostX11* DesktopWindowTreeHostX11::g_current_capture = diff --git a/ui/views/widget/native_widget_delegate.h b/ui/views/widget/native_widget_delegate.h index 963f48d294b22..a0fbcb973200f 100644 --- a/ui/views/widget/native_widget_delegate.h +++ b/ui/views/widget/native_widget_delegate.h @@ -55,6 +55,7 @@ class VIEWS_EXPORT NativeWidgetDelegate { // problems. virtual void SetAlwaysRenderAsActive(bool always_render_as_active) = 0; virtual bool IsAlwaysRenderAsActive() const = 0; + virtual bool NWCanClose(bool user_force = false) const = 0; // Called when the activation state of a window has changed. virtual void OnNativeWidgetActivationChanged(bool active) = 0; diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc index 4c210640afa34..33a33c31f505b 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc @@ -556,7 +556,7 @@ void Widget::SetShape(std::unique_ptr<SkRegion> shape) { native_widget_->SetShape(std::move(shape)); } -void Widget::Close() { +void Widget::Close(bool force) { if (widget_closed_) { // It appears we can hit this code path if you close a modal dialog then // close the last browser before the destructor is hit, which triggers @@ -567,6 +567,8 @@ void Widget::Close() { bool can_close = true; if (non_client_view_) can_close = non_client_view_->CanClose(); + if (can_close && !force) + can_close = NWCanClose(); if (can_close) { SaveWindowPlacement(); @@ -1021,6 +1023,10 @@ bool Widget::IsAlwaysRenderAsActive() const { return always_render_as_active_; } +bool Widget::NWCanClose(bool user_force) const { + return widget_delegate_->NWCanClose(user_force); +} + void Widget::OnNativeWidgetActivationChanged(bool active) { // On windows we may end up here before we've completed initialization (from // an WM_NCACTIVATE). If that happens the WidgetDelegate likely doesn't know diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h index 0dd67152e43d7..7d965d0366acb 100644 --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h @@ -478,7 +478,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, void SetShape(std::unique_ptr<SkRegion> shape); // Hides the widget then closes it after a return to the message loop. - virtual void Close(); + virtual void Close(bool force = false); // TODO(beng): Move off public API. // Closes the widget immediately. Compare to |Close|. This will destroy the @@ -787,6 +787,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, bool CanActivate() const override; bool IsAlwaysRenderAsActive() const override; void SetAlwaysRenderAsActive(bool always_render_as_active) override; + bool NWCanClose(bool user_force = false) const override; void OnNativeWidgetActivationChanged(bool active) override; void OnNativeFocus() override; void OnNativeBlur() override; diff --git a/ui/views/widget/widget_delegate.cc b/ui/views/widget/widget_delegate.cc index 917124976c4a1..8d5b82168c32e 100644 --- a/ui/views/widget/widget_delegate.cc +++ b/ui/views/widget/widget_delegate.cc @@ -58,6 +58,10 @@ bool WidgetDelegate::CanActivate() const { return can_activate_; } +bool WidgetDelegate::NWCanClose(bool user_force) const { + return true; +} + ui::ModalType WidgetDelegate::GetModalType() const { return ui::MODAL_TYPE_NONE; } @@ -90,6 +94,10 @@ bool WidgetDelegate::ShouldHandleSystemCommands() const { return widget->non_client_view() != NULL; } +bool WidgetDelegate::ShouldHandleOnSize() const { + return false; +} + gfx::ImageSkia WidgetDelegate::GetWindowAppIcon() { // Use the window icon as app icon by default. return GetWindowIcon(); @@ -108,6 +116,14 @@ bool WidgetDelegate::ExecuteWindowsCommand(int command_id) { return false; } +bool WidgetDelegate::ExecuteAppCommand(int command_id) { + return ExecuteWindowsCommand(command_id); +} + +bool WidgetDelegate::HandleSize(unsigned int param, const gfx::Size& size) { + return false; +} + std::string WidgetDelegate::GetWindowName() const { return std::string(); } diff --git a/ui/views/widget/widget_delegate.h b/ui/views/widget/widget_delegate.h index 2ce16e971af52..eef8b62494272 100644 --- a/ui/views/widget/widget_delegate.h +++ b/ui/views/widget/widget_delegate.h @@ -64,6 +64,7 @@ class VIEWS_EXPORT WidgetDelegate { // Returns true if the window can be activated. virtual bool CanActivate() const; + virtual bool NWCanClose(bool user_force = false) const; // Returns the modal type that applies to the widget. Default is // ui::MODAL_TYPE_NONE (not modal). @@ -87,6 +88,8 @@ class VIEWS_EXPORT WidgetDelegate { // close, minimize, maximize. virtual bool ShouldHandleSystemCommands() const; + virtual bool ShouldHandleOnSize() const; + // Returns the app icon for the window. On Windows, this is the ICON_BIG used // in Alt-Tab list and Win7's taskbar. virtual gfx::ImageSkia GetWindowAppIcon(); @@ -101,6 +104,10 @@ class VIEWS_EXPORT WidgetDelegate { // was handled, false if it was not. virtual bool ExecuteWindowsCommand(int command_id); + virtual bool ExecuteAppCommand(int command_id); + + virtual bool HandleSize(unsigned int param, const gfx::Size& size); + // Returns the window's name identifier. Used to identify this window for // state restoration. virtual std::string GetWindowName() const; diff --git a/ui/views/widget/widget_hwnd_utils.cc b/ui/views/widget/widget_hwnd_utils.cc index b843416dac5fe..affe9f2dd8eb6 100644 --- a/ui/views/widget/widget_hwnd_utils.cc +++ b/ui/views/widget/widget_hwnd_utils.cc @@ -10,6 +10,7 @@ #include "build/build_config.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/ui_base_switches.h" +#include "ui/display/display.h" #include "ui/views/widget/widget_delegate.h" #include "ui/views/win/hwnd_message_handler.h" @@ -112,8 +113,15 @@ void CalculateWindowStylesFromInitParams( native_widget_delegate->IsDialogBox() ? WS_EX_DLGMODALFRAME : 0; // See layered window comment above. - if (*ex_style & WS_EX_COMPOSITED) - *style &= ~(WS_THICKFRAME | WS_CAPTION); + if (content::g_support_transparency) { + if (*ex_style & WS_EX_COMPOSITED && params.remove_standard_frame) + *style &= ~(WS_CAPTION); + } + else { + if (*ex_style & WS_EX_COMPOSITED) + *style &= ~(WS_THICKFRAME | WS_CAPTION); + } + break; } case Widget::InitParams::TYPE_CONTROL: diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc index a15ec1af62dd3..a32318f78ba45 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -319,6 +319,7 @@ base::LazyInstance<HWNDMessageHandler::FullscreenWindowMonitorMap> // HWNDMessageHandler, public: long HWNDMessageHandler::last_touch_message_time_ = 0; +#define TRANSPARENCY(original, addition) content::g_support_transparency ? original addition : original HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) : msg_handled_(FALSE), @@ -810,13 +811,16 @@ void HWNDMessageHandler::SetWindowIcons(const gfx::ImageSkia& window_icon, const gfx::ImageSkia& app_icon) { if (!window_icon.isNull()) { base::win::ScopedHICON previous_icon = std::move(window_icon_); - window_icon_ = IconUtil::CreateHICONFromSkBitmap(*window_icon.bitmap()); + window_icon_ = + IconUtil::CreateHICONFromSkBitmapSizedTo(*window_icon.bitmap(), + GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)); SendMessage(hwnd(), WM_SETICON, ICON_SMALL, reinterpret_cast<LPARAM>(window_icon_.get())); } if (!app_icon.isNull()) { base::win::ScopedHICON previous_icon = std::move(app_icon_); - app_icon_ = IconUtil::CreateHICONFromSkBitmap(*app_icon.bitmap()); + app_icon_ = IconUtil::CreateHICONFromSkBitmapSizedTo(*app_icon.bitmap(), + GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)); SendMessage(hwnd(), WM_SETICON, ICON_BIG, reinterpret_cast<LPARAM>(app_icon_.get())); } @@ -857,7 +861,8 @@ void HWNDMessageHandler::SizeConstraintsChanged() { if (!delegate_->CanMaximize()) style &= ~WS_MAXIMIZEBOX; } else { - style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX); + if (!content::g_support_transparency) + style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX); } if (delegate_->CanMinimize()) { style |= WS_MINIMIZEBOX; @@ -1170,7 +1175,7 @@ void HWNDMessageHandler::ResetWindowRegion(bool force, bool redraw) { if ((window_ex_style() & WS_EX_COMPOSITED) == 0 && !custom_window_region_.is_valid() && (IsFrameSystemDrawn() || !delegate_->HasNonClientView())) { - if (force) + if (force || content::g_force_cpu_draw) SetWindowRgn(hwnd(), NULL, redraw); return; } @@ -1186,6 +1191,10 @@ void HWNDMessageHandler::ResetWindowRegion(bool force, bool redraw) { if (custom_window_region_.is_valid()) { new_region.reset(CreateRectRgn(0, 0, 0, 0)); CombineRgn(new_region.get(), custom_window_region_.get(), NULL, RGN_COPY); + } else if (content::g_support_transparency && window_ex_style() & WS_EX_COMPOSITED) { + RECT work_rect = window_rect; + OffsetRect(&work_rect, -window_rect.left, -window_rect.top); + new_region.reset(CreateRectRgnIndirect(&work_rect)); } else if (IsMaximized()) { HMONITOR monitor = MonitorFromWindow(hwnd(), MONITOR_DEFAULTTONEAREST); MONITORINFO mi; @@ -1343,7 +1352,7 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) { MAKELPARAM(UIS_CLEAR, UISF_HIDEFOCUS), 0); - if (!delegate_->HasFrame()) { + if (TRANSPARENCY(!delegate_->HasFrame(), && !(window_ex_style() & WS_EX_COMPOSITED))) { SetWindowLong(hwnd(), GWL_STYLE, GetWindowLong(hwnd(), GWL_STYLE) & ~WS_CAPTION); SendFrameChanged(); @@ -1471,15 +1480,17 @@ void HWNDMessageHandler::OnGetMinMaxInfo(MINMAXINFO* minmax_info) { if (delegate_->WidgetSizeIsClientSize()) { RECT client_rect, window_rect; GetClientRect(hwnd(), &client_rect); - GetWindowRect(hwnd(), &window_rect); - CR_DEFLATE_RECT(&window_rect, &client_rect); - min_window_size.Enlarge(window_rect.right - window_rect.left, - window_rect.bottom - window_rect.top); - // Either axis may be zero, so enlarge them independently. - if (max_window_size.width()) - max_window_size.Enlarge(window_rect.right - window_rect.left, 0); - if (max_window_size.height()) - max_window_size.Enlarge(0, window_rect.bottom - window_rect.top); + if (client_rect.right > client_rect.left) { + GetWindowRect(hwnd(), &window_rect); + CR_DEFLATE_RECT(&window_rect, &client_rect); + min_window_size.Enlarge(window_rect.right - window_rect.left, + window_rect.bottom - window_rect.top); + // Either axis may be zero, so enlarge them independently. + if (max_window_size.width()) + max_window_size.Enlarge(window_rect.right - window_rect.left, 0); + if (max_window_size.height()) + max_window_size.Enlarge(0, window_rect.bottom - window_rect.top); + } } minmax_info->ptMinTrackSize.x = min_window_size.width(); minmax_info->ptMinTrackSize.y = min_window_size.height(); @@ -1717,10 +1728,11 @@ LRESULT HWNDMessageHandler::OnNCCalcSize(BOOL mode, LPARAM l_param) { return 0; } } - + const LONG noTitleBar = (window_ex_style() & WS_EX_COMPOSITED) && !delegate_->HasFrame(); gfx::Insets insets; bool got_insets = GetClientAreaInsets(&insets); - if (!got_insets && !IsFullscreen() && !(mode && !delegate_->HasFrame())) { + if (TRANSPARENCY(!got_insets && !IsFullscreen() && + !(mode && !delegate_->HasFrame()), && !noTitleBar)) { SetMsgHandled(FALSE); return 0; } @@ -2083,6 +2095,17 @@ void HWNDMessageHandler::OnSize(UINT param, const gfx::Size& size) { // ResetWindowRegion is going to trigger WM_NCPAINT. By doing it after we've // invoked OnSize we ensure the RootView has been laid out. ResetWindowRegion(false, true); + if (delegate_->ShouldHandleOnSize()) + delegate_->HandleSize(param, size); +} + +void HWNDMessageHandler::OnStyleChanging(int nStyleType, LPSTYLESTRUCT lpStyleStruct) { + if (!content::g_support_transparency) + return; + if (nStyleType == GWL_EXSTYLE) + set_window_ex_style(lpStyleStruct->styleNew); + else if (nStyleType == GWL_STYLE) + set_window_style(lpStyleStruct->styleNew); } void HWNDMessageHandler::OnSysCommand(UINT notification_code, @@ -2588,7 +2611,7 @@ void HWNDMessageHandler::PerformDwmTransition() { // The non-client view needs to update too. delegate_->HandleFrameChanged(); - if (IsVisible() && IsFrameSystemDrawn()) { + if (IsVisible() && IsFrameSystemDrawn() && !content::g_force_cpu_draw) { // For some reason, we need to hide the window after we change from a custom // frame to a native frame. If we don't, the client area will be filled // with black. This seems to be related to an interaction between DWM and diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h index 622696f2f30f5..bc1271406b374 100644 --- a/ui/views/win/hwnd_message_handler.h +++ b/ui/views/win/hwnd_message_handler.h @@ -420,6 +420,7 @@ class VIEWS_EXPORT HWNDMessageHandler : CR_MSG_WM_SETTEXT(OnSetText) CR_MSG_WM_SETTINGCHANGE(OnSettingChange) CR_MSG_WM_SIZE(OnSize) + CR_MSG_WM_STYLECHANGING(OnStyleChanging) CR_MSG_WM_SYSCOMMAND(OnSysCommand) CR_MSG_WM_THEMECHANGED(OnThemeChanged) CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged) @@ -476,6 +477,7 @@ class VIEWS_EXPORT HWNDMessageHandler : LRESULT OnSetText(const wchar_t* text); void OnSettingChange(UINT flags, const wchar_t* section); void OnSize(UINT param, const gfx::Size& size); + void OnStyleChanging(int nStyleType, LPSTYLESTRUCT lpStyleStruct); void OnSysCommand(UINT notification_code, const gfx::Point& point); void OnThemeChanged(); LRESULT OnTouchEvent(UINT message, WPARAM w_param, LPARAM l_param); diff --git a/ui/views/win/hwnd_message_handler_delegate.h b/ui/views/win/hwnd_message_handler_delegate.h index f5328c49e708e..553b593186bb5 100644 --- a/ui/views/win/hwnd_message_handler_delegate.h +++ b/ui/views/win/hwnd_message_handler_delegate.h @@ -100,6 +100,10 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate { // implementing them on non-aura windows. http://crbug.com/189112. virtual bool ShouldHandleSystemCommands() const = 0; + // on windows, maximizing sometime is sent through WM_SIZE, not + // WM_SYSCOMMAND, see node-webkit#753 + virtual bool ShouldHandleOnSize() const = 0; + // TODO(beng): Investigate migrating these methods to On* prefixes once // HWNDMessageHandler is the WindowImpl. @@ -127,6 +131,8 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate { // true if the command was handled. virtual bool HandleCommand(int command) = 0; + virtual bool HandleSize(UINT param, const gfx::Size& size) = 0; + // Called when an accelerator is invoked. virtual void HandleAccelerator(const ui::Accelerator& accelerator) = 0; diff --git a/ui/views/window/custom_frame_view.cc b/ui/views/window/custom_frame_view.cc index fe392518a1e8f..fb68306c867d7 100644 --- a/ui/views/window/custom_frame_view.cc +++ b/ui/views/window/custom_frame_view.cc @@ -6,6 +6,7 @@ #include <algorithm> #include <vector> +#include "ui/gfx/image/image_skia_operations.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" @@ -113,7 +114,10 @@ void CustomFrameView::Init(Widget* frame) { IDR_RESTORE, IDR_RESTORE_H, IDR_RESTORE_P); if (frame_->widget_delegate()->ShouldShowWindowIcon()) { + gfx::ImageSkia icon; window_icon_ = new ImageButton(this); + icon = frame_->widget_delegate()->GetWindowAppIcon(); + window_icon_->SetImage(CustomButton::STATE_NORMAL, &icon); AddChildView(window_icon_); } } @@ -193,8 +197,16 @@ void CustomFrameView::ResetWindowControls() { } void CustomFrameView::UpdateWindowIcon() { - if (window_icon_) + if (window_icon_) { + gfx::ImageSkia icon; + icon = frame_->widget_delegate()->GetWindowAppIcon(); + int size = IconSize(); + gfx::ImageSkia icon2 = gfx::ImageSkiaOperations::CreateResizedImage(icon, + skia::ImageOperations::RESIZE_BEST, + gfx::Size(size, size)); + window_icon_->SetImage(CustomButton::STATE_NORMAL, &icon2); window_icon_->SchedulePaint(); + } } void CustomFrameView::UpdateWindowTitle() { From 74ffa3c8eec947a94c204495c1595c103653df18 Mon Sep 17 00:00:00 2001 From: Jefry <jefry.ted@vcube.co.jp> Date: Fri, 9 Dec 2016 18:36:32 +0700 Subject: [PATCH 2/2] [AutoUpdater][OSX] add squirrel auto updater frameworks --- DEPS | 8 ++++++++ build/external_binaries.py | 15 +++++++++++++++ build/external_binaries.zip | Bin 0 -> 714744 bytes chrome/BUILD.gn | 5 +++++ extensions/renderer/dispatcher.cc | 1 + .../extensions_renderer_resources.grd | 1 + 6 files changed, 30 insertions(+) create mode 100644 build/external_binaries.py create mode 100644 build/external_binaries.zip diff --git a/DEPS b/DEPS index c85691c91121f..3608a75c23bba 100644 --- a/DEPS +++ b/DEPS @@ -1050,6 +1050,14 @@ hooks = [ '.', 'name': 'clang_format_merge_driver' + }, + { + 'action': [ + 'python', + 'src/build/external_binaries.py', + ], + 'pattern': '.', + 'name': 'external_binaries', } ] diff --git a/build/external_binaries.py b/build/external_binaries.py new file mode 100644 index 0000000000000..b6f9d93aa4164 --- /dev/null +++ b/build/external_binaries.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +import subprocess +import os +import sys +import shutil + +if sys.platform.startswith('darwin'): + try: + shutil.rmtree('src/content/nw/external_binaries') + except OSError: + pass + +if sys.platform.startswith('darwin'): + subprocess.check_output(['unzip', 'src/build/external_binaries.zip', '-d', 'src/content/nw/external_binaries'], stderr=subprocess.STDOUT, env=os.environ) diff --git a/build/external_binaries.zip b/build/external_binaries.zip new file mode 100644 index 0000000000000000000000000000000000000000..5e3d018483fa09febfd3e5e1513e909881fc60f5 GIT binary patch literal 714744 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%0AXhmY-V{Uc*j*G)j{Fvc8^Q8U!bted5nlqtGaU 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�k%3<_beC`WqZrdT57Z|*u+WOruBRhx1d<}RoK&FIPwT#8Y) zEQtx!(3B=3#F~7g3AXTD6xPn|0MZmY0N;NxSV=?*du&WCObvJTNh5VgR1SLhL^f4g zIjspdY<A0wnjmvUj#?lq=-q@jwyM(D7u)=WIUiCiqCFF+&CePOlcmN{T9r+js<Jt0 zP*gT6GF6oghJM)EL}{bkSiR0>auiN|`EFw_IxRx)({y<Yd+`FRG~PaN>;BzA^l6qY zo0@WvH|29`3ai`LlA0n0HBD}$HYHNil&1ho^7Ed|<C&e4D>Nq3uX|%1f5jX3hSE4% zg0a@wU=<owiB0}E_EfODF;^nFtmDuo)MCld>*O7*=E%Y`!W+Wcb2{mT$0JAkql258 z42|ZdCM=5uiaU*sephWNK5~?KMJC%eqJdCvi8y&!B6>YvoWxBE&rr}|Je$e|nT5k? z*K*$nUsy70z9Rn;tOl?;J)GY*bPBVgVQN4$7H1P>^>D?weQ&UW;pf3BhUY^uwl7Ro z@8>xYl8|MKb36Rl`z3J%3f}`?Ihh-^p1?q%@p+Dqz>bcUj&NQV5hAnX&w^oe?htK0 zeJtli@4AnWOJLpMLMrPiYrY*W4a_d=PmHpA80Sz4GV)TaS&${lj*#J+iV%NL5LLEI zLj$Ru?wrDU#JF#EqOAA#VZ#0i^rTK6*fIl+jBew-48#SK$z}Dj_BBD+LkLR@G1z|? zzdvGJU4Kw5v_JJ6#C(o6(D`-mq3HJTP`xgy5vp(QkuRikublrLP2Xlgd{1D5{3-*s z!HaQ+Q7?x{j=Dj@aQu_Hfe939`#u9@+Lc-6WzV1=z5JfW9gELA46??`rVZ7LaW@8G z<*;*PG}57FtqwG%!h3jn*OGANj|A$)nc+4MVkHafvblK*BKFE_8{zT=9kv4x_-M9# z@5)`@Qzv8iP*U}LPQ4^_A_up>QEC0FJ;IrVKH;!RlEE)%s3NSwHIYi%Ve(ohIh8F1 zMGD*;E;j)W*`1^DXzaBQ#R*%6;33Q7|25J`6gKT9i2|DxtA=R8<0qj8XvPqfVa6bz zYwo&FM^Lyc@sviIV|LnZy=taF>!=%*?wEi$Y%*FoW;-_$0)@A+na07#6b`!gZa8t9 za_J_Uvyn+9Za{r9*y9G&t7I3LOy*@qZx}IJ^G8M*$m?itL!4Q7r`wHisZWXt?)t?^ zZ?JB6(ZTUgLzLxh1St_)Mq$oyBWQotxag)5$#3dl*!Ma~<1D&P&QJ>@poR>_jlww@ z_r;F}bLVpCV*iFp+_EtmhxJby3Tf1iNx~gMTom}`U`^Ozwg%o9tmkg)K7+YstZ;uJ zzx7)$GJq{{LOw&A=mUdz2vE!GV{nQr8N|ss9FuMD3eu<JXakpqvP};MGGP!XV0jGl zCTWR@i6Fk;N~+LT#u_wWhQG@XH1?cNrV(({<@fR0Or0qc8!o@+<H<-vxqqzjyZmrw z&lU=rlp+H2Vuq^kDntogD+vJwqEguMOf=PQ3j=X_AU8f%(3P#mIkM!j?Ypo%*a^gG z+qA8L=>Od)u{V<#nDu|42&Jq!=iLEA2WrEeHW`na&+viD@zPfT=^lp*DEop!$~%wP zx4G%x1bg!wM=;A3h8(9c<1do;z<yIafDXHw4b&aw$pC20J=ndf>D1Sk2D~VMDvBb( z12kwXko_40IBOA*gwW4(XFwuO#NyclTb=}C1hi&&T_0GVtPgeZN>g7enpWw&bvot5 zW>e~`0m3H%TG#g-+SosSN8q9Scs{jqHMTgn{|~EvWd>ImAZGBVBXI`j_t(zgNA*QD z2_s6*;Jy9-#|-W^N;?tO*H>q7ExM5&X7I8}+Dy~xD>Jy|xDqpXNPTq%4<`VgGq_8A zWd?tYAyP}t;Me;9uNnOMBtC<yc(mzJpy+?~5hZ8v-XF`H!GHW%T2l9n0eBdNdbF4y z72)eI3h)L|9JwcjeZ~(zqJ2gwmQTSm#Y(djjNr{hh+%;$o;N?kxF#%*b)q&;fKu!6 zF``y@?;9vc1-a^TK}aC-*epNugRm48Y%jky-jW}~5qC01Tg&cxqLwYg)LKe-*t!EI z{ZJZN<Zd$L2N6bmmqR$+xy|i<ptbvTJwau<&8?wr%`Z8c0w4T?*5#LF{Genz=xRtT zX#9b+dL`O)v!7z;b#JnVotI?1R`SIKj~C*qy94mn>wIvLocA`X-{7}uGT4U+1Vk3> zd0VG(YG%b;eqYhGr}Ahhfi$A<^j5>gccrjyXg$)UpNJUWeIgPAokze<<lm1l)cS1| zLpA#WhVD69Lm=)6U>7+IPuKf>l_g<$G(<2SSco0sm5~O&B3EaS3Vz1vW^CLSsejH* zXDHmXaf^;GUYGI8CgKnn|Hpb^oxA|pqv5QbQS7NOltH=vJ?2QvvdtqXzj7$|2uc!r z%poYr3`z=v(iNe!V^G?_lerr<gveHFUm?uzs(4nX*9CyqifCRMl`31I6R6d5S&j5E zQ4VA;3)d*e4NBv04?)zN{+=^r`GZx4Y$IAk8rPzIsAcc>+$z$VI{^paZ-=;e2Wyvn z<4~n${tM)kQmd+Lx3B79p{{jlS6t)=Qv-U627IMyKznLHD}?K3<5`UF;&0zbs>jEk z<?TbK4xdG(YxAIw8Cjf!YwlSe)y0dGzNe$HYZ-%x^xX|A$DMs>isikfp;gm1>czd% zoBHrA&Nh!7h>QAYq)Sty5l--K+`I-1LPQSiqa5!ET9B@dg8cQkRJt=Y>4QO9Q^hWC z3EHq8Hq|&JTOoh@K#aW9k5q?fxW(wA<~r$Ty@^V^s(3_On^Pr!4o6HM=q*%-SKkz( zkb1pof|d$~HBOLdE@R6LT!#iXJ4u#bdy8EZX;27lC4xJL4Mx>&vU0=Y_&0fn{J!k1 zQmUG38{Hzdq=r&0*k7k)$btxIq<<KNxL7+B?V5|fQv{{2zbSUdZUeaJ;|xjP+~%t+ zTNq8r`}i?mEUq%*rDS~fAFk$`{enyknM)>m?5hUrPZP<Y_7~3%v7MkCgQAP7#O6n_ zL8p^jyon2a`A+tH+n+RilI5epe6uf-2m6B+LsTO+sAtC*G^Q^Yr>PE<IKrl6UO636 zh<oJ+wGrg!0CJ%KX?<-B2U#rFR6#mRfGn1S6_5*5kV^>Us{pd202vV4pM$(2@2jnV zY+VB675SXM0J%~H*@Zyn>|h`t))t#RbShefb!~LX9?w)@4OU?p2-Z&kYqbUz>x~NQ zx6viL`k?~LqQcrz3r`CBH(<(N#h9%_hX~z>5O73*3Od#nldfrhG&zXy04(3GEuh{p zDo~dK)L83h--y9~&c4Z3e|*~n-kRe7^}=5K@e=#;mOnn<fC^975}S&nncZc%z5}7k zjq$b71WLpBG!#SS{fOIBPhXV3=J1UF`XQ{p0G3OI^(}mRy|&nQw)}u)6R2$ZEF4<- zLtotKDvlx@Dt%lt3m2PQpFTbqi60&GaW4N@34dCvZfCW=Moo=Fjifak8sbf_M$@Z~ z@am2qz8XZY+QO@IeoAv&u$q3Rnm(kOB6u5@RKjMAr;lUlV>A9Sz7jU0GC)gIp^ak& zx(~$yzfu7cFYpOLOCVGpp^r~~rjH-c#|Bi=r!vX8`NuctWAO<5_z8W?p^wVJ{@^9D z7AoPE7He%ilWhl4udueZV?2m_xh5i`K6^XW_%TcCdPTKiTk;26@qHas`WZuUuQt}8 zUl#gire7iS&BT7~HCAD%7n?i<KPj<Y1TEJ<C%gu%+etCibO>tnXMZUONz2hFd=vX+ znZcL4GlD%TJ5=ghCDggx!H5(aT$$MdETmk6{Xw=1ni5;G4Mh5d_?!^i^7SZtxNEo% z?Ak8N&#A1>7yVF86hN=0z^lXfDyo)UYG2)MuqD_VKzL<aa$zOLh^Db$)d85)-rMe# z8R9++mZ#ClcDUbsJ2$wnrLfjGI)*y)!<_{XvA+OgK%BpO5~itA)z~L5Icmf{(MS19 z-F&2>RqS4jc8^N3dp%*_Qwl3e-I~#Js??2DaKxP*wZE_u0!_j+)gBw2qBG4-V}Fy_ z-*omjmHo{?1T<$Y@K5*OZ;E>l+Om(^WwFCFCL}gm_qr+m0TL+@F?LrsyA;ya?(&YY zr{{ayU7=ofATaICGfc5LI9lvzmA-8Y5iVjMl{dw&#F7vnx^196T{gfeZHfabH!S_S zKmX#77^85;?Oon)v#L@h?}=N{FQ<97Bht#A+B$k*ol-=KRMU%fAV=p2wHqRnLUzJ- zW(#(QrC;?1w!fp)su}1OTGqs2s%!&N;4d(T8+Nv^D&+`m=EES(>*(~pV{?u03U3*e zHZ0CAbx*d(W^}c;?4D?vL_zZz4kVj*nAcx+39;f%m*QdSG*36hA1ijd%W&Xi^RV48 zoQF?)c?KpvjKWcf$a17NP}h0AfMIwP1$*M6K7#SpL`)0V+6%>W6^HYW5Rz2;eSR-x z?l&5Ubxu*=>==q~qSQD0sa@ZRH}OY7)^0IS(QvBF@;y`r(dt_Ad{d2KGhk(#;y=Z` z-}rD7uG!&ey=MFbWnIRB^oxJ%OTQB7+c)&9kiPYzUx!dNXzWhE&eFFo^s57kXN+O= z>u>tjo_<;Bo0WcL(zg%jR|EPMOushKw+8g94t)!tU#sa`ZTj^ZeS4jL{Z8Lrp<i#) zH(&adOyA1WubTADi+=q<-=4a(ZFxYyw$Qg*E^S*1T(Ik1bJ4E%7W=!6?asQ$0_#(^ zTRV05U46l6;7HK~jt104cvaVN368uUT|^+(Jvh9e%{p90D&KxhWl_q$TI^w%^BLYA z40cTr_Biemt>qlh8~*kh(NV0nxv%0W%tK%W!e1hVI<pUKB0FA&^X21L#qkxDUuXz( z{sTq7eU+rgsgF=@$bP(K^QW7#tH<Sy9tiS~%21H4*styBh5oLO%g0`PG}R|=pQ9^u zrv6EL`Yl6jX8G7lk3dIQ|BOBTngN*od#25I?CCez&UdaT-Q;*Z=7PzzdEdj+_U3mT z@7kLePpD#d?{%j~-LkvW0AAEVwg=>Na(cHaA@u1YHEjiYu(0Om9G5|EHW)>9mY$rm zI^M}ylVz~X8q6gn^8da#4ds7DV$@7=y}92}_^X2SlTBv2dfMy$Zb5}!BqT$bB2!!t zmH|l%ct&(&V^R1L6uenYAlVdWKv{BofBRN}Tzj2tz->%3-RPs?&M5F}mrt;&3M+tA zPF`OP5p9Y)Bs>6N6E3TC4(5-d{Em#NY^)qRNL3f+Z{MbtI0E;Yv*RZ=1BT6R=$^{3 zZQ6VQHof#)-kn`dpTOWmuvwK&yqKR2I7{cjkl4$n5cfegYN4jh1tAar36om0lhIKD zje1jiF!m^RuMgY7qpn1FJ%jDLv&)h117iryVN*P6RzUzBShow|07xxED9c9e1Z{GC zd+<1S1?|m(ps-}nw@y8joidf)H1DAV%4Fj{5V_QV9$aLAzhUut@c-<?SStLiyQc7` zR9NoL3xE2e!h9d!-QDvNLtOq5(g!d(8-YA}Aaa@Wx(l{H%vl@cO9S}a)Uc5rblg<q z!l|^EXVG5%=X%_UPLh4B19<`C5&E@?z8#=n+c5mJ@h?)up8Eu9Hhzl6zs7l#b3NsJ z5B+Y8t0`wSY@^XaIVV%jxs>x$%J~!JTtYBkp`86GXEf!UL^(%N&KSyhhrWG6IlrS{ zYbj?W<@}y<9;R<0lrxNeouZuWDQ76<Tua~TQ_lD3m!Trjxs<aa<&@}KRmy3mU%`~q zL^+c_#+*OUx1tm}AISK&Cgps9N=9Q5<?KK?&r!|`l(Qn`%%hwR${FB<v*S<#ogJ^S zzuR8Iv%~8FogEmq5$5R>gHHaZDqH?OXeU^OR&#~*UiRjvqOKR}gZG&>r)wplJwC=* zF302_cwS$A$Uxb`@~lN~m|&MGr>Jb)=J%)IgpMpQnrL0Q%?-q>yOliyjGlCxUz-A} zf3GdR$ni=jo7_?x`5<_d#%B4r4@BJ#6}M7)o>(AjIf<L<GuYGiSLSEaRkRj5<2L6{ zHlVpx^QVp~Ah-Vk2`9IC$VXhoR5F5H35cUgL7d|Wajt+^>pwz#yA;H5Plz@F@nE<A z0r3Q#)4;Ok`l=9%5uzSs$j$FLsxxp!{X951M*lIeFT7Ut5VrL`7$PyqV+7<|=m7Hs zE#cS36L7}dSmqP(lCu1lyXkdhm@||JP6sXp*@PIdPl!h*?&{~LugU2uE?_<J8BQ9K zY=X=#p6a9*X`tWxT+Klz;8Z+2`y`Q1pYg44A%iWI9o~W8;*z=07vH3?9dq*M#0F2V zB>dOeX$MzNo#Eco7_&ZuE<%9a)|ZUjQ`mg&3IsC5gt@}TzpGx5ISg!6GTe?3E=8vl zmS^1=+SkA>!_cq>#%NHS5NvrGhPeZByOh3^Edftv2u$&Q7vb%aqaL{7(p%wDfB$gj zT5v20t8*MUHQi|M2x*{CgyaA-mOJcFj&07~!O3iw#`>^BHL5b>lR}DYI=w0GAX48h zaz<jr1L79>)KvDj3L0lf2D{YB2Se{MUNTGytqb`Q;Q<+1cz~QSVUl-UxM{~nIQ4Kp zamLqt51h`O&ZxNE70CUl9<qssKY+r#<_njwL{%5@g)hi|R^kN8Gt9CUJ=3;Ayc%5$ zsN4PuCy$!2I)}sR90J<$5i1d1VXS|I^HxL!)_)Kl?^0>ak^Zr*5fvkR!X*S3CfS0p z3h;Ocl{$Od7@sHg^oHql6?M~W=z>CkJ=Zau!P%#CKDNh>^YPI+UYEjs{85&6>|*R= zcZezUXh`#8p{90c>|PJq_Qj}mMv@lzhq(9I>ZjYhPKP|qv(-5OMw5ZT`wAIWgPeCw ze=wqHToo7>hfk<iZE1)%qhHc*`n%Jc-x+q6&7H!&C_Qkt_eZkE$wo(FqvB+vBiWJ| z8ODYMhKIppgW`nIk=UR(VRR(8A^}E+do2?C8V2g{FsFB2HV+Cww*<{|9te}V>p&LB znjCj@R8_mnycgqM^<abBqgmlA>^nSFVSk&!o0!TmcISsdp<bt*3~`1?pHSzQJ`^Zb z-en+<Gif2YY@L(W7{px=a)38|WN+W_R^EQDzU{&uae|_t@W<XLquS<;GAh4mG+%a9 zAUZmwB8ouG;j}>D<{&dzl}y}|p!2*7bI41jgKaZ{=^<NT@~(=w4-~cc_ll|)QuLue z#)mdem?)MjBfLw}`COVD=q+O0!ml^Hbvh+jDcvkD7XX1Fb@GqB;1yOO!aq#vOpoDp z{ma-dQN~6LTuWFbZ{e|@C6}*&9)jhtjV47T<_@?RW6(+Mn@OEo+3O#OO)DRp|H$rD zQm2W^-ryqH*IN-Qz75dpR}glC@}Y{z_&F+j1Z>ar2oB{A7{_WW2{hH<3G|GQ0(A6$ z0{UJVK))*ibgl}t?tcP$aYAXJl}iBqTm^c#!hZoeyCl$EC`aF{_k?@7yaIRRe}Ze{ zaNXwi6G(l{D5g0EK}5aJUhd+K#*qc%4J8yc*Q>xz<%&A%HdmVfbVZhAI}4T80bzS^ zUWoH-C#ls{hJg00DC2ssx-(gh=9$C(1vRxH#98kDx_X?^9mNsSVE>5t8;+jrpz+o@ zKClH}4v`{tA*MghhDqc6eB=$#Z7JN3?Gc~&Rp<7RFPCGh*}Vq}+gkSV9(FLKsJyqM znpO(%q5niS5Y=BqK8X6mqz-{Vh}H|<XOC^BbJX5WZq<%#kj%=P7~A4J4Vm1T_Le@w zuDnRxLFSbA?at`z2x(m1wt%TFA+Zx!pX|YTHtB;<(;xRbxyF6q!*H4_Z!L!_yp!bk zz(<O}SZ?6!*479Ed&A)aN6$~J=k82|7Si%7?_t}@itX)TVZdlx=TltFuiInO0>$Vm z!uRv#;DrCKnaz0x#H8W%FNL`}m$&Z*tYO|dhwWZjH2pS|Q|=NcdC%LdIh|ZJ>nUfg z#By}X3a!_cE301^#W^qp2*F}5c`%|dINW)U9arv5(`G~LqehN$acNO^3SY9j)5DzS zBkDgayv$`A5Hkg0>zm@iyF0x8J-e%uJFNL(Q|wOmyNhc;YcH5)4|D8ZnPIVRV^np< zv%I=Yr`u-4BmSY>uN;bN!)<YwQ@gTv+uF0lg!bjeWw`%0hIm;fuy`L(w+aLVusdtk z1p_aDb!jQ&iOvDt^J5zX&AwCEstj0LF`w_1E(FW&tW=kko~e`$VGKFkTUa1Rpwl)h z^a2|%#92@XNqF)Q3(>?<4_pc=g@FF-k1eh!++@q&rrd{gMgGHx9c6RpX+b#Y(*7LD zIJD7NpS1_rS2I$rYOq^wXXN5NYum9D!5{R2jg5-zC*F;4qfcoo=*+$c=Yb>7ULa&# zUwMPoFHD6-FmGMG%X_mfA6=qTR4j50YEw-x1Gc-mGekuk1W@325S+)(o(Y9-u#WXv zg7TuAEZadNg6>exj+by^sWet<2b7vDN`<ina|-OMs<8^&u)^{RZ)#gqqr&pRdEw2k zMg>US4}zs$sASs_4w5C8rNt5)jg;UtIU9Cu2<aT37iJ1Q&+zm97z+3ToR3@&DFf@U z5e$EAyoI1M$YY9!OXY2*%|2{sV;=`Oz6G%dph_Rs{Pysc;gavp_IjPow5y6O{^+O% z5#OC@Ulcmu>h16kbF-<W@1IuD={4k?kl2izP_G>JSUX&TqQef_=Y@H(9OW6J7p1c| zra5W;*^HS^qiRhrscJKJHoOjK{zxyxwOpw+g|t5<jF9-13s2=Y^_&g{10H)z<6SmS zOmPsmc9)J+!E(9*vqX(%<Wl=yD6ouU9m4rQQcDQ3<Qne<6jQNYSTFncf(zhyCNk5Y z7|(M@B3srq!oY*H7k{qi%n~=m9Vh-%o~_pimz5=w=ne>CZEy!P#<VG>?_=5w(-xSv z!n8G}Z82?!X(*;2Vrs{<Bc|b)cE+?TrXOMY38p<T?TP8<n0|rjmzaKy>9?5n#`Jqk z`(gScrUNh?gy|4Whhgf#bOffOFdc*GI84W58iVO1Oye+}jA;U<Q!$-}>2ypJF`bF& zEKKKMIuFwYnEs0CZ<r=wx&+f@n6AJy8PipmuEBI2rYV^IiRng6H)EQL={8JvV7d#_ zG)yxv-Gk{~OtUfFkLf{74`G^v=}}B`F+G9lDNN5`dKS}jnC4@85!1_<Ucpqx^ctqu zF};cDZA|ZCdLPpwOdnzT1k-1j7GtUlg;bBJH>Tw<^})0vrj;<QjA<22U&gc=rmtdJ z9n&{3t%+$ZO#Lx^6VtkwzKv-hrte_-E~bqz4Z^fBrcE(@AJb--w!pL%rmZn;i)p)1 zbVYReEpDyXg?#J|_=){Z><1fG!4-D+_j?1L&cYL%?gdBT$p%l^@bnct?SdyTjw;v) zPY?>JU==*AgQp~T0%PfdIq(EgbPA@y6CC#ili=wsFK)xv4_M=ZLGbhqJoSdBvGDXc zJk5nC2qMvMJv@B~Pk+NxD|osIPmST}W!9$xxMHhcJ$R}GPp#pp8nzjpD#FtUc!F!l z`@ybKP*lvGfVeKW4o}D7=^{Mcgr`&R1SEaIA$WQZp7y}g$MCcbo`%6w3Opsi(+YT6 z3{StpQwBWEgr`gJlmJhU;b}ZPL5QXT2RywCPd~zw4W7P+r|;mY2Rx02r*L>$08j1U z3HHi@X7F?bo*Kc^Rd}ikPhRZc{QuZ{?>MQ7ByhaC-^{QiMKNO-7ZDIxq6jO(!m<Q` z1$GzE!(|wDW?^J@W}TT`SQHbO&TwZAcxS#dojIYNrzeIJ^XZv01`Oz_r=E#lRfqTb zy?L`U-uL)^e}CM3SYE%b>h9|9>Z<DM@HX#3p*<<oi$VueC`6%OQRv5?FtnCJUs8zd zh0PyP=y3|YNukXYdVxY+Q4ef>f<hG(dXPf%DRdWwX!FtL8!2=$g|4K~?<sT<h3=%# zSrmGbLTf3si9)L=^aF)jDbyQH%FWFbI)Fk)P-qr~>L`??&@>92M4|B%x`9HYD71k> z2T<r`3WX{3359l{5bdDc+=D`UP>56LAPRl=BZe9%w1q;)P-qi{uA$JY6ncn4&r;|W z3O!1pFDP_Bg}UP0Yx8Xs+KWQhQmB$bzo*b)6grPWX$t+CLUae$=Hn@J35D7zw1GlN z3cX07B@}v(LWfc4OA6JB(r{Y3c`}8<6sn}qBnk}^rBP^q3bj*cPYPW~p&co7Glj}1 z^c;nL{(<U2p|2^leRm9fOrfz9dYeKEDfABt9YvuhDRer8{z{>B6uO5(*HY*v3f)bi zt0}aRLYGkJEeidXLR%<wGKGGk&@mM1(E~#n3hhpzWfU4kp+yv$OQ8k|EvC?+6iQR5 zibBUyXf%b$$+~$kg?>+=atf`d&~6lZfkN9+=${k{P-wfJ82bKu4DC;$FDO()p${mu zltQmlXf1`Fr_f~-dYnR!QRo2*ZK2Q|6bfud@{dBhQ0Q_B^{3DUB4-MnfuUHuIog)Y zRmW4gcm~o-j*K_uARAA`YU3+&l@N`^W-rOcGwt!rlys&x+7hpnIF(1W#oOYQZP`R> z>7-=3X?Z1N;w|a+xJIvpSR&h+&PJCc;|mhGWeTY&6OZQN^@*jaXtENrxeTU<rgUou zv_xAeBAUq&I%XGbip1jCrc9zWmq@3Os2r6~KqRFlnv*Cwq*G=GO>LPB)}vt=mJx%T zcuY<-QR-->Lsbsb&WLx!WA$xIWZp<qx-FHP)KQaaYl&x~Ii!dRsm~#ys<zomfl~?T z6)9{cDtCFjV@@=;tUBG&noeP<S(%Nh5@j&2Vak|#@m8rxn-)#Ql9<6V@thJ(B-=9a z>8UAgDM4jrb0Qh9OeRwC+P0P@*oH>^D<P3e<RFQ4!W<jonU)0AxjCIordOCT)Okcz zGM<aa+-)*Bnu`LqRXP)=?w!{f!zuz6lFOt!s`D_ZnrYdcGh}Tm(}I?4Wm@<064m!k zi%ja69LKVeq?yrdZic6sAc>K)C7VeGi9<8do$ROt?EIzi9JEK1ZE@L8qEN*&`2-?M zO!w5Lk|O6*29?bs2aJ$Cy+mMD#xt38MspVyn{JwH^C_im5HtwRcL4aB$wWH{E@@Yp zyVwYek0RC8*tw~AQjHyfj9nLtubka1U*|-#S<zwHoHJ+$Fflis@MKRD2Ps-q!&ase zNm(<fXj-{4BKoZj+fl(GqS{aQgxQeTh}iO3NMvUqF|(Vi>CI>x3@%UL02D1E>Pehl z36VT@iO4aa8V|BKc;iM>5#6qa%hr1^AcdJJ7NBm(#!;4}nyB?<fU=l|eJn*r4o8U+ z9wx#>>X6EGb90t@D}|E57<yVj=!O)6OSaBjA-9n1W${=Wjzt2`$t2R5M6RQfvMB`9 zLrG+S(khXXp+vUks5TO2iR>(lRMIDrot-jXTkK%H&Ybu~)TANNf-(TbFLqab0;^Y> zUV-h_j4_p(6cSQ6g4$AMJ8EEE97)S2+T*gBknf1S(q=D6HZx-qS^0)CLP^$2pybe& z5)Y$fS#O7MlV>$|C0bhIu>^^B8!hXE^dLdmVbtFc?yioKbw??J9qf=H8zd8NjSCT7 zgVLv?as{TD8IP}UVHRi?XpLuZ*tSf}R(ooMY%Uqd?0Cs2k|W|Rt+@`H$m(cov`Mf; zOIwawb5chxo&{tsF@EFO%9iNLYN0R^DG^l{O)bT2mI%C<kirrZQbN!Rb&<;ASc}Jq z6_yfBCbx@R>f^b36=ySkw6zuGy;d{wO>@6r29>Z(C`TMr5D}C_G$|3Kz%YjzDJ1<Q zXOmVfm84<Qxg55*kTY4AT#LDcs>ygw(OeU$_js-?gIZ0=<K|>Emy6?&K^cTLiLf8i zii}vg+9<TGRSFr&f7vOSbc>V)iZ3T7lL{npYq6%Owqz2bOP6NiOVyyOCqrXOv?-TH zF3Mo9H)$d7?qNG>w%ZWEW>|uHdM0L<RR+tE=|oEFLl>ARqXKH8RB^O1h!<3aU4v<Q z47oDV6iqgyE0wvTbb?FKNRcd50a+cXChBaJU!_kqo%$65*&ITHCz|R6oQp1xlU^5k z*0u^#O3^tQ%A<v)9#1GKS80d=a|jEO=;1np-%@cL^U&J1B$>!AgRC_Ah@g4cYDsEz zRJ^EENZ3wlBMXZpS~Qth6;~rfNh`sxl{v|eG222kyIGQLcemhDq1w`vJ4VOI_>E_# zr<$>^vRH|xWesWB->@W|mhFJ1O$N;!lx4!ouJpcV+nSo<sE5@cpt_)x$fTpOCTwF^ z5k-ry2`xOTl}PFu)3z1eCY5OmW|?RboufrneY!2vq|I%GN9@>&vbA2my7}E{4b{K| z781S%iBqjJM+(yVI1!eXU8qf+PS9X!Cf(LLsiQKNiKemyLY7R4tdTDgqN7kRO+n(b z$Q_1koP-TpDa{$cafQ5qtbnFqM{Aq}2@YXwo+Rl937|BJ5$$&+Ol*FtA%N^yqonE7 z+i2N{R<#GelHZ9`dwRLjCM$#uvJ|HbX#10lk`pFdCZZHeN})swOG-T&)`D34Pe?lI zri8S8m$WrEOA^Q)aE%bmlm@mO>AvI683lFJwM}uNs#5Teh&APBdZIFAmDMGgK|N?_ z+rd?dWC!Gsnsi&vO%T=%)oNyT%Fq$?V#gb%kM4BpYS~$kjS@M8ZuWdCokN@$q%%rh zPHb&O0^Fihi!xtPqQ+q*jsaA{F+J!K&6T1B<H>B?AXqfEzh-lbAi()mEWN^!icQIM zR*)|Wm`C$66wys>H2skMh_)2zTHScw-o;*+lR>LEgG0{gL@C#6lA`yrb`PnUc)sjb zE#n8%n$1R0^dTd(L}~ok?dOC{K`c#aDZ|J{FYE^ZEd{a0siipSpiZBjniOqXPCcKB zO-#jV)44=*hsekawI!7@TB6R7T9s&(iq%ggRf>rurpD6soGhy6PpfDqV-E>EdBFLN z`Q8$3RfEM=*K;!Q_C&fZn_rmh8ky;WWjISWGBw}P>_OwSNsYQ?BsOA#9G#Kw)LBCC zxoc*37Lrz&6deD`epM2#$#{b$@num=m@$OAQZ@=Z;zG~n;;m>fiKk;Y$0iCTkOg7Q zDCs!6d2%9yStdL5fRhunY~hJa9T{>|+sS%nUfX$Aj^Yw2lrcs5PwJQ`r!__ym4a-D z<dGdIMsY;WWM%athOH_sS)4e;QI5r6Sv2doQt(CS5R~OoTe@tw?DUk<5?IY?Mmim# zZR&VVg(9xpBX;%?JO7A>oQTv`wsN;6S*6s~l`+H4cH~^v?SBwvj`HKQnl^h}Il$sh z#@Ts>gD;kd*%0qEKO0Xr>j{>l@VybHq0kA;L`!5*Qm*Wv*>zlYs&ZYRI;8a31`?&Y zbQ4(!nK)9Eiea2X1F9TUM)*j^Q7u5U4P#YUg2YS>R;5#M>S8o3+mJNrEs4dKv@M-% z%u^#~t7cb3Tc@Yotw74GuroyWoN7?TdDOGn)<kNin0MPwjOsM<IZDFW&GYJJlCc@9 zNuk|I6FtL;MFO=G%&emvn`~EQeY`bF{T!Rrp=XX6;@#QJ>Q%e>1QUs<hP0BcZbS!x z=3zF9k27!znXh@?K(u|x%%-QB)pwt0f@Vi?r>xrsErYBnsN4pD~f=3;IEv`4J2 zt?A5;DA#mEXNki$MV%Ov^;?!W5_OmqIH=*Ir*3+4Z9E>s?u<)Rf!QQgt}=#Y3RKxm z+NrH$3|xw?b6(Y?my{-w<Tl@g-1S23_DHB%zdeDAJ7UUi5GB7R+TIJ__V6Kr)RMFk zMOWCIro^^@*F=}bGX)Slb8ELV)DU1^Z$!0^p;qHH;gad4WH`}Nid76a(iUGx?a^GW zt_=rXx)m~QsaZ6uTN1~9QW`6o?MOADMV~@VJf+jAn~90l^)bBdr49dvazoTqZIXdd z={1#T&}dJGSMWgAnD_~qrzgi*aw55riQ6TjR7nC+2qiO<NM0FBOm489W7vjbhCowf zw~sJRLMd(_MO-<w#B<BiF;QBsEkk~5Lx|&OSdmC3CrhuhB8lc>I3+@6rA%kJ(^tx> z>KxRNvh7PTX!MlMaJDO<O3o>1B57N~p6m&XWTH9eQeBcH1Ff<%JeS+56SM+QAK#Zk z^O>9$D@waOI?JO{bhb3v9S?5AFH+3UwOxTDqHU?1iVHey|D{}xpyd)`1--%}G<zbo z3^^^Qbc)jUsrU-l0$yd_T8xsQa`i>8h8f7TqM&)ulQ1HDqRx7q+Z`=eI)&<Y)+|K# zm@L|iv>Jv8;<TdOl8DDh0WKAOEzOxq<W-aV!Z3NA)cLsslDZ<A!Kstxc$=d=#UP=r zDkF&ak|CSIUQ)?5m<udqsZNfQ7a3bhHk|XSu$JlMWG^{T9P=(juvcze+6pyBhf%^Z zzlENN@=rT?N8Ck492z1{F%d5X+Q5=;CV!+SA)C5P9nYfM5($@6U5%qs`{x8CpyZry zzPa#*X0uOhTS_{z#Q(XpVflL3TEQSih;kJE<RngZh<SA)p4C(HtikSTx+fQE1;>a< zx)?RCD4G(gYDq&2hqX~)#G3=vy)e;^2iVuIil&lqtAgzUR1Q988M$!YMZktv(I2r^ z41k#7j#hI`Tcu_5%_4IGl)na-mpqb4(fYj+XU;FPhQ2XmYgP?&>^>bUmyd*fsA3%V zhRlQ3o9Y}rWlyN2&%}K3ym?>q-t!}TV*H|f<NPBF#1@J!7+)CB2}CbmRMOJ9ST47D zL8_|CbPjcpRwCG|-fb6={CyX4t`4r0dIpc9$Q3OtU+vP!SLSgtn(g@x78R>YEM1oK z^MS2$W=iJtoS4pd%O>M->HJcjm>gQFIHy|>k1kim&x*D-I4%&OkJ7?5SP4P_(uhUw zC+5y7sbUH=DY2A?p|VNHJ2b~rIpMs_E{h_`aw2cI5=jA9YaGw^Arlla%Z^BL#0HK; z%xw@VSLI~y#tz{vpt*k5o?M`wm}uDSb<~Pky{$>jBT#&)9XryPY|9Gu5~D>-Z1E&5 zHMWW^L*#Xmdl~$*6}~Uo6!BcOxumr+=PXG;M7&3w2*;{6XZTt(bm|7sNQMU>Z#rn| zEVYX3Oaq&}`l}#@T0zzhrfk6-E=F3rYI<5NjUGc0sM1oZ^sLEf-fc+6VwJHR;N)Va zwbR&p78D6!kU(roGxPR%jqse)&IPsHrk0ugfy8(#Xbz>^tTuuW<%NLKACQ+_)^YWj zjT84`sR%S&1xMf*DUe;HFnN)@Tq91l5$({3=mPTEE@C#GwgS9Hm17-5Y!r_?@OH5+ zLv+8P<&=#!$7PN_QbT88CtQI-PGNh<u~}icr%*L9kGP787#T%uYCN-6(#l$6lYMXR z=|Yj1(QTrg@5|B|6-=h}Y72#C+HY-YQ%JR)y3N@p;*O|ya??@y`OI|X-keNFRgze` z4ZBe-_z1VCGv7_CxeC=yb>C7yyTn;VC34MoL7N#tG<e^=ar2D2`^Af;+WhFevgR3e zFBI>EO`(=CBPNUXsdTiX*z;4Vn?}kS?Od=sU8)41rjlGE%{RG<o#&enyJD%NU!_yh znc;Hrb+Qo#IUhMQSKF3MW*gGA334O&SRDCTcs8AAzoRErHjV|*{@O$)hQ>)-CbtZl z6V3R4tF#y-7dblHyMpL9%+-jqZFoIz%r&@Tw1BOntsvRB4HPQam{i1^Z77b*!P#k; z&fkbhR@TgTvyYJ_k@fE2bjAnOUb*wJ)ohr{Z{Ua=TOB!YJF#AaEtbGny>*_SKYlEp zLA_zGO_Ni@n~|f9^Tej1TD5Z5+cfOu;)t_zBcisO=e+BN!^a*p3|3%I(`ui+8d$*b zqE<|hOU33l4BBfG3I&B*Jd1PXI%M3Xsl=+dlNK$)9GP;+P-5lCTsU%;5OjtKoF!+R z#W9-fxg#_wa$y;RB)d=-Bd=<|`wAn!JoMR3QZF}=F{QAK1iGCw(u0pODh9C(t!_Ea zu&B?5v5Z{jcJDGa7uoWXtBt_YKFi6Sa1=2~Y~EYpM63N#&C#q(NSu{QuShv|q4r6j z0KhbvgmeTt`||BwFti6m?je}nETpTLdfO{mq;slOL$pL!&J>uHaT{!}tqH-L^n#IB zjUn7Ve00@>VO8a|_0oqTeQM=npnVL+Lsfa*#A;{yP_D4YVXV{J;}N~e&Zhxw4UFhl z6&~U_mVk+7%%82cg=15|kcF<OaIx*)jWBLrYB{xPSf3Oa4@2kSSj!GQGTxl&7`h;x zSw6J>sI~+$PqJcGv}tHHj`n3ZjT~CNEZ(#{-ImJ^t&2;musYq8j(Xorf+|{!0u#yj zc$l8Tp_zz<Y1t4}S3DC=rE}pdHd?m1gPJ$ouS#!2ukbw`Q6U&5JU%=O77p=L7!!we zr73Jz9A6s4L%ehEUz*-$sy=cA_1YNfH-{0imzze6Y8o*{bH^BnL`IGM#l0oB6-1<$ zree&2px5ui!g$6EkS@_;4i}0gDrBD~Nm;q8NIL6KK4$Ll(Tk8ieMq8#lF30^K6t_4 z`Fiue-uo}$a=4Tat{YrExE66VF#l9YgI}4LuGY(~1Msa{yFLeo3mvLyBtpXb9zvY~ z2n(0@t11tZAQr5X5IbF)JHpYhaz2K0x_3G+u(Kl=jc)IYE<W!FLqn5jjl6hyvY}y7 zy8z3#Dn}q_OQKvvxsEP0xDjN7)5y1HquxE|BnZX{K4=|Jyntpxg=<V!^sB0frqZd7 zmULUzSzgJ<GfS!PJ7`cOiQgiQ=mYyTZ11ga{O`*hgLaahEp6Fccu72*AQuQ(!#Hl1 zbcC~QOT>y%JX_%<&T~?t(H~yI!GT69zhBmyzVNYuM!7+X_^fu`%$f2OitoS^kU_3| z2TYE)X5vlcksfF_u=nIaqjbL6C5SA%hXKN+oD|pwJ?AY7J5UxD9v4n{Ve)Xn5MTOB zKY-Ur7J|?sgTv4-*=7%+qr=o*;X`mJ4Gt@Rlz0oTmIp3Gx7bn*yTo-2qam|su8P-D zlHdj%Enlevg;o~=TW$td{34<UIR3zaVYMfCTZ|b|*dV7cZ2E;l+39`Ag=vyIB^qsf zwY#El0>@qHBr;r>O<Gw>n7siy+^@M{rk$J|X|y+_hQ}X*{fuKIM&?;uOY`>Oq#~Qf zNSR!nw<J^8Sj#6c>~nHODdh>{+N&mv*NNn2ZmLrIh*55xoo_4Jdfg4sd8r-Yh1y1* zk7<-U#wWStOC&OKc#&jo<74=ku~4(JRcz-#y_*_>4H%YFs4&g#WU8=~VrjBV6piYT zj?`)bzdX-YF)$m_!k#JE-6(JyY16yAI{CTVeMHlOPI9Bo^NqAk)}5i9SZuB@l-}8N z-{>MiXmy!|u`j<+F8a`_9uxK<)<Ow7+2G&koIKN9?uu|}NuQH;k^)Zw#NK8h)IrpJ zv*ejI;VLRu#*HV|W^oTLvbO4UbtXkMxIPmUCW%~-LGw;bH7bX@uCvbDizg{}I!cje z_MD58V37OF0Hq&P3RT+W)2I$0*xW_b<!2h!9wJG&JlG`)bApB_(8SU(9$ApB)G;p4 zKpr(}m@|;0VLR>M@KUs<?P04^ciIu+EQDdYI886lndoj1r%eiFQuHugqujNoV(lU7 zX;@>}7C)X>rKfGfN6*EHP@!Z#UDGL&u^LvWww<1JYt(Zt-I&s3(QlE+fusJjeBCT? z;P8XIGf5%Bu^u?1R9iN}XsOa%7-#B8kC=0%?dj$q`>2PXY$!BBiXGZ(>^$GFflB(* z5gGE-9u<uPVr;=CT45fobGJ!k1PpP*u}jIaLfa25svNO;SZ-p}T5mwVDr)vrOhsfX z!qZdP9L|@*E8;Ym@}!N=0G4&|9QrHNe!gdtNWJ5`<`HLTCzD|b$)#x)WM`QjEIK-y z>Ysz!bhw4IF7>xo=41nj&KDL9)d2>nk}07qokE&|PP^PZFx4oIGuFE#buQBucgHj% ziJmCz)iI@&;ObPTF_2np1<_fPX3w69O^}kp&etrFM@z7G24UtR?J^+=tHPoXLrA(e z@)Cw;Gq1$+J3UvZKJv&i4h3~~S#gMV56D-2a#g7d`?RJ*nmUVTzK9cf?g()%ub_1I zIj^T}6b<tm{<fW~4)!^5<_SL^Oyj6uA)4~feF~ZBrv-eDh`Iq<qNfTs0UfPsbS4gk zjZVjq5bG4>V;13L2GI03k*X#b7>k<58)l+7!&Q)qWYTVUaiCOpA{n<rK^qZ;HIF<h z*{IG;X50!}L7iT49Sv7}W*o89U1!EcA|u8WDjmn0XK)UoAt-z_=~S|VL=+u2Ate*l zvMAjg)}zspu7eHPYLC_Yu`3Crlc1fE6-~vwWMNcsvM@KXw3;nMV@By$Ih*-E$aAnz zdtp>TbkZmn9<JmvYHHF+VqNu@RgrYvf2We7@UY$xg=uMGs1YTdqW(?!-IL#Ux-`4* z==cg&?4UvwOJ}@Yhf3?e-E;qWmZf%F$@Qat`>)in)NYgAK<5Y}BS#ma(l}u4?G6L< z3#cyG75`aw-foC09|d&-AuJr$NJAu?$YsMqpNIA42?u3(qrE(r$ED^0^G=-jwFTs| z>ALkl9Nq}&)_BTo5DAE%((`5^EH-(@ym<NQz<HxOV_t2qv&q`XLkoqiSe3k!8KYTP zGA@0vIlpR%Bk#rY@Ek>N1a-_!H<PobN*fw8>7=o&ns<D>s^CJd4Uo%c<hqSau9-A% zYNUSp)Y^$NBefG})zm9`bC_{UIRA>dZQ;8WWmU9*+_$1@?OHad)=LJ?7#6AgTm`}x z<`p@@0tm}vOgPNML~)3b0A~`yn8v{;GM1WI+Cz>Ngr<+%;4yFMsdBsQ^nEsksBIB0 zJ8hD*Rysj_3g7V{=BF-pKwo+C<REv<IyLA`$5nxROrJr)2A5ZiI37QF<A`Z_by^AI z7NEvXd)7pBOJ~`yqB~{B$yuT5OCk4M(+TI=A!RVy_bVFqJze}}7^LDB8u4zlq3-Ow zC{wmd`6B2topdr{jQK)Nx>cfBJqyim1>@R;MjPAiq(SQ9qs|)K_u>fMeQsbW{onc3 zNX7Eab2H@^;JLD*(dZEK=8Dde8<$a-$;~?|3Rcg3K}Ms&9;KA-xeCKfZkDd5Ab$5` zm^r%^N6kAk8o|v+rVMgluHm}qqM>T={&F49j7?{jR%DcbZjvkG-gR<X6!NT#yP~$~ z+PJGER2e?S=dFInjJ2|Y_$94|Cq;~0hReHSqhZm}kx2EFNeS9IGc6u%J!G|7Da}JI zb{j{-T)9SG1TDWZvVgG9ogt0J!mzj&)LsdW+bh9wXL(-4%iBO2swUXcGRC+bq`|wU zr`M7l6#McHXXRMOcy9A($Xj7i2|BxkL~UL1znH`U%6EBPNQ1Lzr^bMcm%~lkhhgU; z&~0Jz$U=~To$E7fqgd^D%3H40`<>bguIGx|I;fe=D?1wc;=6gZq<23?{-qw~ogM`{ z#e?L(^qkKQ`5d!9)YR3@uB!~ArJjrl&Al{^+B=6NE<w9EEO&)UCEu!c;)eTWyXka} zv)G%YykE9lIDw61!i7qzNY1GGH}vn8PXL+K;Z~Yx<vLo$WVfWe?VR-f!2c|@Lx<R7 zO7cq`To$Mkb!OSHyzsUy6Bl{?r=^J63T}~`Mt(8DQ-rsDRXmdp%YCL{z18?X%y4!x zhNf8u&hJGF>Rqd3*|nvRxm(j2>hNEj@4Qq-?|JrN7c|+IhWqzx>i-KeUJ%Ws#D>p# zsn%$Qrtq|nMk1G<3*D$PXrUgK1H{M{l^huUMR(f#w`G;4Xpln@3avr@G?7XvKo=RM z6(w9{qfKAhwC=Z=%YD7gwwa6?Wg8o~4pALgp>B0+KTuDnl_(u^bfmUkY-vAa?%dVG zN4s7}j#$(*YK;HpEX5dVZ<e}d$9L15f~gyLY<;TU^^vp%6YFZH*G{br+x~(I<0_r7 zyr?HDymw6!-ai|TuM`I8(y-h$D||`vN}dYWMLf2or#GQKWuJ)|k8hV1yo_gCn1?16 zuFf+rR#98;^rmO6SA9E2IvG{p<X`zCy2+&$^Kk~rYg&z!vT(7RfVSBVIU2l$3#VGD zb4Pj97QWZW@haw9B!dd3HOjJg{fZr)-hET{+-9Iy)5qf43+#7s?>ST6JaMOl@?*NM z>nXM`E^j`aM~}XcQBUpkyElowAsdI&K$m6NunaYtJo{#E^i3nTWD>DhJmuc!TS}H{ ze<huob~_|XP1|JbZM4JxSytXlL>r~~{fjfx`!h>GHFswIGBQiT_ui=`_D54&iyjyM z<VF<r9(K;Ho4M1J4W+}taLKo6VL@o?EfWTtYq>z!#3adS-)&fa;ls5i?{XUyxmK%D z4cAUk6h@^lre`?A0Ato6ydkYfg=~pgdaYkwu4T?zeXnTV1`^SS2AYt`-7$LCVVi5~ zl3LL-Zx1tX1Zyy5lAb1+2zfV#HTX*=)T{IJuNTX9Qi=qLo)=ojR~2t-_3J9xrGBG^ z-W`%p<S*IpK1G~l5u4J(1NtS~2I_%<V`8beH7i4Vol<I&XCSI?miX#<0n&Qjt<~w^ z%96rLUwKAMgdq#{NhH!1GZW2nxR-cM+JE1Mm$VFWXdyn=6ErP}?ZeiZ*=cW-KAxoR z5v94alx#!tDnnCir$Sk?Mp7UC(l#*;aO;h+Hf?&ZnsbP50bSq{mM$||In@bhs)h6p zh})Z}l5J{}D6vE-RdML}4=aN7i#1vI>ZfiW*NTNbvP+^&ttk87M@{*vL&jlSCKoyS z<o{t3?HJ1kZQFxTekCI7`kl{GLQ%hKx#)-LGyZYR4^rRXpcbXOdn?2hc)qfNAUc`A zvVG~x>`h+{&bM`(#wz&rooz7{@*x1*&M4I$`Mx~imwrIM>_GeD3bMuP%r7Sxu0eq! zT0-BmCoVe*=iTkM4XW-c5$mk4|8w?S``iMEeMqGHfrM6_+<_dBX!6yoe&1%=7WHzI zfHku({j>Mv7bCTV%LW_0_ZI5R2ehS752TarWX27kK{Bw&0Kxe)W^0a>Noq~O7%<+u z5pAFo<-Y6C@#=SS*CH)jsI?3aL~^BVR)yVnP;ZNVv&+IRvv0V@TGS1mYJ7Fdtym_u zw$4c8)K!XEsb31-)wnH91~(xje$~!;t%^xl%6k$;%c`Tv?&03a9g>YoCh7bP9Q%Zu zyqqWR*t)}fIs4%IV7>ESt#Ik99F^lrzG*?_02Rx%>$Oq)__%rXqpwrWMDSh>Nhhc0 z=Uo`t?wn~iPs3?Hlx)SkwUn^?1AN<nPxH&P`Be~ry&-P37eYpimInJun{eSz!E6Ic zJ%#IqU@uJtuaRs7$8c=G*|WV@PDUqaktiLGMO#wgWr?NB_6^S#lWwu>O2%bdD_O$B z4-7j-b2Nj~7`c?5B(IHHqNpHdaxb6K?TW}r<H$YRN|!~9FL!Pu(BHFE8r5NX9pSzF z!Nu1)R`d5SLe3vw=6JU65a{$`$Zf%u_8lB@8Q3Khvc9un-<u~J@;!apf9}E)m98-_ zoYa2D|9aJ2rD!I07p<I-jrOKY+ZAC)xW8a&Y}l+2j>ATK8=HGKr#Keq`uOY+(|Ay> z-)*@H?kY-%8smmebK8LnP-F(<a~f2hvCoU&rgNA4;&lJ|5aNGfLqWun_Nut=RtV=e zOQSQpSJDa<W<@DGfM(2}EpIM0Zy}ZY1k|0W_F{;EAa5x(ZfO}eyIyPzpp#qj4pVzX z8aJBeeUi45y$1F-Slg>AVUYYrr5sZf{J+7{MnSaHf)?Gpx|xoDF>hhF(DkVQeS^+L zhkH3UBMY@pYZl=EPhL(|wqYYM<OO0`+HI=$91kDu?7TrkXHaJ?K=W{M`Kx2ddtT+H z9mmD)K%6-00V=wL74`h<VgLJ`K%|tsl&%RPM^)Ipl<q9Sn%8b%>^z+4WRhf5m~gsU zN0{k_Z#&gSr&uB`c-8B+F*>PCy01eWd&t*kay%(*CM)89ovW)Bon1@YXkIL(7ZJS% zxX6XfokqY~hllvxJsVEQQy%$=3SH&fXx^%8Z}HDNgqMF8m+%PYT}mq=<sGyI8pZE? znYzHh%rdpKle>Bap4wl~AT|!Die|$o!bQB;GSGy!T3W1PszVK)hS6UIYy{)t4fn2m z6)BIm*avv^irNsJ1HF43@%i@``x%FwUUF<&9cFx9v-{=T$u-2CpcjHF>QvwQq9{-k z>N?}j8ZqSmuP8gGARNBtu1bSGIsd73Ce-#l$2P!@(HEV$rj@_sg5qsZNf$X-P1g;` zt~=*sWn6IMf@BZs0)cG6?fa8`5p8G{^o1r!0NPVf4b!0>=0Y>X-~gzaAUsIU2T@4p z(Y2y;qM59{MB#V&?tfp;IYbO{6G38L-3H+n^R@MY1+<VaQWO7g7d1kyv;2b^Hklx) zWY5sW8sK2Z>J?W8h{bcYYGf}FE$NUKB@k<i&6RTbu-)%c;s)cuhgd2U`l;Z0;r{un zg>oO4`kb*G6rEftEWYwN#NKj6yADNOF1JT#Hv(>(O;=)io=J#rde}2`+Z+^qYbsdN z(}^Q&L54omo{=o7c)j4&_S<Htn=Vg>BCJ-S>4rE3rk62{({*a-j&Uy4lxDA?%gOeo z9u&>e;C%Qc?E4XzZO~=jf@xvMebKaSOy|YBkAzBowoi->Dz+@5))KYvg8cv6V&%~B zsr1X1y0J>rM8wi@v;#-F<4gOFm-qCrNTsY9+t7)o)XJ>9mBl%GsB>|4kmWmq<S{q% zK#Ps!-H@iXg_tjSyYM_&6ukCZ-vQ;>x@D&G|0qkN2U8we^2CX|Aq-2^zHv(*wWlMC z?lk##mN&X?m$EM>6>CfRx0XwT#eUaYJ>1`#aeYt*b5)D%18AY4U)8`8Cd*PDU{ZaF zxOQcc<);_<g^la`Wskg>pe+a0L~tSsBbyxCMhqX|bT^I|C*J`PWuioAHII(YBR>iq zJUFb04IdDR$S>khoLum5$02os_hoa?MctA_zdQzRLrLw^rnK)!HBtTnYC{N*k*2j+ zoD`l08ImS6-E9&!wy$jq>zT?xVqHfP#9i>>%ma3B!dT!EYguW%@~$1%^4+;W-rf@K zL^Y!Yon5Ba8*6FBaf%(~HrZv}JKM8x)VA8Kkhf1^kPj(&7vMMgQtb7kdcgk9R$ru& z9IejnoZ(>=!@~RTZ(k4=9v7Zo+c0`mWY)yP!b5Rn)Ko|2)YL`rX&xn%iBv=<NrX(3 z3tDoFo4y}mnI;p_Yy={Ch#rH>4OH_25jH;~uq_QNHwD5o{>uq;ePFWD6n%!!t@kDy z;3wqjYi14(>%2_K<(!equ1Ks}MfZ(}V^TQ7F!sUa(?+)@>zA;(kxrbmpo2l<`enz% zM5>z5?XiT|1DlrLJBT^AJ(K7q6_8RTW3khPX;HA~=u)v4IIZoSxR}h?8Aj!yj@g;S zQn{Yz0_gp6Xp%&e<d^I~>RM?cCAR*lJ5k#WAC)sr6F0q9RaQZh0#{;0U+18FZN2A< zwB-g~dpZ#di{(CKCX!tG6wv@|9c(iCTu}IcfjIw`_wcJt^U|b}r^Jk<40$%pb#_ej zNn48QSS&5bV|B&x<gU@8Xh$|HH}%S}_`*;LDPndC`5~ebl1#Rf&?l2hPA9}4Sy4G@ z(>e>J&W>z5N_jFXW7~8if-f~FCA?o3DZHfX#gs=&;E3!X2-{ozWYy(2hyHK)%gmC5 z!^~W+hT8gxZ8(18biYr0PMW?}i~1d<x;u7GTXtCiNV*kgEe$n?HQ;0B^x7FUlczU; z@;re15HFaf5WdXL#NsG+>f<>F(J#(Oq^u9}C{0%%jhU}J04`X2G-JQh7n~IF()M({ zs87_Y7*VhMnz~X<%!@ZLjc<V#N>l<$EFULJz<Qw}uw~|@V(D4Y6wMmss;F{w3Y!|L zD*ICF33yB@9uVj9sKs*X>&n{3#(@4-41IpGRerh$EuEzu!%dje3&U-)qcKt7oM<AW zn?ju(cE?jUERE}L;!y8o6~0Zg{fgo`>WQk8*NMi==wv#*d|s;u(e{i)gx;bk`T1PE z8`FsqNr*K>78FMlmFX?mWKh2%(VT-wL#|&_eYW4Kwtf`{WKoVsWR#9@;u~^v=)Y>H z&jQ6&(0{Plu@3ZFWu5s+4cGw~7<*mPZm{?uh*(a?*@oc*0%Mv<p9GV)JDBV4;GDmq zc<)93V0<mp?`|kc(_nu%#~|Gd3V#3$TMSj<#en~YO<WAa@lmxHCW?wriZ6?{C(;?c zg{aPZiHA2rULye()Oj}eLb)v5&c_h3+O7gFo5gc@g&I^&Y3Jn<No=ZkR#9)9w>1_v zjT*X6bviu>=KgSO=p}7Smx|RCdAy1c%}WjHd{6uU+fhuS&EqH(q4xC~L3gkC?o9`< zw*a_Y21i!cwWa8;QMp8m<JN@x?X))d)xdOZY=*kLoxWi87O}2YckkacxLoGKcgRO_ zS2f@F38KwByX`1yD&0vMkE#A~iZaKR-e*<k+3IB0$4;NW2L{XyD56c2oU^;!c{l1& zwb<z!nR~!sHekDedqK<H$El?gvt;>*k65~DJP%DI@GcX<2ym}h*j!wjNP@lZPlRG7 z7-Oa&d)nuqkU!<1GD)$qeSH7m@?N{&+`Z~`0h_YSaFQ9ZP{4;ZELs5KE>QS8AaAOj zKdpsA79g-4z+*<Cr8BV(M`$h{i8x{J2j7qu6YO3Rkw9`04Xeai%BW%Vq*t7rj2t06 ziUgo3j|70><p*O&u-Ip(P{{XhXCp2Sm3fHF={C7Vo_y&YnlM^i>W&dd$)qaJqo`Pw z{R9d-`A;A$`5M!&qsAy`Y{aM-EkleNW|K5QX58+do0FNkRDP~(kVQvNIArdkszq}b z9yqsg_3+V)5OXdzPiE0vRT2HPcl!_w=4!HIPB}4G)#e%mOt34Udx6%A7EwPmsdf?_ zAi**pte=r_j8f~$QP%mlGATOq0U*jZ>JTrdRaNgs?flO}fa6EA+trRCZqRZ5D@oMz z4(s&QG{~q*r+F$>yUE&D+AOLP_cih<*XEazIps9J-Kl+TJ$*>kZV!W#?HGT0Az^mV zTuFqp#%TjpZ&pnZV8?JMcWrkma5x`42fAE5g00Y3zGe;>KDsY8O8#LaFj~R$y)tke z27vawL2nNr8Bs;!#~Vk3YT*bkcQh)-5^aGzRcUa!Pp(x5j`qeO8dQxQ<r9s_P<7A< ze+VXlsxiX~0x==N^C&Rkm>jCc`VnNJU?wOohZP{uM8mugb9iBbO-#xXu}5@T0~a=B zO(}}i$(@3Vz*HkksHP_s6$S2%`{28w9`gMXhDKP_PU6?Y3ya!EsqfC{EwqN3@!KhD z3_&#lr{^&f$?gfG#u#PKb>yx~0+?b8Z4$9n%vLz=I8AqxOVP}A#)ON_=c-68m?n6~ z!CW;CB#Cq7;GSz}(yB_>y6*U(^-}=w*8u8AfgbpGZ5RA+G5+nSAsG{LEdGTx<oEd3 zOG9qLzY!Ypwh8$H|Hf*_Kn4)fkfF>dXCl4~)Q}_bWr~K}f-hY)WIetdq9NblOHU24 zI6z+w*`FI}hT_ZK8ZrxC_ScXsz6{Wib==79T7216L;hl>c^_YL8gjS=u&0K!;ma-> za=K;Yb`id8uOWZ5jMll^gglBbgEZuyCIszkCrvMWS)x>3cT^MI)0W=5^cF-xqzXdl zp$MobsEB~{E`szDYUo7}uz^U4ynv|mB7{yL6r~ABFM&`Z21r6EfrRAa_vd#`&hDO^ zyL)$La-Vr-Gdn|baaUKm$>mZ*44(Y-o3t^)6;hV;*IrukY+j4G>vQM9o$YXt;dV+E z#ZKgH3;<vk(`IBG-uJOMREw@%$md3fP}jrP)SBts8jOU#M0LjH-Jee!EN2RP%F^|4 zJ^LaZlHG^1xi^W(3=4hP;y~T)(Eo-#O2%K&lGX_Ve#U=Q7Is5rs-ysdsy|Cm5v=*S z?1tmkoq)Lf4fC4Rm>lJKx8L`a?eSYmX?do;QVgrpH!sf@EM_w<MG%20^26Z!j<r&m ziXokLZ`o<I@@!Kg36kG}<P6Gow4zFHdZAV6JVw}<Irb+-4t&+d0^qqc_H(hBiVI&h z44Kk%!)_xYi4j?;hmT{g0Aj~v^dG7>#Q&~ewK2|HGY4|qMM2)h{F3;xkt%l&NpI5Q z*muiXho*q7@y$S;u*Xo(x2hL8u5NSsBEg_HJ66YFaWk5?rh4g96<!PC0AE>vY=RVs zQvR1ecj>`*3E*_+rN-z^&w$xZLmJd;OvYGyp{l3zfGDjhy|d|yRa>##L)Kv*8u#5I z!QAt!00<(#fD^Rf39V|Funr^gOF6Q?<;Hh#m22|m%8m*|I?h-a=&MR03v;<C`Jw+_ z=1}dl{qt@_>vjFvaIQ!#%78c+$I+!S&bRx2o`KT73mf(LV4m#6$xsHNAm4u*+*NCz zkpq<T9t{zQs+K3w)ObICngR)x#h}u+c-lrWXD^-Dug`sEV3+6Vr~+0kw`etVVBzO4 zSF}wYQ8}*r70xLQ^{l8Ti@0W6>d1tx-mRE(E=^}w+Z_9GFPd$*hKPhm?)`o1?Vw&N z1U1!J9j?aQ_DP6;Rd(t1-)~QF`ZP($bogskQge*#dQlMuFM??z`^97><!;fOY5+3w zdOrKb((HJ?7;*oQ%AZTXdzKm3eaokODa@c<l2={xj4Ajm)$we~lqZ)?@ooiCvH7YZ z?bMg6y&`U<e7K(JThChK6J|xJ9ZGe@%Cjkt;x%g$MM(NFTK#Zqa{F&336E}{dt!9` zZ?9Zieqek(E%w$XWA2J9AYcReA+kAHUGef~g^99sJkfa(u7{@g>q9b+4uvW(3@?5( zbzfH}SN+l2tKR$)FP5y#!_n6JcIuG<#qGrs`bjkFuqd(dnQ>gjU{SnShO(h#+i5{I z>Hd$u(62|WXj2waa6wKy`;g$5>8yv2N`MfB{_l~is#Bf5cNf0>dU_s`m#t;Kvo6xt zMeBUS?{3+s6U`~Rv(n@#^uGhaTsB3y32VyneD+Svbpyu^wxAJ_X{BjTHs%kp8SirR zoL&}K(lmY>FMs~HtV=!lV`YA-1FI=!viZNN)a937q~4xP=8k!Nk{rE7Gp)Lia<@VO zkc8{m5R2k>_MiH(T7GpA{-iYrzjcSn=Ex8vK5aP(5$zItKBa0sc?A%1pII2E<2%es zE-cQc%6-bSdhe;5`&?_HdQ$RzD1UC@gJI+EwX_FZUeB4!a?&uGtPfwNL`LM^MTh1} z-!|AzD3#jN5G`}R{*dNgQLdcEEd2b9Jyqb-zQo14nR>!ybx3fTH<wH-`o(ew_--TI ztFeM1`3pmb?=X1AlvXuKxTx`tT`_Ir=%}La7p>LgqS|Mc21>w?j+OE?SFgVUkGBmu zA~S?r&;sugv7^BX{ttg=istG&h>X*!jwjz&pT6}mmpQ-jk->9+(U3*tK4Irm)pdi> zXO{CrpPm$_Dp%b~zT+2s@F>>bUh(qBj0wwR_Fk$;>@Qu}uc+$=R^LX_7gjm%H7LY6 z8ozzV;9*9_8p=W^l9kSFx&5n{Sh@FaJWjd#y7(LLj&e#o_dD(-jmeQ4O*Z3C_2d9H zDoNCRw_phiR)JO5Uw~31Kncxw1w#+4{_p6Q82}JaAhHG}J}#3g`_OMd{`dZcAomm@ zwTqz9w93sdQMqy5VBYBVqtup+dI$BCcrgak2NsN4Q4E`6WYPbmAT&PZEW<s$pIbBE zp3pY-$XN}372wPDks10^m@C8g_OT2!KG*bX*uSsfpT~=b*7U58bcV`jooAmU1sjWT zDA|<-VrPruTHn6CHIT-H-<r{N$UnbdhPoTo#^`V`zKzz!{1tgAzVLE}vvG?d`4$PT zA5JtADWtvig=@OYwN>)^x-_7xU_Dy(pyBi#?NuuzlgWgkh*536qk8iD@yoK3GmOX8 zPolXvxp^5KLYVtys^*ACtW-a@KIvZEt@Edb+1HrIWG$zI%N!yN=sg;*4Kx!Szil_t zHr{mk15Rv2FnDNmD}?@i99Hiw$Rs~iS1I_Z$6E6!_WeIx{T<Aw{zqLy!6~38#uAsb z+UY&$D0>xB*!bP+G^g)H?i+`@ntswNxS1nS_arrbRMpJpwvRN;-5U+p;>t&4pEHl; zZfl1<YDpY<C;IqFe_ikI+*{KBzDt#lzf6eC9<??a9(f0vQ}oF`rpi9+uGFVIz4ve| z<nlZx6!=zK`@QJlt)RQ#;&UBZceE^ap3rE`-47`%*w(N@1w5?1O%s`CPI^L~l`nKQ zaB93i;cIXl$7lF&bOFNd9R533BV;_P^V0?DGY}gKC&adFUq7I^VW|1~j@jZhGN(rX z^RVRoVLh2mDZYb<+!v+>cVdKF1{r+oaUplV!A-RDX#a2tP8B6>v$%4!33~Xl43`mG z?;GFvldcH`Tm|hp6^wX@(D>Yvva86TPxg{O&dPp;t&!>))0g=Al#SjanWezXX!}#_ zGU9b`qs-=2wJ|%H&0znBv1M)9+$~pM=JR@#YZ=!(3Q?yi@V*NzBX)fU*l=&UkKmfZ zZMrYfEXV;W@`%FPWfnt^;)%qkQCjTmm{NwTU9?7O8vOx2OR_EeMl?69!4Y?(jwiWA zpd=sWpiaG13z~kL`{QOypJeh49~x7bQ^|2Wo7~*Ft#I5Ovfr16kFGv@{p`bWqr)}X z!fiaV!i`5?_!=7g*Sde~{$iVXZ16R&r9{*5;y~$^?<tc>L;SMK>;b>EIn4sSDVDL| z&6h&Ek@E-4V*xLn&y2htKH!VeX?^$6aB1O-e*3-G`ZR4O9P;?+T;b-Ip{)gD&NJGz z&wdDP$$nvNnWHN38SORZNcU*i&FUB>7P)=XWaWlRSXSNj{^Y)?>S@L{{Da6llUw_X zqzH&+Waqf41;8i*LTDK+W!_&E$PKsRg^J`B-vG?fm%DNI9C`WYd{jNNdzW}}zXw%$ zW9%;d>9|6r{louQ?qEN!N88pYd~SZ8^m&2Nu%Ix0nfulzX7F>-81pbt#v?zs`dj=V zhj4I!-yM-4+9_Vue@&_$4+FomXw4-%c-D%q3cpoQ28bHH;7N^Zv1pBTzI?sRv|RAu zjwr^8636yJPK2@VaqCFYH-Ot%io&<o`lq_J7f2$FHtCCFrH;>WKWkdFHy$?24L-Q( zmj%}jum6wgFCzLUxy9yv^`?Y~kvYRLtYU}l$He)fcfiD}0H73vp$xmKE=5K3d=PnS zkjOcNHon54b{%ZS;YM>>>Emkgs3q(3OBrDK;^PW5y$3^n_YG^vOhi&BJ45RCGv?@k z_eoWL#?g-Pv_@u=Y{ISK6JyqUR{@(3>SL8}0p+K;zt`yj!^g}Iet{cYgq8oP`Yp`5 zeenTK7rihV*Vt))HhB#I6eu4lp?hCdv_JXUD?cdxKXZdGg`wj9U+mnz{4B_wkxBk? z(~v{TezAmOG1hy+mh)j7a~h-YY`>U88K;>K%L5wT0>wn{0x3}4V+R>PYoW*%kBrHe z_)fPdhnDLft^y({Av$9T%brO>p^lY1?G`>YBxb5o)8WtuqfX1{b+O2*U);G}5B4jC zZETG>fjiIqzm(ohT<`hu5?glkY-aKv+pg)<fr8bnbM0&~{iavUX;<yf>fC11$+h7t zR#P%Y!FkF6U!xb3W_d4{JS+d&P00O{*t*pV8F~G*$8@2LHdr1QI^D%Ol?2EM{^1xO z*X&>rmz<N{;NQqz8~4=5l_qlFEg};+^y@KyF80CLit)}fnuQg=d_x*J0E5R114Y0u zZKuoi$t-)}jI4DEChu&JtC^uyETzI(d$Rw{?Bu4#|K!q9l}nVIC2%fb%Dn}-FbgS; z<Ha(`LMuvWZ?E@!Dv{~44|aoP0^1w_ak3%b?$U2+G)+iMuR14o_EwZVCBLvHu?^EU zec*c`|0ce=nf+Vv_kwLdwJ~d%O;f&u_{FyXxq5ajVrjuPn;Hj~(B)ljmFx3BmvXJ% z<|0mZA;o9zM%y3TOmIDXw-CSglqRz0*^Jq5vr)2#29keQ6NJ)+-gh@fDAZWN2rOGK z)bcy-Gq+jq9fMbse?Qx@<1EG&v(Hu`1jeuC(mq)a7K!wQyVPEcdGJQuTlUU2Z|>)x zh>jaF0=YN5K5}Nxco-P)dVMPU-`?WpH2ID2<%>5MDPDXB0q^i;fk`blWi}*#aV$PR z@U#37H}ZN}3Amz&`OwRsTM2`6Du>9;Gn9{dbm;w&(WTi55Z=1qlBMy{(<u7_TGd+L zDU^jhuNSM3LadUW4|i`rO-`a^eA!$%q7e#|zbH8dn7O{y{=C^3Utto0TKQ#)wd8Ir zKAFmmP%$(z=2TSM?Yv#k3}M)`h}o%=s>}Zw&X>zI!v3?x(q_SqcB-yw@<`p$v!88v z-I1e?{L|4B!#r%_Sn-&*XQ};{|K;4CaCL2r9N$4I%jwsuA`0uU(#mGD9l7?eS9#n2 zXx&Th9jT?4!uobiQ9PiG^+q0t5bz`2E^g^1$7;`%_}uDxZ}20v2bl%inrdU;WHx!# zI366m1a&Dor}`*9pm|);%tQZg6wYhK>uiv%D&_k=Paqe$HqviF`PJRwJoGSrF*lDJ zff{sUI&nM*>AZHmpw1mFPcFMNIQ6Wy%imOHTZN<aK|pxj^eQ`VoE7uI4WYL<wHaR8 zg8&uqb4Z0agNKURwtjO)NHj-Af!p_D;kM%EXOfiKY7k9ip>T&Q@?oN9>MDmT*P{_t zK-U-zaw7Tn7qLQ{s{6xYYGb_SoIo0_G1cSf&!a<L0$r4fLCRxw=)CNo{=*UWN9sJ> ziyLlrx8629@U!Ru&o7M5f4$(_Ei_f33)ZZ!kLA&I+J{rQ%`94mKYHTHdBU^n174pn zA19R}KKe*#OzZl5iCno)C}k;KXzt3~^ix`}FnDfuJT1}~wvuPna1&H&mmj^C-FTiw zDZBeskE^Ukn(6tlj>~9tyP8%6AGe6uG1=|ScXQzek)IoTx03&Cf;mdXcaG=5PlLY1 zKU93FkNr-xeBY!4G#$I6{))jP(I@5I$!Ua$5o!Eoq1R{6O^sRAKlot2;AYRS8#?c) z_YL;dBaiQT4zdjkjQkeVVamD{d!H1O-nc~X(d<+Ffc=h^5@093!7}yuzl$dXB-%lz zgq1(pp)@<*XFoVuMQV&+Oyv!;B~E>QTf=v2`#jdjRFs`n*!Rwek!kEjtNZWL9`8fm zvYghiwEa2sUAg=glSSL8<pDN&Zb`Nl362m<YME#kYCiun@VTaO^mEPk(a$cX1%_~1 zzQ*$V?N$t%|5TF_y??Q1QzHu2?e>w@2kK=CW)bRxeW+Sft)I1wvMpgBR;~l`LqGVo zp@5BraHfrR;ou*&g&x5L_Q0fn{3}_(v!QBPo#q`szh%egerY}bQTK7H(|7yW4k)L= z;L)+4DhK@9;UTEii0fex2{ydw!zkJ=8heJ`XM734_zycOn*SIyRkVE#QC~abu!_UF zs@u<4c4KYAehwVk2LznH?`i!o9%o;k2|BuL;nXJ?R_F3=89dBOcg9&{1&n^Ng0TBg zyY#TnHA}zwOFLX#&jSpUJ`&{H+$j1UH2==}VFsfU=>5lyM-Nk_QjQ<6A#R4Ir`Po@ zcndAw)L?lj1XTyP&V$4Rp7sX4^R`?cMR|HMegHfeQsw`GoXjJAgLr<o4to&t-KXPg zx)UR(o!GPDoedTpp`9J9-S(zA=-;3C#7TlD1GaQ68oXAhi`(OXJ=f*`J-+JC7~Aov zi~oGO_vg_4o~#bSTn~lS>?@;mNl3xe2+OUNYwyzL3&O2~Q{3%FXG+dacqxu-Q?}Bw z!4E5>V*F9=!P(SW;x@Xb0dn4X^h+7Cs!iK(8FNmURb}^mcKg}yL4IM)ebC<Pe_W@{ z&(Ff3Q9I?t0ev4MZDn)_{Q<8$)lBw8WfI7{YbjbaaXsSGoboR_h_hXc(|S){)fw-P z5PP$4##rh7xPQ=yzk8KyQ5CS?zo#8H#G~@nDhvOj#iQn;Qols}T|p&8r>*Llq^_E= z*4q8jISiLqIZVA?q~v1j0Z3ys&?nW>w7oFOV=E{WxGWUq2B6Um-LkZ|aXz1(WsT{M zn6ZpB{(F%j8_3K-LzQY~B&Tto@0Rku9=O246|ZeU>wghbn-KttWyps%nCfwlsEKuo zF8t5dyBX50nV7?~Wmm%%<v;;XffjLholvfa%MMwEnd@yrppyf8qd?tp)03uhgacJ3 z?ZGh6?02=!HPJ#B^G9T*B{gPfncd0Gsv(TCrs)xhz7)e7&xDTzjVJf71D+_;X-Yt2 z#~Fw`&<4V#r~9Jx;S9ZVM6!rCsb<S?{*~K_RZMNW1Yt)s`JI2SRI(-Sz#Qt`I%1O{ zN<SWVo`{=FVje=%HnY|a$ZC<gd(nB`4IICfC=%*@?})nHprrm|uD$_j;pzcz(rv~< zT;%){#;!AIy}OKaC<29(k;K8=m*#y%LLXR^xr5g_yuvud&fX_ybMZ}1Ki($XfSW>= zN%AD_CWWBwai@bF>`p^yE3BHPTOhY7O0z=*+7EKYDd=0Cm%#mv6MrA7B}wob68Tk+ z1&J{%&}dGMK4XD2AEJX0Dz_i~(oxePdqT7$gvbnCdW}}`v*i|8@AST=51iNxRM(%V zL96(Kxw~Jk)w4r$l-5*U+~z(874=6F$(&Fwlv+owG1!A!X(aF>*zU6ILtn2(7mG;@ zd7tx%xs@da9<z!0Bhbl^K%%0BoIv-eYroKLeuU<skZ7`<v;wi6cSP9Jkhlh57j}oM z#`p_+!xf3T;WGL|46a)WY!`B^J!2ab=S?p5vd7Wt4~@41wDg(tQG_co`x#cVu6&6q zwUdcM_{gI-0{3fK`#R(mg;aP*B-@ywg;COwT_B@Awrw`i5+8YHEO6^SN8hL!UL4xw z+~l&|3?OgGvpq$H^!6x%qocU}8)#MbegmqpqVaIGL^p-Q__S01sT*Ds!S!cuo447j z3HZp46uPUIcKZRz5<4urhD9U$FunS{D4K~Q+GCYpgoyC?HL>?gH9EBR-E8zqM&=aJ znByh>`D?KNqLt(mx@aSuo>*4LK10Ikb8oX_+NTXbi=bmhjYvu6ytK)EF5|VB82!Wv z$76<YMG-VSnEAeZ+M4KA?-U*27VZ*rmli$k7Qc(S%_R_%w`_!sfy?N_H8e*`uemW? zM1>u^q2dDESUw)$>5Yrv#@%&~k4<)Oaucf;l`+7jv2f4#uoAOwh)olh{jbzJm*vi@ z2q)^y7`Pa5;Dnz26<jAYiMS|EH<V0EsT@39gJ@q)Yzk_jRtfi7RHgi`J<?40mev?Z zXImv24_dxdTDHA$=%R1Sq+}o>c!|Ud-QY~>ZA+uUMr!6kH0%GFu6b)11>&y6?_|b9 zJD6#?)(CnrNO{@>KIuyl>x5!v+;6w{YMD~cO%h&b(lieNh`^Ze9J&r&8r%!o`Tw?h zp?28^iY&9lt2p4>UMD}e#RD3)7FrO?(KtuVypr%5UDKterrvD7q+aotz0N*#8m`yI z^=xSEBgEbp2kGJ-3>gn=^HeYLB|rnOSaez@_a6Jk=RBi(DgvE-#_ZH6Ks!;xP_=)R zSt3TYo@6;tFzwUZO;yMJtlZEggu2KUv6L>iai6W}mSbYphKjjLg#|A`aJ2DQ<#?r^ zZ1BZEDcqU~chvrsHLJjEFnQqj)<`B?`;d1{*@+fT)UMxmWb&K&FfVIkgiEdhgyO=u zHFve+t#GG1VJ;8aC3ZR`jGU3_jYP|b;eQ^ubj9)E41q~Ug@p+{p=!wz-Tc*i{{5=| z`y?p^xWM+qH&>PtYG8bc@Q%Rr8YaxxQLpzZ+wMnF?;=>T7lfsoB~7?gP}oZ=B^fo` z>2NwgmqHLLS@ODXhaO`BouqMh96NC-#}M~^s6iY`k0HngX`EheISuJ$0_A)eKqdr` zb?9@VX>9*`u7x-;hO_D0bkfegtOGdK8Py|wdym0vr&z^$rGE5w>+eyp=)Afl4V5hI zg7l}+CxygYLyeyw&h<J`MTqqfLjXy+KKz`Kcn|;x<kPQ&uqC+nFtqfaaO>_w??%V0 z9?;dRKX=hhUBt!yi3~{jXpKz4BiH}zR48SMKN%!8*JiEEC&7_XDy#GF8XQ~QRbJ=} zN+PovzW7h9{oNBrb_=>Q?G9IOgnPswSJ@dv*dDB;*wICJCPa3q#>wbo=Rd#;I~v#i ztq3_Zif$B!yC>{Lc*p$NS0J9O2*)I>|I)JsbTe)A45HD|Du0*K7+#Q6O7{BKcJ;IN zB)m$)NUE5QSYgRW<MS0;S&)b0)iklfkPc-wO1)&#L(t&ak#_>}&>L>gs6q_7<Q~h| z(0ez@7FP;qkK%NN2c*{jwl)^-y!oCXpUXV~#N|#Nab>@e+O&4Ip4FwxyCXR=j~r6% z4!OoA_Uz~U(T6O_Fcmg`t&etAgE!-TX%6Zm&=1m7d<jxnbrKVadO=US3G@QwC|dVu z3lD*vX@ZPf^qN8p_O1d<-~xU_EYy>3tFy(a7c`Vr*1Md1%Tk2G*P4YDV5Iwl+S@9y zKu)$}=*aw+e%rr4O}z#LT<tP#*ZNJeV%t8#zdag6E5l<7KmO><zzgCRWCw|Vgxohi z+5L?$Yjnxq%9?N-cR30cC@S&r^I+SMY*G1`?>75EZZNuBSS;6Tw?H9@U(0JH&zP*? zRos*aca;A))5(izcm<!bRtVj?IX_hOCUr&uw$YH~9H`I~H;DeYAw)XU6qrYY2W2HE zjO;C3{3b=bR@zhHYQ)`+Ji}1M4Pc$86z1|^p@re1rR(f^r7C6b8~d@=>jvveHP}Yz zASH&8ElcxV18Lmt_ZF~v_Zw0Lj0I-J#%XN48#gROi4D$v-U}kMWv%4249#W=VY;*N zquPvuHSW8|<~R2r3w&?Ox`|;OG;@a2ra8jrd2AZj;5IiYyVmUgYE92-UCC9xzr#=I z+}ZqH;9LPNvoO(ySbz7~jMh@c5K;G~m7j?rShwGCf^0G2f*VXLW3)dzgdu<Z2TPt! z(7xOEoK-(jC8E2s&M|R}{gkXdir`>fWG+KVOfEd1OZ9lnS(qL2k-=E><I%EoRz&Q3 z22;IX^B;$V#ZEPwj)|h~X?`A#(B)yGlI4F1r&l*HB_59QP`BL3SNPZxFO_4TL4EKi zyxfG!^O)2WQ@sh7S%N|+iA^CCW3JH5__D?q>7j5U(Bu@AiP!tR{pm=<-Lp{W{yc(K z*3XSB!47I=+0geWod$W4yK?OQ&RE*zGe8?^S6Wpx<JdNU{;mlnP&Hqapu*u|e)aBZ zolwjne|A%y-CqLaCgx*6u57nq+<6|n7^&)8i4|g}aPAO+Y)@k*z?;zmwn^d3>O?Y= zJ_rFb1gU&IPiRPsbAb=%WI0m!jtQ1oDII}v9vA<FH)b`xUeWa1A3XJWKH`WhZW@US zu9^!Md&$~-8Wp7B$JD$NzP9^)RTnmAAtw5Y3Ao>9H?%LNv|QZOuBTazOd_n10_R(~ zymdZ=d~_OL5F{?wDtlwjg2Aj%Z}DDZSuPZL%ux4FWnzCP>-c{48X0KZcJ%Mzcr@n* zJS{cI7ZEt#)UQR-(Wl-@WO9;#pIS<5Mq>;(kILG@_MVS(>7_RzY$g6V4s__-57d<M zX*u6~lO|EO{S^DN$g*J6xMMc3q<S5fCbBy4sqgfcobIjI8?EC-zfRA-iFJSa)iGKy zcq%;&W0=+g1!#Nkq}-vikcrbyWODY~tna@fvD}&7ug@b9bz^XSM5x8Sh-o}0ME=j{ zX_1$NW=%oA^w^z~$K#J#IDPqa149xCg1kjz_kxFI+K#04`xTel8&jH)k^{z)-kODP z`&C11BVvyIHWKcLrupJegG6V;7+SrmH+R!!bior1VymFMrjeWt+*DA}Im^q9*Rny! zy;{qQ7>99-4(4e`#KPAwF$?Fkm*H~WOpfF0>m!l9?TP*6@|w<>6VA@?g<6~7k1^M{ z_D;>lFY1`m0oMt?eIwVt`o78b)j}R=OMHwH_jarsYImMk_${h=zcZmpje<CBf}nOW zg_`W$!t1Reu%mE^qF5&Ht%%@~Ha-$YNunL+&sn!Tw!nbV(ycFPdUFztIgO4C+>aHr z=;rc?%_WFSph|nlAJUwbdX2q7ul5dvTF~xdltUqOmn3?(wg>NmmDL3OWAWEZ2&a0n zlSZ?tCnO{m(nCF`{J#V0spVM!X2JE}e_6$s=8eUS9;^U})<9;lWpTi?c%t)KlMNTM z(*m8XyJb8u+6d4oUN0GON&kfz^DQhhJS~F0WyQipJhh-1OYhe^?sD$x?V=ugN#Kws z?w%y`@e1F3?H0FgjhHRwc|4mb9h(?^AkMH?Ns<jW*T7ADp-`{CkszrdG0(R_qc6^t z&?R#z(}GSjSj2YXe$tvn8toGa*6L~jBI;Ruv~NPO4Oi)Xx?Uv$Km{Vv`!=#SdOYoS zE(3RGAdRiE@+Apv_QX0d##x#)x(RX4(rauq7Iw_D5o`&{TC^^EJlrq>b1w_1Hz5=7 z2gvG&y>=<gJpQFE?d+~hJmwPsC#T<oKy%)V&laMe-5|UXs<$dkn0;YO-MXYcl2A8@ zKHKV*@JUcQlB=h@O>FcN`6bX|G<Tjut06;&Ghw8ivGbb?UxWBDfj^7S<K;h(M9bGp zJ~ez!d=WqV!X?9<W>$=?6a;0gMuo0bLOBEV^g&wUMk^CE^3k01`~BX?5UF~yL;M_0 zSdVMoS1?|kXtcH`Nb3+RRez94Bje1Tpb^uZFwvz%BLrqiZg*l#@X0rPj^pRnrrwK( z)+P5=SH%~{3HI7V7`kk(TuNKzAhXAmgaB>Nu{7a_QEL!8E<b8CO)4_;sFQ2$11VlH zk~uN@oF9W{#&P6a%8I%SCX`*0$3^n%W1}ut>*vrEQHAK85NMqo8lAlW?ih5yC3`Ak z=_crs{~1%guM-WJ%)gmo6OTQ<as0EYw<m^wex;5EL=1EJ351_*KUh-_NC<=5_qKL2 z?0#>h@dt~JK$zy+BWOw>f<};7t~D%{2Kj129B7D}deG~CdTDKiE54W{mApz7`n)9D zTS8_h#w*Up*<bQU(!!1Pnd0zhZt!`COJxilxh)`m1t*S!#9pw-6BoS`y?VAd1Q|km zjGN$|kCev^Kiyoq)U=qC<t*&6`>B>)BiwTrw?7*7StrS|y=m>Wo{$bCnh`Qzf){M{ zPJp<Bp-x%ABez|sjw<HWY8JH#=nmaS0Gid<&ch=HPZpC5qqqeAwaF%BM5`X7yM#Jh z1e+N5$B3vdVNy6q;DvDS+CQ2sh-N%PDyPRRo=%wR0!Zqm$=cIOw`((G_ZLGD&5~>Z zz>jcDk{v)d8NMc!<*1s>04euoNb<cQL<$sQvyjZjN(<?#B{m>)ToZspDpfHG8$aBI zJKV(BI@Pl6&N*FU_NB6FYQ1nz)ZHKU8+A;0?jA-7kQ+<j6ppMT=izEuLDiN3>8Aac z9=ITBHg-G2JXSyr=6bWq%S3odX`DC{G&pXdGN0>`09hw6#q0-NWvg`>C)$h%`#Fx& zPF_vQyXxNbSOIMQ3Xip7KelLE`>4RC``#1hlh<%<k3D#A^o&VA!0BhTl6Y3^#hU<= zLoR3TLLT_j3)ULU&er#0_no_)OV5UobD&t#%+O8W^B{%i#l7<tvQ52t?+U_xeq)!= z`M^Me4$gB_-o%K;v`|06Z}xb>_bk1ux7n*P1@j>9hF(wapEa#f{Q!GwCO=Q**($Sq z)y469_AJjG+jdWonX%6ZN7^LBUR3dDRdlLX%}%iC-_bR@1Y~-JS6`*$5r6(&vb70r zM?ur^Wy3*mMu2nvfB4F39$2y&)4kfq;H7B%ANlpk!9C~v_!D)Ccm+<R6KvWRs{Rvu zZ#X~|Rij9gQ>$oKi+j-pp7Eviwi_Uo8COtym%2li_c|(zCyENLR4QRahE)Gn5JW4U zFH-ImAPfKb87$0JZ4GwPo^n1t4?>5ju5hhJiG4y&gnq-|=L7?wlK2207I3JEVNKss z1)pyFXqW@b=@xfg0FUnXlZy1Y2kYmyMqNHOC!ot0m2SKL1;BICPb_$JC#hn4>?y#G zWW0&lhYqBz(K!!xMD*TQ5UT4x+>}%2H(w*~`HHGDX^Q`MvN+qO{J$Kq!}?2`OO}5m z36wh@sKO^}r?{Q_?2aMtezjhXOfJ1B`$d*=(w3=dz}F7`{sznk<ZvrH(yq>>1D)6R zR#_w*CsnN1_x`X*tgNa$UO(EWSIz)O%XgMK=~_F#Fk38GwOlXWeHkICS5Je_>9$5e zoDx@wB6#_LeBuKq?HJ;#7E1GVvUn%a^xW&pYD~&p6<?<q>b0^|k2y~rgs0Q(fYh<% zaaPs2<Gnfe?r`T|DRV?iTO^XWH*lJz#8q>HCZ|Q~Uz7z7HKVx^uXHrEH~YgNZeX!2 z^By$|*ag+??*YA^mq34*moUqpmoUF~J%7>Ng5|Wdjh%@fF8{}$^evq2+aZaPwnr&N z^{aL5a2>T`WU3BU4^bqX;zF47jhJY*?L=}oKnE3_VzW0km)q(ww-;lEClA*ynXiv2 z=0d-MTKX@iL|D8z^VLBu>bx59Zj@H)E`!C$=%C7Z|25Iz$2-di$E9a6FMdaK3r<Lb zeuz&JEHZj3?wp%Yr75N<$R7I0IQEO)MYU7-oyNMO2y=4gz0c?{1oEV0ihxZhU70l} zvt@2#-GL`nxQ0UM8$HoSv%A9iuTE+h{(cS(J>Aeb`4t-RopRm&?_J=~P&VTCe@q_j zKb_8A2N{JUz8itJI~kAm7+3@91t;pwe`dor6Hvi9yXjVv*Og9&v+u}v@@an?I!`}= z_38Y_ccvk=n!|NDUsCU{%vsOnTsG5=EThgFDG@FS!QZ;F4La>u>uS^WZl9JU5O>mE zExAVkR_k7^u~5u9MN(Q@n5lx(bh2dY?GP9cN*lFymUfLIdu<%MkrTRF@{G&lvXd{3 z?hWW+Zx?Go6ifK^u}KQ$BO*W{!AaYN10wIwqybpn9?IO9Oc9>QkB?ACt(<_-=T6m< z6OVUJ<VqdCO4@*=@Pd&`1KtuQ=iq+Ri~va@2BBYRUZQb>Z0Ho@?(o)m%_n7UBGVf; zlw%qf9fi*dzuMF5tRawZTs}d4NGq{JPy-6&L&_&|l%zmYX!Co$(y{unWkdQnpZwzb zI<$Zf=pU$k;YYap4*AXPBIA-9D*iEte5VZAG3{XL@3Fef5~Wf~x{Vcm&fn#Xe<z_k zF?Z)ajmETVI?LR=McP5dM3%g9_9h2`P}X@5u@BN)11{FI@{@(>fm8R(sG}Q?xk@Lv z>(J8`gdySb2<RK)Brh@P@H7|wiomo(h=t0RQod4u{qMFYr%eMR*J3HFO#=k`Ot9tq zc(W5h<agXzH2(f+8n{*0zDN>syK@PuIG#gFDI#lcWEP}HSiT{Dg@&X@RQ7dDWun!v z9U^#ARou@0fK8oI&W1TK1^DM+ZS2O29H{fYdrknQV>G8Wr_6aFU|axOyfDMzcuA(y zA%-lG1U7cs??h&BPDSg;bw0S!?e{H>Q?l()dz<?C-rV0YWW6Pw=OyZ6uodf}=;Te- zrHT`IUQ1`jCmL|$w48IkezIls4<h-99pP&Q?g&qeU_uQzDe61@U9Avi#m*Ja^vL%@ zofLmtFd{ikJ0tj4-IPlv$Q0)GZ#zFw8@`Gw9FJ&MUx!*Dd>OWFwuzNXB~J3LWN9ZX z@2{1*!gtP<8<O~N`L|FZYAEtz44Gc-;GES)nu6q~1YIMdoejtbz-tuby}y;0SU-?f z6;?Tuc(5f`z)#}nP%GbXO7f3ElhpJcq&+W0Sy^8b47{?sAHZKpU_dNY(05Am)ScK5 zoO<*~RBQp8(%w0HN8L2DN$s*ul;p>^blN4JXM&Y)bixED4&|j+vjh0^M|37DG_U;z za^m$B61s&@dgosFaD6&_iF^VVR^<TmgmM&0tXGQ$){D3N=!+h?u#JS76oq|8KLCu6 z-E9{_K`L=M*Hz<E&NGRmF8iXKeY4J$RYf?(q_YNlIUr4fnQXAWwI_<3tlQx3@nzW> z;wGBBIk-R)+_e<JfAm;RL`PFH*~x6J;@Tgb-)t^pIu%PhW!xY_2_itb6y%-`nIH|2 z2<(Us{5k5Voen>)m?%rOOK<&mK1H_cqabO9W|(*(oj~UhN)ov6vXeIkYX(?FOJ2?g z`to33bKR?_@&p*OfRzEO9IRLu<r3EuaypnR=3ycQ$#dk+0#>`wFxRUk7A-_{{hc^B z=S!$_yY*P~0AZ&`mWNu-buF&+C~keiv~x>RAYe!@n(hxjTv}UJdet^X@H#x8(3o6O zc#VQzjj7b$3zb6+00mpqfB>idZB%I7D=<@lQt`Onq%D%dm(la9u+9+efyj(|Tr_?a zHFjFAS&WuiHDs-`WC``Zu>Hh)^1-(6-#JU3fRl+=nDyfD!FI^gM5?d1Y|l3D-}_f6 zyA#*qxB|LOb&Au#(jev4k`rmCQ}ngJAOz-_QJdbwJFzVl;I=Yu?2+OC3D1m(wp~|L zR+SW_NFu1GP+sbNWl9k_td7H$*ax{whTJ%8H1tJ8dlOJ~4MoM>aw<8hn}15?nLGX` zqSt>V3s&npIp5yzZIt$VuLiMi2gJ%xkKwih_N{Jrp7$u$29(_HTt^DbH91Q=^#qvb zLOP@_Ry<G`-~ISV^6!A!IW+y`2ski=j7&e-0}dRGotwrL?`XA$d>v^WAYdAF7LBg0 zy*AQ)O1sLFeiHH~ircxyq*L;;)2enO7j-p(X#V7sDH8uWJVqR!{TLjH`R{vd@_8#$ zFCS|_li<Vz#f+?uyh|3nXN%5|qD)Zph*aD*R!wQ#m|WGPJRWf(y}EO4?WIxY=*hs4 zNsj)dv1^+^R=gKKobP}OZz|X6MtbqTpROeJVIP_6ViC|_!w^e{#`rV(`bQc9a6XDM zqGK;@YMbS%p!?T|TH-}samD!j`x>oTMZwt3vx<-V%owJGyvc*Zo0i%jQh?<d0D3>- zW2;1}?ge#_um<z7HA8XK|4P8->w4dQ|Jo<~UhnVWh^FyKQe7#xI75Hz`Wx~Xbom3u zMtaqRwN8x^8?3y@hcmwLGK-(<nkcJWM~J%1PNs9ngFnb->dBX`tbrv^8rYICvlX<{ zb&^za+!Gl#c?@w4Xt#rbNmLjx7E}c$Vbe^vu*L&R5E)c4-;GsDTddfbwlB5nQGg<6 z<RW#+owbGf?j!a?DKAkHU&0l(N-?6Q(da({7ym5ynSSz!N4J5J3C7BIBBSszhszb| z&eJBS2?9#=%$E-3d3hC6vCC#k?&`QlE;jE)1~@lQx8Eh}>LAUK>Hx~T1TW}O;<9rl zv7lt&blVi6)5%<dgGf7l=#&34;ZyWxmDJkTV>7ZtdKz}4GKE?tw)S^b)v*M*Sa0l> zKDXEbJ|8#eWMHjpiao#Z*0)pU7Idj$2uvOBfZWFzo6voytgjF|pf)(>g3vL$z!ztY z%~_u7S8J`nb_2?uqB^fy(894kwND+!mlMFsScgtMXS2?p_wj<gRLVo6wj_Ly`Mu#f z8mdkyv&4_-XC9wCS?j812@}<!t?!`cnbg-SCSUAV??Sq=sp4fguV_5`DZfE!*oVH% zuvu#QNnT&!Q@{lhf3<13(P_CC_SmwEd`xhqv|?qZ!!#uSSNfiyDOp9OQd8izZ||jN zu#~c!UR9kL9`4S$;(Pr)D+gl|eBKlJQ@inXtisLXV)#`%qm~AbjE8rv&P&i?65iWk z#ckvN=_8l0(AK4wQO8jwq_E?y$UKY#9#MSB<}MFcz*$DeC!|Ad+<;z*<U!$xdOA#; zaoqQ0ir6SrG;et%IXhAihdj4DI3ba@@!Huiozt<6qac)oUAb%uEK^`d?rGn~0+&+N zz!_K*AHo_Km$h3r(zYXnqS7Ll>Mc-;5EN1laoX}JDmV{DNf|x;XY+Q~Jn(xMXWhBw zvO*wS0JEbg>})$pi9rb)FDnJMhgE8#W-qr0QPT@KYtv11&z=5@^Z=mkucLPKs0JH9 zp9a3<`AjWfe%Z5MOnpnW$t0l9eo{KdAQ{TeiG-c)lWvS8qRY_;DPc?eiI|~lMO*<L zblxYFy)ByCOG@UB5Lm{D)Y1iklBV~PvX1eV9n_0?+4dEJ%;7t;h2-I&$h#ruY*+jR zG*==qfvD6ExAL7Y2U*?ww1=@p$%trTPi0Yq3HDb*lrWld2=7>y<HCV6Kkjq1q1-rC ziG-b{WFW;5kt?L%HxZ6(jrEWW9XGhRtbZ{>zR|J*9eR&y9<7@MKeZnf?8^vv^oj5& zHO%kA5YCtVB<4`*_Iwxhq=qu=ec%<`f=m{z$`7mAXR2I6NMFsD<6SaOm4hVhl65j+ zivsKWGPR8+u-0@oc8w+D$X`>?6o?e!+-`O>46y&$E(BJVq2s#ltQ%yn0Bb@F<f+fe z_qcpl_8dF9mJZWoQ!0X86L7d3<SeR*)n*Q2>m3*=GVcj5BJy7E;Y~e8J5rU<_{%ry z>MI=v(X5C$<p2w3bJRZ}&AM|lhp{1MPzmu)CT@avu0N3wJ+QIkwCZ4)n2zyYch(Gw zRe)VbMI}t{ArZX5slJ}us8qW^uJp`?HQMWHjL+UX3k99S7mA>-0NtSs<Dh0COScT_ zk@Yy$)3rxjHV*A8a1IJuQh>R6kYzf(lq%a1;y-Z8iLl#j{sKWvPHHD19U1nXYn^Dx z^g>qu=K>iaJA$-MM_~UR_$gU{L<-BGQWP@}`65PpBPV*eBQ85YKp}c}uToA`#&ep# z%E}>5zSlxeB1d}u8=9U=tTJD|6xbfJ%7ch~><Frjo}>DZqa+<@r?AfT?@n6%yTgje z)CK{_zV8C0mC)l+o;LS%{#*CCWYFZ=_n$=*F;|LU1#51e<CR^vdGhPBwU%vB-)C;7 z72a|14IERa=mGrw#0l*N2G>M};1$smQ)oTB3TifKNh(C?=vE?8Buoo3`sE@ps*Ebi z$vuy-lhnP)20QcWxS0ZrKNC2Hc;?9R!S+?rjU{{*F=049MWPT&FbR2spoAS6<a2JI zK~LD?ej=RdsjUpqG#P@tXt4gf0aAx6g6jq1^q0W71wFn@Bt-vyc1{4*a{0f(|LNDA zy{MHcTgwFF6d<fz64}kWwMD+18B!aT0ckAwujFhW!aMh0!2r?hq7AG+Fz7*H0a~y% zy=rE(2pVamTjD~8)}xv_bbB3#`wF6bZOgrRgIon1XoIW^3-)F`Q2(A0^Dk<okta*2 zQv2d;wbz1XE+#zZ6J%9NGl2+M#=y6Wpzc8wnF8V)Y)ITYF|O959^g(L!)(f}qpQg< zKgH40-w7}Uf#v5YRl7jE-=nDuV?y{&=G@D5(Du9fPeR(|xdlCWCh{%{60f<XV|?HP zJSQm(5k;`tHOAqh36hE&VvnxUK3`GbAHLexbszYT7dVob3GlBs(e~mId<ox^sf98` zWWw|Xj$|yY8#C?a>rPU5ke{!ip$)>+bVvn1+8Qm=xg%TqK)z|Es}Oc9u&jvEZc#;B zNvN{w2x<OLn@lyk+g+n2-WyK)vqg1M#{-rvhm_g9%%R7cDN6@vrJw76?v2#lMp?94 zZzf@5H4w#gl}jKFfICS;bA>ePidcE!+XC$1j$ka>m&m(|*kkY}P}clW&gZ?$0V`Mb zx40C3L9-fp1ss@z26}gnZM1EP7pmXefIevFONTyxv+sdQwJ(?T4$JXQXRt|t84B$9 z`|LPp<v`j`1UJ%`juYB?^evVTxJJ(dS%cnPEGz79GV)4SSOzBG%__4bwHbS1>hb?+ zm&b<9AuRL!lnK%5pL5y_uk}8E`ta+}^q%oJ*S)U%s)8nD@Dla=I^K_x4yuf%>Zigw z)}D~QDy#+}Ja>oNay-WeR`tze?wEx{5@!y<H|zrq5!Sn3ZGpJEmYP8visZ~IwIvLK z<_<5dVcnP>MA+Z2l1yD&mJYIkWgg?6aZc5FLrrX*V{HS0sLb$0J!L}4El64V2<>=i z$>I_vgZiWCKXO%N&5)Sv{*N53lSIE97-FujWytD)k3i(V?a*yGx~EYD>j7zy1WlIr za>n*_@?aa1OX%q!R7BWKv=wVm0cgu1-9(>Z1`jSd8!f603<qP>Li9~|BKEABAPtCO z;-4bR48%(s?~wiJoHJ@kIy!i=E_M#FP}er^&i^k;7YG8@0h_PxlhNBT=~Di634~(^ zLXpW^+h%Kznm#c(qw9Y<LjVVdsV_wuBJ?J$8zla9P)!^XY6UJtWn@#zgJA?tKi*k> zlo=CauzWTlSw^k0JnF7;BoRs=<v~N!#RO<30g)-<gZVH=DGPMM3_wK{hekYO%mHz3 z$^=;M{pACvSHT3kq49;@jfFoWaeDH}MA0sVSx|b17yPx1Qd@qco_q;RM}Sg%Z9gx8 zunz$qg5zlO_hUYpcYHU98Mrf!Syg*}ciC+1304?9*OM;F?E}T)5p`M3cR)cw0!7Z! zIo@~6wU9~anXNeGBG}CT+=YCv&q+_l(uHHW5@fFkV?w-aS)&z+))nO_ia1Y#g}pgG zengL-I37HEHM&t5L45~vmfo8c?7RqC8*r`VV-#6@(^()T_5nrE7ljwwac`iQENj!D zSEw)E3iu0Vl3!h;yf-0UsK1GsN)zOqL>j(Ac3c0G=Qm|};ir`nVHE<)3aCN*a&KVJ zo7i0pG6~mAezMZBw?g&#hZnnaGQ6g|f#C%;)H&*Q9)s{FaIV(2iBClB^WAfhIaw74 zvLDS1>Bitgv$ta+GLQL;$c+ix!Mg^_^mJ%(Y6eE{w|*=O0xIzw+HH@peBEH_+#9_~ z<qkRPOJDL|>%{i(v_4OdJ@ev$hFu@@1Z6}tKzTE`B!8Yh?5BL0qf`cc?$0mk;iR5d z&R*caBK6i^bU`oFJff~0OSE)ghb^k2J1%6NTe~q*loKmpw#*o)rEu&%!3%QbMTep9 zpMRRxeg1ZUoDbuYwHt+GRQdAwUk-u`tPk?q%wJi)jcT+_CdI=<`Nq~6e}4u?{bzD6 z>#qa5Q$UbID<QT_$x~h4=nks+a^YIz^S%cFrQSqynSCCV&Her@zjZv>>y0vhdIzn= ziG+bU>aENt^v|1!y_R9LCMwS^a44hjl0~aUkl3S{6}l&-iUtQ|3P(Tj6CW&*^0 z!f*juJWc7Mw<i7au`>JSf!ODLT{EhR)KE-P<g-aK?Q&geP+v5a&3ZfiXA#xluq^Gn z59!f`<m)l&jtv%D;Z!ZWY-Qoz@diTtqWeTTNuX$7Z_%yh8?xB{5d|@(5$Ht9he@sR zdXDc=EK$xM;isai*kcL^@9kw<4ux3>I5cQTOq{5V9{o@X`gyTaPlV~Hjh^=@pp+(5 z&?J8p=d-}pbbG!2W#vsD41Tl$r<@Ec6>wle=@+~13!3r);a8v=8HL_&CcHB;o6@03 zCXdz&5=62@92K~>a&E_R<q^l5G@<(>FMlkAujge;n-hYsHM~X3(L1Bi6@L1I0A_ra zEPC64i;dcs;p+o8;jy_Gq<>+c@&A#X1N#fILqf|F+RY83bI>~r+Z3rRn5-h~!aVeq z9g;!3L6Hh%bHKh_V3+#N9hq8jSg9&HB<_kgQ{zVO(Qo1fh|6B2$LArsKtr7tLdMH? z0^6e{QR$iWYuS8ri&vH}qXvaEv1cb~5))4YF^b!-*AZ!B8!_!zy)%T`E7&u_g<A4p zE_6e?+#35^bT%eMb#@O2NcP@o#Mn*zW!v~L<_juw0!_zqIz`kOnWMfWO~;;GPleUN z!*aD+Ns{SQ_!V*!!ZUp)4ZBCxj?!)G4V(It4?z99;LX!%d~*U0i6(J_+z_@-f9Q>i zz@XtQ4!+gFXde!qg3JMUC<^?fxQ-h-n4j)(*l)zS<(^s%WKKm-jzEypNvv0RY83fO zW|+}gX7gJ3w6kbn`^lStN#u1l>img7hkc-5K-=k+ke-<Y*o(~3W8!m^6K&<$YLmI1 zZR=Qt#C!fzsk2PW8|PI~5801ClX>@@?M*s6H?Ez>HX?NQn||Q8%|}mlGAKsy3etYL zWm{tljN9R3s`-~5@wH!aQ?9?#)WH<1(^HZ07@~O53(4D?{dd{2xB40Xw|R20F;=ES zI|9Fi_Au3^q!f=V_J8)=KJeZvmDgN}7`Kgn-hIDEVnYvT=^zC26F7gOdUIk(ZdVK% za#d>~;(PDwdOM(O+*~k0+lmP_s{ov%P9h#$KxheUossHr_ByW6@$5At&RZEw)!;8W zPaTOIV?Csz^DrYTIssSqxnV^bNW*ffee>g+CB$*jyAt+3<CRT_JzJj=uCvof-Ap)t z^Yw`1mFkSD(Q_S=|5L2>c5seVZA}89wvf+;&cV9BJ3a!LPW19^(030Bi1YenHDF&| z$Qz-xTBLMwUeekVbW~TkbkGuN55q#@+#WqD!d@p~e1W_t{ZS!N<iA4+M*<keL-&~| zQq<I2Vu7fpvnkPjse-&S)XA|;&MK4a=MeLqle?TW0q>IDP4I<}hwrrne4N?XIpKi# zS3RJb#bl3d9~E*Uwis+~Z^s;`nDXU|7C{F{uUHVWNx))x++q^K^8Q-qNJQ@R_*j!+ zaHgC7j+KNIf+3*cFEvBHb3nJY0qf<-ls|oi%9q~LK5&svg!<&S<sb?-DbMj9_qzo_ zzL=zBV7g|CBrc@lT)Sbr+^Y47XtAUPy+Xn~cIHd3t4|{A?AL`a0cGO0EXJ3Ll$nS3 z@w#o9g!X9j{&cnrA0Hq`@}E6gDWbwrU7(B0utZN{mx>Cn#lhnSIu|2Wl3_`tu`Nf1 zv?0P+TnN=RAJ(>ZANdHkU&swX0nk+!z>oAqCKI8Y1$z%J&VQFSdj7vlJ`L>husHLd z<;y6V-h(t@y*@m6Qf);f4s{puzkTim@<5KUn*XWe15b=`+o(^*kz)+V1hd2A`c?`E z-o5mz?f8Ob=Jci8gAoon?cBhf^a0&mShoP>8WCY>qx>$zmwtRZS}t<<YxK<w!o-U{ zE~)*UtC<uijQ#F5I9q1_>=7yWVv@ykMf8RTB$fn0y^z>g<}M(_2E4k`%3ZV{+s=xp zp{vyKUU>^6x^I&+r2OGG*+}_fW)e-xW*4H&4vlRMcNbctVOk}Ih_1M0v57#G)1{NH z(Y9D%F0rf6xlOXVaCZD6Y^8L$=}lGYNyygzV+qmv!aeslIj(D}!{6fFF^=!}RKg<W zr`6Y?PvopCN@%%|?jhb2^xcr2H+PmR-m!L!ovenUO7ttx_c7(l8>bVSXvf_rEf$L` zWbLHbHPrxQ)2R2VL~^r){@A%F+iK57<|>j3E6?8>V><sVY1Vma1W~pNq`91fS_>ul zyCSSxaCK}!{2UJ4eTrNboi_h^O8<|nZ;xlX{r|5NLZlojhmpIaVo8OtRc@(U5gjCB z5xL80tPHa)Bubf%!dPdwLso=oY&k{IR*5CE&2bnT#%9O&cb~`O_uucIU3<SD@5lS_ zx~}VWcs^g(>w4-m1d(5yK~IZtdq{5YDJ9<Ny+f#WY8jia)jSk^!LRBbub`XZ!@up_ z;_>{pL9pLlX9Qc4KNbIRC#(RYS5GaK=<x=xj(q87@`*nh-~}=TKfK`jf4pJFaYy(! z|6f7Xah%~7yp8mE-WeXQS@N)#vw-xa{Gy$4d<)FD_IH-LGKlhE_rMN?d9=64VV;*~ zy;T+Yn#bxt?NlTD7*tiZLGshjM7%novE{WJaa3%nKc4_CoNbO6sZOulj--lLf4S@2 zGmC#~%T|2pdB4;?s!6Am{>?H$MDFhY@;h~8BADRUAml#q`?83W#`EPX<7G<s(i0}; z!F~$q6EE3qx3vyK=zvY6lS;-FcamE{n~cbBSe*Te*8kH<gGSP~5eHPEyBBPR&_xpo z2%jn+nxh~}z`6LS7I+BWG#KQVs_FqNT-629uHSZx=eDDUz?t%pnKtp`k>LlR82Dus zMny=5chmkh<RSN`(VZS}P@i(;r<J+?GzneTUoC^Xzxx;0UiX3f+Zk6GjBsp!ys{v; zt;4W@*-9I2S0Xtxa2<Yupjf%<sI>4J=Y=8&r{OT9dLD@$M8X{zl4jIRm44<R7zr8w z@@KHDi*!wBmX5sQ>^af+p?H2S>eeP^jpkK;r37=zKn{6^Z0-XXt#lr2!nvyX+wu?$ zTh+WyHWb72Ue6rJDE5N2alVOdYd7*YyQm?U%5`zM|MIrITBIyFKkD=b?fh&?TzKmP z%YwR;DFp`;wgK<dp0S@A1Ckjg(5$iO2zsnCXW8FmUhkQ$=J|G~yJY-swUO`BU>==F zn|XM=z2inVX^w#gX(t$RZ{1!Xh??GWu!n#Kz9FufG(#IiqxQw|WT$`Nm&MNQYCC;m zB8_Qq8$IENggWPvA9-I^2i}2}$_A|9rk6_<aZuCY#6yFscsGse|5~ArB*S5>8bS~u z4v<pxr3VI2#jz9L(89RP3(E{y<BT1_4@F8Jl&rZee6%2(co=T6bv1+WZMTOoAb#NB zP1{R%3j9zI-#bJ*)}dulUdKVGZo>-@&)~wCkCAd)I+JbdiOXI`m`^h(^=qgG-(z&P z)crzKv1L&cu#b}bb+gCDq7B`N0_;97s-+h6Q#dVuJo-nK-Dm8R@#rMoyl-~6FRhKY ziW0+TCmX9$>1TYw!%|bDdB^d}WB4hLXW?DUmnwpAdp56D*h$|%!T8*GO%m{N(LlXl zU#3BABT%C1kMeWOtBoODyOM-Vd9S+ClrHMuHL|rOq`<Wy)hi8=XA}#acpKPmyt>TH z_IHpmG!yqmmbjM!F&9$pm9bjP-y=;ccL{xRm{$hiUMcvmU!;(|;Cs$*WRx{3*!$n` z%S#Pt2RdlaP5w~!Ynr*=ALgY4oDw~1wO1PbCuf>PfXB>n+~Om7;l#a6H4HX>0KrCT zw=47JoVy8wuKNxcq<n?>4Y;=Z?RH7pZlx#(&JlgMDSfGTH<hW~z!<_;&FZ&3QYx+W z7xx<P=)l1#U2YYdQ$`ap5Rh78qx<iVxHJe7a}hIr0`Uj)@5s?D3elf}_Ujr20ykJ3 zf1(}UkYhU-?{d`;G8li}fPOh-@7?97h2Tff1gs{#7(0UXT3%!S_3<|wuzRPJG@cmy zFO1{nOph#i5pFHuc+RQzC!%qDs@b>xSZo{e<5G$C1H2yLJV$QEGArkA3vh=`C_ATs zz0DULu^T1mXC2EYQ)DmI5iQU@yY|e7cxQC+GF-!cCU!&+gt*;4w6Z|ZYzL=&$79+G z)wi3x(Q`%m-!8_Uk(!KN4605y0jzc<<JB%MDZ>dv`ue|^ePT`X&}1yo9=W^KbqI4I z<-b$9Chx(Wdq((1js<?EBUdjV9_Cbrw!`w)w)Z)NJ9Mheys2Y>ja&8~9d&e2q0?Ts z|5cltO1>P01Vi1jFO=`#`E8-|QhL>DEqo%W^aKml(KG9AyRN=?H(96sTdj7(wuFaj zu)*5lYeue3wTH`4Gq3ZuSzr&0ZP$LXhI=Pcl>Elni8=Uj;OEcEN>ju3lPjW-pm6ud z)=wh@_)hV4pGan&MkqS_xBRf8(O&yA?$IK_k2>BXnE$(AqA9MVc2$Derzz^Cp{(hl z<A{6h%S%N@)ZC%{w-vPDeim{2ddZ1*ROpf*_q4lCy8PUjC*01`L3!bj{y(;*y(I;D zHgUo4yZ~?5k#~(lC$`3&eb?ym*Lvr^Pbtie<)sp>0-49G(*R*g(oFLx>#Wsl5`^}w z9}%A)gH{TUC#nn{wxYh^lJx74u2sSRPOo&!KKP2zXu;VU_qQuj#Y<@&oeHEA0PFVa zdk`b6>m`W+D!3?cLM^*3LF)4}=F>M5WeSP9k1=a}QE@w?94b)bJxk<O3ElSOC++ri zYCJ7Cg4-m*jfA%-ZPZxznyA~rh%uc}w+T1k`m1}~mDV55Haw#6Hg+WvzVx81sh{}b z`N9r*$+=;59I{Bp(D2L9BNv@7v_rF&vGEDmdutf<=c?0vaUox#f%R~HES>lu#ndfn z-#qOG_%Aii<4{VDjxQeM1&!owaxw9vmARK*#~U(q+8Zh^=SBI96rHJkhs!|^eM;d& z6ToL`@#-rLZUoMH@1+Z`6hYPcH;3G)nYSdd=t|f`HXcz;yui{`>M(N40zfKKTP@cQ z$s=+7A9mnI^3ru5yQ-%^>3nkBjoy-A{jCE3lOlzcqVU7D$%#w;?ailiksl>);kWs# zeXrA=qf|bycy$c6%5puE`Xr@!rxm`lm;3~){I32Ki6;4)uu?t~e9by;J$Zeuh*g^d zI^78aCGo;g!^Pd>CJ7qTPdf|U8E>Qw{u3-J{8$q_q{{Pa(;)hMyKps7k}i1yod@+h z6$Fmd&Ipn*ls#`HCLJOhqwyX6=u6Xu{LR5aWlzQ>e)G3a>jG{@|0#Q#&Vzs0lsy3H z_<ieXl-XBiWHTb=QFm$>`zQ<g9y|<ZkIo2TBQ4^A(6}CA^cD4VW1qw{tmU1RBqhu3 zMqYesere~Oq<`_~##&{Uc);X<V*|LJQNM{GP@1b-Z9*I{vNB<GH+jXhPpY${WMfRp z$Cp_+^>5h5EM;sXk-dpAD3DJ?f0bV2@n2y$CfpbahIE4zbKcZ+X`VMhUs_cHR6)cT zcnf9VWV^iKR26@??6)&|6=9Y-@WEsv;m&OFy0|b0Tz!0h2bWl`;IxV)dh!!5pkKe6 zh_rJTYcRdnW50<Fb^$?}bhr3tv=(mvc>*s?t}29%DBN>XJ7h0QL6_K<5@@=+fXa|X z{wcOdJcE7g=PJ3^fo4}JXexpT9^3@<2;$dHewNzm&Hmn39eNX*1w>;0<nc~QpgFP+ zRc<qW-6Gcp>K;<=JK42iU1am6r7OfWopfH+iZZ#%axgn&E-S?%eYTBW$NdeN2{bVu z%q|Jzo*0L$U{KQHcg)I77g1|i4#kq?DR518xaEJFv{s=LRe3$T=m0@@MPM5QeMjTb z__kiEo_5g`eU0p9+XC-|Ux&NzK`j&rW^xbL!&dZXT;l1T%WxV(?*HFkA4o%2-~rzQ z{44dvK~QOupXi`9-!^#5Pksp8N^l)<K(2}*5Og5L+e>GLhPq0D*w6qCMkTu}>3y#g z3i-ZQ^oe+SQ-h*bC2I(LzDeuEd{JMgJ1%MowTnEm*S3$d8c`v?`nNKK;~fT;RU7nj zY!Dxny613C;{AiORjSJ?m_ZY1lI-)%t0lL#!_MJ2{K_2S>yi)+hVT&)<wiV=E0a$T zmQTWID+9a26%k7QiyauWaZ-OW;`Xg&9k<GBP`a?5TUb)}lGr@dvp|c((aQ$m^Ud(b zC8k<|JzJqqOZpOTl$3;6s7GB?Kkkv)9A_p0>JIOJCx}?!UEbHf-(JiM!tmX@VgldG z`mg2>goX<p)m&0l^`jc?f|BfAF~cA<0M1?0$$s19@!j1ZO0u_f^S@&JH-6F<moO%H zWt0fJrj{>S7f?lOTr`_;XKkOWK#sAMRwEASa_&6GDOUErJNY{9U9D2iQP)BuvFI8B z?wajSMG_M=)rLsv;-xxHh|Q0{I-UakzO}<rdlRKzH2n0fr#yoy%)M1*@=}LrI5FJ^ z1-<VBsfDE3FJI%BkscrLixd$GvJ>NO^w_b3XFPrpI5BVEm#E(~xXNjf_SnbT9Y;@8 zrTn{T#-c5?>M2gJ>5KH5B%67P?X3v+E)YKmdsK@PGZKOaL)+!An~%Pv8S%~>cuKsK zbUxQn;hI3A0Dp)j3_Ahd#iJh<7o%!KR;8q!u!_sd!c}pKuc{@3L%++y%_wIbxYvZt z8c9Q2XAzV4TRs>cbhDeyad18N!`Gf;7L&!hE`QOpy+TW1Qz$B=Ihmyyk=GoM%N8XP z7kZhzn$nFXR1xj=mx|sR&#&j(fo?=QAgP?!&s=;r0mA;5f2*#Wkw69~83yJgQg(RA z*lENR-E(KZ*TRW0#o7V5h)S2t!ekFO&&6ZU(dDL1<t1Pp%8+_nKl%jK`*MSNt$it| zMp=~P^iAYh5ARKU(`fNtSv1Z4AiuL4dbwzJPd)tfdKfPETCJqljj@k}d?)EGzHxd8 zJ)<U=cV-q_A>%k%Td@--<kAfkgBQ!YMF$Ni23xy#BUQC>E5Z3k8_^{0Bem#v{SIsS zwl!|*1QOR&O#Wh`8roV-TT{@<7@cxC{XTRYDGb(5&`?KTe%!sn*&~W`Kd><}_{gX~ z<Z%rBtRZpE_@@LUS$V7HC^_-ttECrTxS>DBHkzR(dg{%*+sO~Lsd-tLZ=Xw|kw*Mr zs^rfPczxqU%4#!|fbJ-<iLn6wBJbbJ+u(PZbAVVmiAtM6B!N5sK|n7MP?waUm1_w2 zy8p40X=b_7950oozj?jGJ_&ASa7(V~G;{uhSia94>Vsv!hDV4g944Wmk@Ivws9_Q| z^gAO;xW6Ps?P(^ul1oNk(R{mII3am7ACD;hBcB#OwWS3HK6+KF`;!viGHY%-KiUGS z;|4YBhSH_P-O1;K*j2>A8n(sxmXuypcjhT!Qq@@6M+tt2>glZ*KTB|)wN2$*vZnst zLielx9Th2|-8-MFXyB@EO21B^U2UnAUreg*Os(#KIGV)=#*QiYCTT`W&YP12;lJ-` z7T$owCnH4>DV#6ak9d<r+rTIm=o<6w8tg|pW@b*WHA&J`&MxEUi8p!B4=&)Y5!}Vf ztdhTR(YswtfI{vWN$<Pln!3jGh+zBA#s@;FHJKvMb>pqc^_Kh6vR?qm;Q{yIXWPJH zEu>(q=_>8$i~;qXx?D*;m4hvFB@W22A-Z`>!6d=2g6w&>OUdlT5)DWF%d8Hm8+L=R z-{3nZ4?`eDz87?SZUN~hhBn~7ibtI@<)<dn=xy&(c%FzUaRKae$^jwaT8?On3QX>W zUy^(A^b2{pRgi6#KL=CZBo?I{bF|zgaCLapB~3XX0eU&VZ3uo6%S<1S%j4I!q~-U> zvCf4mx>|n`94s9rwN*p5TU>h6F6oz&o+XD?)$ZO%U^y5`?pL|rS&GS3T$aDY;ku<8 z@HFtkQJaG6g+hEwo|X{!vU&95u1X<>R{O5uwtUVFsqW<6!yIM9f?YcABoBTtL+#y6 zDL$=0yb*!lssj`3GaYi|-m=gFpeEfX<=ZW2dU%QA&z0DewUo5U1Qp?%<Xd3~)gtX| zp`^JC|CW}y%LWM<wFnM`8aNC=o)4n1IiN)kp4pYwDEaN~Pg8W_du4lvCLPV#mql66 zVr<3XOMh0MPMtMdpmiKq5yVQJk*g*97{bC3OFdr+TX)cJW}Ui)4EmYt`^rmfA8hn1 zn$;4QH0;pL8|qdJe*rE>HRY-eve8;fo!k!T`VQMLt8VsC>TabYgMsSNpK-_*Py#Iv zsNeW`DZZXwE7wvHrm&aa<6Xsf)yM`P^?9o@#zXBK&L-7^Q$MpyBl&~y4A3?aL{eVk z(N2l#8P!6Ah83G@Ek3cmU6PMp08$vQ;kJTJ<f}EfC-QI((Gjm3<9<O`jW^uiXKC+o z$&&Ls`P%5+l(b8u{-0|nmbdkC)_5LlKltMu;tjHat;%_Nl-INLs3bmxPiQQy5!rXF zBa{=R#?txb@wCgI@#n$yFy<htRP@+>A$#D<anqiu%Sj7rka^%sE%+(3yRf9GwH4aW zI8o0%58W8q@*ex9Io;_oXIC=hVWc#Ynj;+<9sEH%hmw|dpIf$7t70P1KR}bSN$rZ} zcD3K-`vZ8Nkl9yU&kYdf!gon`4aBq2zLUb;r5hzs8Sw{{7h>>=_M<?G%x*`X&2uG+ z3T>U_q`&u0tTb6Fy0>wl8WD=3=M3O*w#EE)wLtZGM32hn!~wj)48`2+f&C0<Wa7ed zr$B#G<S-{_Wb1B)=p`ZM(lCf(N_n%!)EDN8n4&VHuMo3_rLrdy?FLH4`9Ob`jY4v^ z7Q>k6z^O-fGG@4fO<ymPzvQ0ay&9t8{QF*W{!6_lXIeJl<S(n0n$gVRMbnj#3%~Ej z=3V9CW*UDi7R+tL3651L%W-)f_uhu>qjnH`OMSKqmVzgex+Vg_n_S*QrVSh@VHRFh z_|R4GL&GEqVRJ%fOLLyaUDdk0EwhMz9AUWxS`f1XC8V0n+kg_;6H0>vxF$`=kg8UQ z($CRd_Eh^lV@}0Th$uT;B{)s|-FVLmkv{hcCo&vOE12bvNxj4HvL1DKe+Pm1C~}!G z_qz1|+K^m?`s@#r;ToiojeTn*Z%4R#T2x-Ms&0dtjA|t;?ItIW?7V=OaU0IEccJy1 zp_;(fC(snJmiX4&ZvPu%xwDw59EP4Wr9<{%2UFKXtZ4>4vR5%aew}|TMzOq}APzkt zi;ik}k10RE{U97Xz2$0#yg{D2X1-~P0@@0kOXoy(#ox#E?JeqUSpausT#`z5lX3Er zJG+zFALw#@@+mJDb*cU>gexV^?VlR&O0suRsx&-~sNi#>O}K%~KMB7dfoy6K0Q<pc zmT*NaV&GuEJK{@th=}5Ol#>1p%$JII2XlE2e4<DkyvT$WQ$x{mdl^5b<-OdnwYHFN zI#`gbK@g}S>cRe>GcL(DWU2WU{f0<jdu!vAtq18}BGjWr`j>8L9mCKMsls%NjzklO z6`NAveI0_ZanTtFow2XI^NgRH(TC`U_iJYV#2z_JNpfpbM>=8m)wFb7&eA&*wePaF zcIlm^$?#tJ$F<}yYNm{xH^3ZhDV#YjY_uLB8gLa54dF@X{5-eKXewM)L$z58^VY=; zDBSrXS(>qUY29*h#C-?}vkr#}ZqFQGX6Yn^qI^pSm;)^#A6!W7)R%Rx`J!C=<Rst5 zG=F-To9%3kW!nTVxCPZPN5nYyo+gNB=f`vhi39#HxPXl<8fzSpDMaGlU*6^`%9Q%f z31;?W#E3}{Vn!vhGcl(CY1-s#y!6*{MyH80-dTNCP2nMR)a`#G6A5`kIJO~SI_*va zVB=sy5JUEid^U2HP}a6v*u@D@4{uX0uvnz=S0Ktd^KO#P;w1>V!(=p2Yee^v+9(UL zl$lGlat23})C?40n<BWd8OmT}$P9(DjSMADj5PsH6jg7tw%-}9>WXmm1r6F=-23J8 zHy;yoGiQSvz0I~G%}foJ(1f>tK$gh3LjYH-B{tg*ts@9Z_toQ#{C~KE_}o!q+)&}Y zVo=a>C;MSse9Qam<@MZ(XqTio63Au9RVOJf9^plimZC!PmK7wsnLrNu<ZpQfH?;32 zgKb)+TTSS24XCdUA?@XPe^tpAqhdnPk&#IEfsf+bUnivQX3ju)jG$m3W%LAz?<#EE z^&qI_t<xB#+{615XsCH}l}C1Ft!o*B?sQ@$hZ7!h^BePF<<m}^190etj&So=w0oKW zOMpuocnz5A;RG2HQjMov^={shz8<Lv!t(SSnWp`?3H={sy%g|K9PXU|FLc4er2{di zm!mJJzrD1Z8rE5xT#Ffsi7(<&V&IY=W~uaGP7Y;lTwPCN6XzSdax!Di%w|Z1i*u@W zs#PKXJu6!7lreHDWC<r1iT0mnKTOij11Xd(yk3lRz%&%DJxZ8v(jGkzY+mJy;_OF5 z7as4a^(Y?MSX~XNN%5xdp~!Z~82DDTAyD%4JU@B?jry>ZT+9(M_48+x3$!C6N|bk` z&IR}71yFe?Eg)93tmbCg)ZwpitH6p3+Wp5Sn2G-{It;p=`R$V$|4NcZac^y6kIug# zE{80+0Hre|h6?L5B1o@ow7tHsnD?tQjdM!B3VxB}ol06M3wcjHZ{Lz!y0kLubeT2I zAyZA%4X@s}ckto$+q?99QMka>30YeTyW>p~)~x$qewYK49DIPU-wujzP3dh+h?mv= zbXl$rx17A>+_$Y-Nx8GMf`joG(QJyYFTQN(yovBl9(TK4h&7O2Y$;n08d3+~X47R% z>|ZbW4HG8n8--knv-EqB<FnfN^90Ov9^9~pAsj#z9L(r#X0%c%XKJ%jh8|#0<!5w7 zWIB~%v?4BB-5HV%UW&vy|62+PUCm8vD9TJk9kuO&F|qX=Ma^l-n!s}tX*`2=W3B%| z=)!EP>SNKl*KJ2iuf~@8skx?ik5e%F?~~o<;_rH?UajXezYX_jFM}Ar{OZX0R5&wv zGFg=%v@?`jY0WqFxn7nPD^{vAzg%Gx8{g_Q_Shb5CEou{o5LkG{}4ooO5-78jMu^O z1%lgli}wd0k@6;2=w9YVF;%5Bu<uXEk+-PB_mHGbE>HY=1aQ5$`c2tpRn7v@dnBvz z;DuMj>BKuHWdrgbn!Z&4XtinN4`Iy`&{WbhT)PC&4i>o{IBJ{eBT=rHQr?}>4qU?C zLIIg$NbU*AYjuwU%q?l&P>ig3bdQoV=0L!In1kMbE6F5X4(og`IV`|_m6nEMnY-A( z=}#>}-xQ~Wew~?X9qJixotfKh0y9r&pzNHmrwXk%@C<-!yqtiv*1i&(ou36ag_lEV z6+SE<wZi59y*{u-&5y8xO{A?<+y$08Ic)7l$!hYCy}SV8s>xyclcslVl50-*=pKEb zt{6*LpR~Ncc(E66qe<WAi_PMB?i+83xzWe{iIMpK;i>A2TjTNtj?|%(VI27@{99&$ zAWjS}R9#K)6^P!6IBFt`;R(Bpcq8A~BzJEQ)Zq9|g!D6hyD&A<)J&~0?>iX99Q?*k z^<{-3;)AO^-z5mn+{82uU|<92XV7=9jH7AgrI*o9OZYvPTDH~9S7&3DT@lP}!_t#a zgdt6wT+wEG4%lG&-f~b6azOgTR-Ons<BRuGUgj13v$&su96&qu$%=T5F_=0{^7g`> z`3N2!B8bnkt&P=Oa_)RMRKAZwb1j{L5TqI1;d!>f4J8(BDSeP<DA>!I+qWGhq$(;d zTx}Y8TRNZe!L|H~c144%SeH?NQ%G*aLC5!Ume;5}Y{j_ZcJ(T+TIJJAqsz!Cdddze z>T%T88K~=!1HW-b0V}zE*{$Sl%h}R@9YE)B8tPf7+)!W)yH&M;mjqosU-kxxeXgG6 zDgTYO?=NX-ye2n@<G0NyAj{`9gmpf*NgfYHz3MPsu2I}F#kP%<YfvuloH<Fno>&i^ zvmswHQQ8f{@2UQA6f};-`^soU+TI2=v0<U*48M;(O{s7xhH`!{G(WqHbOjp68wKSe z7pPYr@qc_uWGSQZ8mBMdL*-i0?8va1cS)n%5WTh+&px%d_SX~98~LyE2MaA0zaBwC zyXf{tYL>5Y4OBO8mNInI9hh~U1zq|kwlVA7@Tr`Q6Vp*s@%ChKB80*Mwb0$*UI)=T zr?Z**5s?dZYB{sM_L`WxH6)^*x2hh}-!`d{o?SSchAka^XR(N#J6AerefjIwu`+eS z`Ett)SA%<9ZZXru3)Rglk+ABzU<L#7rwO^L!DTf_XPVDE4*U5<_MG0WPV1qRQ034? z6rwO?D5J0K8}}N=DQpR0O)fP_atKB>HNu3X^C$(j@dZSN&3;6-4ScG+#LvT>zu7%; zsleXloPj~+uJYjr7&0|cDIWff;ivCf;%l<8Psz8qKTC>H#rO@JC}UplP}^hxWJZ-E zs<c<<uB}82T%U@Pu+A@cewKVuTVjsZjo#Vp`d5Hi#4yMW#p-B<Cc#H}nn1e>hg64~ zW~`autAougoL|2Tk_0Xh_PlEx++|)K|LuNK<$Gl3xBh9ltx$27d{r$c6zuZbaAjAS zss`B^pBWv~1rjRuIrR;9atF{DPf#Y_8tb@>(1nyP|2;QF#f|?|{carXnJ0jw9jWh; zYq0$9!Y`tP0%_o;d1L29$dJSvHnX>0Kt{aWic8}}Zxiewzqzwu#Lu%+XTT=;O3j=K zvL`MGFCeUAa4Iv=!Dw}&OU7x8Gd((cgR?1N8oi#qU>j#nR;S9=FbF3UNpp@S;}1KD zssjnsysaT@jOj?IhN-<8w=uKE{@z~eao{%DpylKv*9H-;U8n{B@d69AQgvOXgB#vu z52$b@_5|T;J7_%sy_7rPaL>viF?XNv`uo8sL(_GF8_!uPi4gcks~#c`4{GhzOw=3O z*CowQ$md%(cv{|c*O%IiUGGBY+vNv+L>8LWtcY;z+MEB_igT+<SLzTE+=aKcv66f0 zXA@Sq>Mlfgoy{+{LU~%IyRS)EyI?XFpI-_l_vjaD)vS*=-W6!&X~jv8(Uw9Yw7M8p zHr85)^KKDVxtb>0MYxZh>r&=-S}~4<W;N+bwSR&$x?%ZJ>)b<{htJ*A%c@$pS$|+l z&Bh2+*N(2|`J+}*hdv*vzQNLN+_=|pVfEOWF0*_CE8y0mP`wFJ{>uCg>r88Swq9nH z!GK<kMTBWrY5tFV8*AIc^jk2!M$Nq|6TuN1#tibm<U>6nH+z0R>?Y)=SZi3rZ&j_3 zZjU(G^*P_(8k#YqGw}aQ<q>c@WpLH*-K2E)587#(C{>Vo)lSXA7;gM0%<<|TeaWG& zC=*I2UX@a|e%#P^PPSX$dl<LlfWYjK<@pzQzt!Xxuf=&&Ipxxw#72z;+hLkf>@aTs z?q~aM#e6seBL0Oa2)*{%yY;kG0Y(O`s%dTk*qbJ^wcM0}^OX09Ws5OV_oBiR5i}n@ zLEHc;`IydCm`>gwd8i^bDDYuhO`CoMsp=VlogIu2U|i%m7v8sXDkTBLQB=S}-|m#! z26;cvH=AFTT6)zNa^4?cYc!l6ary*&KOvCrnxRn1Rx{CEzhuQfzT_@6X$qW=omSfC z+#c;7rZ0bK%JGXtlvsNK&+hmooIr%eZts8(1Aid~i;m9+E(6-I`iZ1@hC%gZBxO0O zt>ct5cxsgR2X`Zy_0JvJR!CdR+t_U#(3fsF9Re;IqtLJxRrfdGU(VTHsjbE2$lOfL zN^pnuvvBDF^7T`UySddGR%gep>D`Z3HRuP7#Xoa8SUx3Gtt~iheRj!nj@jbT>vad; zo~wGcf$W=qDUdG>2{F_kJG%xvf?Q$h1F%klKrPTrQ$x<peRaS}?&m{Ae{d==dG~yl z5y%VkR$HJ^7}$>6LH?3oE-lYt*qwMpI$ZQ8*xtM<Mzb*Go*PJ8`g02gJ*kazh`HVn z2+2Yljjd}-Hvft5KA2yzc=L!V$Kb{qt|z5@yzE^dWVPwaD?4d#xenb;FBFQGja93! zOoImv#%kQgJiJm~iA^10nuiX+DtQHZ<B9T99^et;I<tR_t!TlOc)%KV7qj-~FRW@+ zftJ?pvr@1um+<>W^}gdHuT^IjX_*O!zZo8TsFb-Mn8<uHISO7V(;&Y;{c3r~bejbt z<;`@;efC%G1<#_-l_m2sanQvrfMIj*kfnQMGS#q@<KO}QX_{fs)0e()NgZ9TOW!w+ z0-0|r)VT6hIK-u9o>_8!o)5C0NaTl?0qJ)ZTtD3GwtbRl_p><o2joJAe09L%P(xxc zxAn<DN14BQ!N$><5#(AHI3a0%ic09t>|UBTloBtk!FpEAq#x?~@48HeTBEutNC3et zhhJpI@Ei9%Mwyzw8(3TZ4}K2EN^;;GDw>uYMwD5fmF^NdVq0`$>`@0t9|qU(+EpWa z5q^S^n%2}g`uMG1s&`u)xSMLdM~uaj+Yq#wAD!@Dv~%c2LT%t3+6%0?2FfrXlA{d- zgC-IkBBqmH<=`yRp1rq-Sk!C=vV9W^=Zy*~#2a;_qgNa>u-t$#{7xw424DBe1-!bR zp8p8aZT^>{2Ysu1XVhPS@sd=e3lr0x;qhHWaLc!hGj(7?Vp1U4JgLJ0V%B1jwXcq3 z#@!3+>x9o8=2pP!M1T##!|LQ{uO=dDT-_bGThTC+>@!RFa#4CQ%z<Lp0dLXbjMPlo z+o^Q0uH;J%Gb6y)SO*Rzw$nSkSgX7yYBhA!vS83EKJ6t>m&4mTLxn(Iq`770Hi0|5 z{i)zLh#<3?=dG3|v#$e>3Vy8WGAv%=U$R%aHs}OAA~iv_FPAT`Z$Ej=pSl-3;-qIv zGQV-cLU=}$3u9TY__+^Wc|Y4ttyW9Iu=61+1#|CiI6*2FDq#7@{kjK5-UF5`CH9j& zptH*I^`9CiR?3!h6f*{KD_@l>`;Q#Onfxb#&uwgp)qC`_k~<3LvZhRD6o47*$5xrb zP>R!Mz1{i%xT63z!Y=w#md|KO68y`lb_)Q})HSezJVyIPy$J}@b9crChH_{<jkf=| zDjD{#1IPT<Ag)_=q&~UY<ZwgxZ?;ZNH&LJaS#zK-yV`~8(fFYRDE<^;7aIt=^=O#& zYH!j~*h;d^UeX)@A>WN$QsUpm>r%g3Y=u8w@UF@BN?V0MyuRv1QH42@+l*&r*=X+0 zCbf2|Ag1TPS(>0eCPSZhvUt!IYgV)7SgE~CB@00ikAynSo%L+=tUcuhxMlD`S9w5i zasmar9|JfnNVb!k!eDone9p>e^y93?eC{mm_h*lO`nI;02{j~cU;56Tb{z%dNv%Ku zADOK#n=sAUinzVBv;;O<sMRD44j#ILZw2z!xjKJ*9+LK;B{DjKNxP=${P_V~S8&Eg znY>>6%2g<QBvbN(Lunv#TK(}w(|jWLWy`(To#O==5_Ex^yQrE<GfFc=jI;Zgv_oCL z#7|X3XC<_SIJr^4$1(L7w!_ldJ3P+78=NZla?bK`iGnszM1f{B)rJt+cik3;@3kJ5 zR^ORZeadxJS*YS$i`loJ$-}SEs;Yt4IIQ7_Ve(fD&117^z~d=F6|}{Y2fa^K8BXH2 z&P<DTBIN&TwjpqTPx5QelNN;OGG^Om;>C{Sr(3WxTqxM@6Y*9VFeJTIn~Y^$k;v}9 zwngEnWlq!@58LIB+zX2zx@rF+E~yg;!PlEK0$&w8EMS(c<`}VhLR00QzldSvoc+}_ zHq~ezY9NT}dQ4fGhnw9~xnB_Cc8tNfJM|tdzzx+U_O|PN=myqt#ro=IYbM!KbXcY^ zmAY<W^&FO|g4=ly!&uK5dnn?M>tTvLl*Lj_6y_<Uxt#CT*4Tz_oBhn+fk<du8m-G= zq=WrI)L&)JMu}4{i_W8jsc+BD`xWjfMVfZHje<qts(jQcp3L)2srRWK(AMp(5W;^9 z(0z8|X;)L7D+lArD_BM4N#a(01n1=S3EIsvG2TKlDeugki|WG*l>EQiM43@@JfUh5 zQhKuV%aEU^1LtMDpSs9Jwc}V;GXbQGxE!d`K-|x7Fm5{LSB;S^{t8|p=QYVyJbKnK zgI9BY`hJg?r*rqP!HElBMe7q-&)1Fx>V&@PjEMh`2_1DHm+{y-g3{R6A*qn_YtXuT zN#RiMWvEN3TUEBv{5Pxl7u4PCPZssDh$p~#FKO;V>5fKSAP<v?<rM=HaH}z}d`W6S zxN$QiG2RcWwaCzlJq$cgR;_6hSv0h$K90o+BUs%-#LP3Z1zAV1srha(E|WbpyE_W% z8V7EEtq1+om?YQR#Wb<Kx|z9>DafHV=Pu@*7-2R2g~1rl)07sd<ax3a1a3ES+7u=q zO`6|)Jp(E7``uCY<BDL<$Ok8g$VintH!hki=MfnQ9Q}~K+pBombp|p!jyF4#8Q-G3 z%;mvuS|t3~Jm>r~e%^0}2qkNw$Em$Q*{k``F?b%$Rq}@ukY*%rsH<JbIglNbdWHxs z`Gi?}rN&?(il@KL3cXWdnnpDz>?-wSXdQX;u?*nNg0{C18v}<rGmZTa5|N)vugx~w z{WzWp*8#2b`!&tiS}+HRxQeSd2K;<MkZbN8Czk>?IY`y(Mpo((BHUR|)HxMNh8}0K z<h^T1iIS7~s<Op-{)PKUjh$)>ObcR<uy*A)`%dwNw<-vOx>x={(Z;4-%?9Nc42<S) zYoMgD<xR$7>BBxQ^py*KE0M90uXVP~rD6MtJG7A|<ilw~ZdIHqkjdTK^b${-qwOPK z&aY7ZbsxY)CuHBRTa*%0RT?b8g#d-|(({N|dKR-j7q^d`mG9%**a`2!Z@Gocemv}} zcKl|Zk2FeLoaa64AOX@l%O_$#H)6iMQuvRR;gEuSQe%ipPqU${QEdvA9%=}Y*|rys z&HH~Kz2P4G@GjSH1Gy}Cdi3FiP_D^8O;?*dv<3RFu0YstcA=K5Dnpct7iK)o>%C=x za~cW$EV4lTI!Z>-v39qgn~8^PON)q}=$BBz>|Oj-%!iAhMIz>vq9A#`2@a({o{e%Y zwfLN^|3GW9Gs+NfZ~Fn#Z>ThYXAHWqf~X6sf;rmaHG0;eJJKg#El*xZpSKLC3%#Gp zMsDL}1Wt==uVXgAh>z*Z-J<kgOU=pjdpRf>@awcdEa^K*=x!|Zal}356_oSteX_V| zByQLV<@j+~zg9;n)Bf=XOa<dGMJPpl-IB#X&;DUL$z1{?h*Zq$Kltp6P|KQHtr6@9 z>phX6>XsI!Vkb3utKxol;MS7AIsXNC2o$F!uBO`3KYpozLBW^>YVX*KL7AAW9w80Z zCq<dgUy<2!3%;Rs@VSUJbdTVcFWpN)?PXzJ^n0YqF{d4}>~2y5o%X;8=Y@tT5Av#M z4ju3xv~5`kL0ZljZ7UF;o#?Rb3?p}Wnf9%*HU9<H0sRM~?D)Xx)mQz^K{YTbfun-^ zeT(DP%aRJD;N^7E6zx<l5@m(t^ooq5k=3cOZa`a0UG~0NXKi3?X@x&7asP<Qozu0M z>K>Z2@OAJJ@@&!0>EJLGHSS^<4^1iONrLBiHFaZqhtsjxbMin;ie#o;IVG!<rv^=@ z1aydms0jusz#Ye!gTQ`wDx?%(uOeC-y6i0B(GI+#d9(^;#qu=Be`ct7y~2;g7n1-Z zqx*NrG|ouz*pkrAKFtAg7NCY-8f)(-%?kS?=tIRZop@;x@*%Z;G-~$*YeQG7olJZt z(t>x@Gt_aeVy;8^TEjUJH*#QF<ToZ^a7(2}88rQ%wJ>OxIj#|J8?Itr-^i<veUN;` z-AMAXnVjWTb#wP>_NZ{o3;1zy7f%+~hi`bE@42C|&Fh$YEnJ!^XiPGg?aDL{_?@}1 zyjuaRgN@qwhKk{1xJd~?K8KD<d&G0~ON?tj?gp7QpE2pG)RCW=^ZqmhwY{fxXC9b{ zq(46SWaQ;L)CD+C-^0r6&b<IHRj%Ce%xvtc(!c>xG<IUxd^reesj0($2h`0$BvCA) zK>X=#HcQFKP8y9DLtP{+P?BQ6n?R9v<p~R08?Eyz<e`6~OI8a4?$j!rcFH&nHHi{g ze);TKf7(RGpl<mVgCo|v<VcBw$~QFBV1vROvCGO!Q9G7E0`0FsN>J9OQDcOwSoA?H z9-W8y>>Y{o`_?(c7<)KE`VD{TpHBhKpHh#eo5sU}lXs4}FF1YtPmZxImjfgOWXf2= z>!2Mv_OQ9h>L!IG8yvze+f<^_##0O-W2r*<CR|hUQ&U3z<BpBK%J24@TQhx8`CneC zp9kpzo`Ns89WVQZ6~8=xXBbje<{=P}?2|z8H_@Ork@Ik=&#+2c&|xIV`T>7*ip;zr z57v={AxISn(rURQt+iQC2F&P4z9PVH5%3ifcO6M$0;~C5YqKE>xq}tlF(r!9X2Jc* z@%zXP!So^c88SQreK||+w2Lg?s3Wn|l)TurBz0OXNCexkXgASEv*a%1r~tBG2HHOh z{pPG}p``gABGsmHan`2yDn`CD1|cN>$p`L8FgNAmKG_0bEb!aOstl(Vo*q^WY{4j) zZOwOEm3LYI+j$7*w2q{qf4Y|w_Li!|JGn#S-$H<g>lnOTCKGQmFXK@@c^n&tSO~Tm z3$XmfdE6EOV+YI3tTbL%lA$Bn#@8FoZBfRPO;3@b4WV!x`~nFKtV9@`A~P<K@SOWg zG8y`EGZmm+PNvRiVgRH1!*J}k1CyNv@68rRQ3_4v@-pivM(NP#565Y?DA#4llgLmK zf&tv4V$J|ZiO`2!_L<?**oP2+AN#X_BQIW*I;TCP;zHkl845KK>>5^Ov?_<UV}L?T zE!*Q_ZCKi$Dg&G$i+GwW{9Q#NLN}L!i=H)r{@FIk=keFdWI;}c;kXOiC%b9Lj24ye zcb;%!HAYqH)Gjn7Ln{%Ck6uLDQvKv8CpDL?64ZGS0ng#mlf%?if)rzcYyGrbqN6Ek zsGsg-A}XnXpy4c$`a=_-{iy&0XM>k!k-T#lsXVrqLHrZn%L7i3o&Cw2baZeQdLKJp zequN@IUAxt4YSV=Q&$UOjRcRA5+#1d0(jdHd>Fe%uw*PSe#d6|4O62EsEV&M{giA$ zKNG(lVQ_}b7<k)&&)d?<sP~5BbZ34vkS?PaXI}~}F=|ynQj0`WqN5{u)GS*ZA1ss5 z{y;FYX<_f6Rxnpp)9NvZ#Vkw3d=YLAt6Xl3p+S_vV!j+7FX8hUUYTg6hD>aH{Sc7~ zHkg!il!(B$;MJDD82FE%UwC}wIss~(AktuJs1o#(5r5h8X92^J+|BzIAaD2^qZ-;z z21BbzoW8tiKC?|omRIUX_PRjri4Dg~;B6kn)@GK3)tu9c>5-($5jrfhoh)9-cZLC; z@O?0<!!J>?TSs!;c1eu8e_AFDx_4Tp0Hz;N)BH+)Hqd6umQ*y%1t?Gym#k7;X~vi; zGO>#8<fB9?O#PA|$n~S~G}FCg+$u?cjwGHj$?sG;$z)P>WfmY`q6XaU)6Q`Kb7&<9 z=TOpz=g<g!1@T<GY!3ZNc|A+MlU&(f#svOjaBhlZGR$wTYBWWun6zef?_xn4pD}0< zQ}uw`A}}@<P`IJK!=ckJsLH0bk|R2jbEZq9yzjX(F-`n}4GG2_heJ1jrv@djeNyG9 z*+{jJ4Fn6a6B}4=`^WbC^#Kn5^fQU+fs2B&>Pb1xEpSok_tjXr{9vkrij&P2QL+8x zY9Xj7l*uIhORf~dAK-pMY0_I*ESYx;t1`u&CQ`-DOXC|8PRDbwNg*68l=hlIb7)vn zc@On7K=qvdGEyf)rV8t~5U7e;m6a5ktWIc(S+?bd1`VtFJuvdON$_~6m`V~tKeL&G z@k<HpT5_xMvxahc;SWhBlS@gda@UDKr6Q51K17ZNVt{2c)>(PHHEpVsR85=W^Kv*# z;_gcPqL`mdZU`Xr{`t|sxQm;bC6)pG1@IY;OjSM!O_jgugvu5QrFbe3s)y=ReJ;T* z&hj00+niN)KT4<2$`Lp-L50XPlUuzLxUzXk;3!#CN)EV_DgdqF>Qrj#c0u(YoMMHb zLeWhqq*TfZb|L~xNXvSH3RUEp%NW_4i2ef3>)ou7vrzY-B|#Rqx(F2bt-=onCTH8R zHgYXrAc%SMp4TCxxzI%spiSrum^G+Qr&Iutb&?G_61{;%MnQ)9FlLRUMn{r>2ppjK z)FM%R%OAI>9~!KMI;)DkL74=(S&ZwCS}DUO4`iOmNYf4y1v``-j?1pPcDH*tzf?$$ z(N@E{&<NEiEGdJfy;<Q=@FPFh8gwMdBYn=A<azGk?Kx||!%y6^=By>2?5vq<Mcumj zDyWq*|9HNEb#&?BkLs)HJ#y!)J$UOOW3Vnt{&VQow61&kDxM)EVnYOX%^1%onW|Ts zsaJI)Ei>l4?o<X0W(Kox2<-E0Vtc0rTUq3{#NNl}uY-O<=9@wPre5=Eyyhv}dWzcS zPqGr`t$^yw3cE<sF7K{kA46hf4s@*IY!_~<ExhYf?lEUIq+C?+DP)6%4YapgY<zxj z6DL>Vl#R%9-m<YZashn|9J%ycp_>(<s-<Gg6u1TTraebC&1{xmRBFlsp8osU`{1b4 zdR;<E3r-8;z1w|J@NMbKcTPvf@Rws{D)a5rHgcCG4@06ss$1JzZRNJf_`{qPvMU%u z8hSE2f*ZYR;p3r<N5nU{bW7?1rk&x^#$jct?OV<zOkf}xd<*?1szlH@4|pb6F8Xw3 z<#$^f94XDZ`{fhSRPLu`h`XPc5P&(BS_t^wM5_Y+11v)s>i+D{T(xPFW-3d>*HaXp z`&!L@k2tT5_7`k3^o8DZvK-%}r`$B@lulZujG2tLqK17Z-GqE^>)y6Ss#*bSi|YMa z@Y;EUAV`)d`Rp*>su;*Ye$cW49|=_#1aj#<tk@_WU7I-JXFDaSu!?eZA7lpU53U<W zm<_LfQV-U8Qf(_cI5==7roHJ8b0E(55NLLI>Je|(R>d&h5aJWH(T*U}wsmG9htm*; zyYzmd*Qz2}ZM*EIJl73RV8-WL@148p7P!%&SOYfGsT{;7#>(_j29vzIjI<N~R{rg} z#Asdb^S7e7m1y@Jo=x>w+!nT};IV?FgNZ!OF_Jyo5hZ6CD1`xO7sA2<`-l@>RF5-b z1q%H5#$erltvdMoANl2C=}GU+WP>@(sPD{{jPGUNCFxYR&<~S(xTA-l7P{`r=R{46 z>j{FX1S#WG=`it`K=*T+hB9ex?RR43=cNU*_`p}(n=_#9BcRFQr34pQxs&qOsMcuc zrxfwXF2ZQ$dE9y>bw|Oci&2fM3y`X~a}ICe;mVE*6<q-h$wU%8ajRs3R}-2mLLVJo zHtQZ>>ORS9R+dN?(<}toV?Uj5sf=cdBHE*E7Za6V(>3-cN_%2HE$#mca61e)m7Pdw zq&hEVIfi<yR34ku@M!A!{M`NFoT4_RWZZR~K&|u6ClYlfA_Ta|8H2e9&<uqJG3g5Z z1-&swzQMVJd><=(+*OR>_}MAr@}{poqg$}Kvg8fCY==V?GXq0pgZh$RjMSa(RFCd7 z9gFRCWmi~0=mQ`Y$O2-jgI)d%kX~^iJ=@v{v!i3@s!97;U(}EM^5usw_K$uw?yo*Z zXf2t_USSK>OEm%4-`a41HQ?7VTH5wGVA&Y~4~seuh=Z!*T|Z6vWw~lY|7<3Ok<}Yt zfo(aK5~}6>h0%k86lK^`Csqxau~gaOi__#%`=Hx!3!~UR=F4rClK<)pCY;I;@M-+N zocI^bgpkf9kY3_6ewg~}m|f`*DnV&nuJ9RAF^t;?^W}HYZcfL?f3B0n#yws>OAZum zzAem?@5$9iO#oL}XxBqU_(<>OO*?tK-I7#i6B*-mTB!~OX9wjS0!s?O&q}*S2VM@q za67-c`gN}h-S4Y+1U(ct;H#Fq5{&Jcujva_Cfkktm^mBe{^wkx$};rJmCjD}-3Ra1 z$`(IwCGa25bb5)~Q9ql$0p<q0vQoOjA-ScQMfZfBt$-Il107^dF{~#w?$gh92|c)P zKHl}d8+=<7x;A@JYQOM2Eb@wKrxKgPsYv;und0uK*eEVzl?tqz7t*F)`oN%JH&4?{ zWlmlAsV+S7JI<N)r4v4!I*{j~*BsONgqD|NH(2T1sM@N)dy$<GG=AH#FC}90;&U6q z{0TDg9F;8ve?{#i+XqPFvgHp9ucB{CA7+SB{kX8uZC#hMmqh>i=ON(*6W`9hlHK4` zi0c6OFRcS?)TZGcpsfoukf#tiOT=}vsNc>SB?`o(@Hy;3e!SCjgDu>#Kt<^}hu!fK z8;-$NY}xBHzYR&-SzsSQ85g@j5NMn<=KF{N=@R7!TH&&LlG}&!-0^9qQrgb;pt${< z{I5&vqM)gVwh*1%e@R}Ns#&&Tv2w?t#-l;Zwwt3<LOq({Vj?YAVj#gbcnEw{7cL0X zK(_K~F>1l~c>&*ly~B$+&{Rz4OT@}=<A(HQMuy6AF&siOmu;Byu4;(QQh{zmS7El@ zh8ig6Tj&VkAvorhQ^?5Hdxs1_4T2Y{{VQxq43C@WU0L!qWR&?7TL{ZWJCgy2MzsDV z#SL_Q+7ut!+mw?UqPf?oW@QA}Uua!+n4Sq+*Le6U=mneYi7{SEDmoLd^n5KgoQ?tY zYPyPO#tVgwwQn<;HbJlQkYZf0KdtB=*$sbR^~Ry5&*HbulMZo?|72!U%U%f`zXs9T zX+t@TJ-3C<UqhgmAE7@^c+!sjBn7^T)?JML3yaSHk{;D6Z{v8+IJ>3D<1KKr@ls%c zyj693fm)VhT1o1OG^f}3-6E`PT%Tw+mfD5+8GoO+HMD$5hvwy)n`k_~<EwYq+Wg$V zaQ(+<UeuhljWn<2>}_`9+zwSyyy~4%my)z>E2$kJvcP33vvGPZCuKco9(LRgoBMjX z{BxyNEBoyoWyc;R`E|`{+TWCd*<Wu8$)T2{q(iusO5%AEEK@ESPgA%T%ahL<N`&3g z<(-1g0+FLbwtQI}?obVP{8?Ci;(NFFR4MGr=vq0AHOX+gmn0M_4cul+L=H-iT8Zy- zi@!kE|2PjkAS+0-KJ13>;^I!vUztUHB}>l++~~4B5{oDR9`T_ThPQ&BS+a+=MxSqE zL&C?xuE4n=YOmm?s%|Ac5w58md|4tQRQM%g;_NJV&(#Z*Kz?1bp}1AVe<}^CPWV{% z4>m}L+5di^U<|b-CJ0=Pto2CP7Dtlt(#s<c(9$=8hOHduf28d4H~ScGr*?DZwE@Fc zPyxQ|bST3J$cUcm-f#3k%2?Q1{0q<eB(c@`M?Pz;lZg2OE|DdC*BVdy97V9UtXS@n zBb~WGb^y6#ekj-Sfy!*ML*d0{=t2Yvi=E0R68WlVO4-ZGSCW(2gOE%0tyku22BMm( zwVAX$2rI11;5|r`7>2>Ezmpgp%$t{Kq(I-y>5?U|pZH9OSA}0)E}}U`I0K$$Q}L#w zvd=$NEjuT9xTz1dNyf-LgO-084WGX7GahqQTpx+_=J`(TPBcorZ|`9-5Xw<`L4*Yh zt~J#niTLA{S)%lJ>RqR1W_~rk(?!nA{w~KSOa#x4z<@jLruM^Cc;<RQo`3JP*c`@a z#-6AwBjI0my6{H>w=FKc*Jy37)b>-ARp2v26G`~%p-Cisp-&^TGwt;de^g^qerz0B z^#P4(g8c~sdHQn#=F;d2y6jwU4TRl+CT#YDgkp@OtSah0P7GHu^zQHlOav$Iqw^E_ zp!s}ZrttLYyQ4CP?}44Dt@`(_PcTXtWNhOrp~96(dbp^Z!`yrO0GsBFq8#wsRZVkj zzY^u%Tf}z@x2QH5X{=wz1Ts<|7>v*PyHx{eRlUSNpakWL<G7bL%=pRKMcm&})kK&6 za@<Q@X19FbQs`)E3h@nyT5KciHE);vt2&h0aWL{dJ#G8K$f;^mexQ5~Gx*c9WZ0nt z6$npPdCeWSAye<XB0(PT`G>&tx|j^=?5U^}4-XyriT~s2JAj&MzIZ=B3o0NYT`AH; z1m#0|OOP%osDLOf3Me2Ty{D*vNC#<BBTYJp^b(?UX`xBz5ds7V5LyW7FaLS--ptL; zotxdAGv}V&yL<MW-|tCF?^lA_ln^s^%tCByxLI*bh9hvj+j`@)Q!b<SCxeQc=v@Ee zQ<Ic-1XsmToD@foGTx35TYtqJN&<C3Mk~neE@Ew;`l0wSdkxI^Vz8AII=V-F^3Sbo ze5KjuRrO@NhZ*IGqCMu>gqX-6aU@KOIAZJrk=y(A2{t}%kFm4`UDZy<)6Z$*|J1qL z!!0YCGha(0J_87EYM8g?HZ2%LdyHKya}i+=)Ez`&NdEMuQ=?&bSN}o7ZttLPh^|va zK6lPPt`WP6twQmnwg3bs<VKqr9Q4)qqXD<ue-f2S{HpvD@a!h!R+1{3lzC*VbU?9( zCQrhL#%!*!=v2h+AvODExtMu*c#;YE=`8`YSjG|P9?)v8_B`}69%s5w7NYQc2D15# zA8Xu4a*2Uk?`(1bMu<pL;$FA5Jsk2$X@P#qo>^5aW|xMK<M5>bYt_*<BHL9m7U^r0 z*olzwW0e}1*#Yjx(ee|dPQ#UHrZmLrJlf*DBMSxZE-Q<ajFgDSd)(iwu+PIso8kUr zyy+p1lmwpqPH62+VfhZ*?J-6ZAZQYP-i!jw@rM}ShgWl=Ve*@Yfj$_qYnF;$4%rCH z8PD8$di8t6Sa_}yvumGTrX~$=h1F!DhIo5UWZ{|R|3C_r6CrT~Z}>atnWIL<-Sp3t z>Thx#U6Ynqy+NSgL_eU-8%}hR=t>pZ3*`f`Zm2iesLx-cko9xvBj2g^$j1|~{4Qc% z@xF`QB~j*on_%;&;OM&YG~oL&W3!#kyGO73H7B*WC^FLY89)2lxlF>T_DN(`9z<-% z7Z@y0n_bdnIsFbsiD{@}G8O{%_H0td#6X$*XoUq@Qfv^3*~Ls@I`cB3n?kgi)`xX# zpON2SD;?`U?v4634CsoYTA$D>xVwp%c>gVSPG5L%y6`WevlMI;+y2(~GcdRSF1xAp z6RtBB7wX%|?S81dKEZ$ZUF>K2=XLkIzt9W22bwSSTQE`KuQtiAeVEsF2`0NvB65=& zyZP6C2(Qj3!}X6N(?~+WMZ$)mj+tBi6&a(LbX$%25#1`+m{3~3<k8^?#0gQK&O+`$ zBuSyL^YMQ0ez6aZ0GyUf1C<8FtJlDw9rYNzRz6<8UkiV)<ialgl$g0sZRSg!y8OFK zzuC+KKwLM0<E^4&)>X#X&`_Q06HYqs=*X7fbynQR07l#k&1OJ8+mvxUJ7<FXJ6HUN z$J_pf53Cok9B$(Jy|^}laH~^hlbN01mrfm0O~Qcg!h=m2D93k!&i9$?=ozk@zuV1A z4qe20DahcH8l-%0y~jKZU0Z6WkQm-UT%n1zMB8nirc)LO6EuWNE|t-x9>qKWE+Z>I zAtwrbJWUERgy7L%!T+uK`<K}GBEWBVci*rqX=De4WdTyxu2GOT)VmkIt5z@mpv4)r zgWpKtY+H{o@%Shz)X2fFNsCM?8i1Sb6hp)}N!>xCjOR@esH#8nFD<ZIq9b$jB-FOf zjaHcGHNq0mBC1pUV9j!MNO%K(PvMws)7wr$X<-+suE@Y$x_{8dn!kW$K_;quI0`U_ zed`(vo?{4-dj^ZnP6$K=)EcM{k5p^NvX;3b+g<xNSL}|;`@KQ(=KeC8hY*q`3Ho9# znpp!&#j!FVj*h$KO#1bQ_Ig^+w~8jttaOfQLgT`9>|6gJM0aPl9J!DS>yBL4yn<_^ zHG*5v-5<3Us0Eu^t&VSlxyQWoH{wyrd7}(>bxP?Z3#6%DX&Io%9HKDpr<u(s<*rRM z79Elr5-EqXe;BWH9465kj=eim%^+@bx6*zOq~e4oI%|<anfrHH9vbg6({dxzqZP7C z-yDbR2JO)3yF|hgltekY)CrP@Ujq}9>zCqr4zEn*JdX9<v6;$5auAJHEp|soY0u^9 z=37<3e)=Y|OwDs4%=>e_c8(+>uRs7de<1o1ax>3To(nQ1<r*H&B2U2PF{+{*0ZB6_ zpTb)gqB~j7Tfyw~XR-@s#<_>l?l)@<|E`;?sR-;=%4|~KC$tFsr}!KQyu5aqTz9mz zAu|zLVllDJ%a3YuLpsq_h92i9qGkLMGqCpDVsCG{q0WXAW@*O3=78Md*}q6d@Aogx zFWbp1%-h9T?yhN)*lI}d?N#^(XsuO^;a3)XTkM!v=E>DDpw8@bkex2<LWg?u;#rFB z-U=e(=7!ii0o<v6M)FhCGxOTJ@iKAC3`H8~#-Hv4AA;sAoh;R2{L2B5*(kDG#ET+C zQ+cDPvMs2HcA8_Py0INU$>Qn%4I6YFa7-=|cXbGC%6ZfS(cY>oYaV}sSY(t>DL~g7 z2t%g$7CzMG4)y-|(g|FWn&@vFEng>s{??sgeKm}%jWO6*3sU9YPe&cn|3!ca20LPT z*zvPz^H<Yy<{={SmG8puVcxMk68)0<7ON<GS=g<>^l7y=&7phwrNNB-{q@cH_O{Ia zv-ia=%2GzQEpxGGwe!JLmr|VoK??aG_(nTjt6k@H?4<cfxEV&FUvj}ZW4X>}MkK<l zRGr#5!>*kxmIA25jN=N!>6$+J;|iDnLT0Iih)}6IS&uc}Qr%w_WD>+LMmcsymvJAZ zd}i)^O^SA0@R&SJSsaTC_xiYG>cQqX!ku4R`qS$(1&w!;5h!gT!Gf3X?8<#!6zigE z=4YaQlO<`O(z1E+$(|MHtond?GTZfDh;iwjme4^>OC~=F-?^7s59GtJ&m@H1*s^2n zKB1Dk$W)5JsDI$jx5CBiOmj(iy)Nu3CHQR-Jc^-u<N#f#lzax(1-C%qQ;d(s+EA)9 zfS9`L&<YX2pP$U7-&+P9?Ht@);aTYJbofEb=#L0I4|K0kqLqOb`Xhdj7U%JX8{TF+ z-$qUkdz6rRF(-=<TFc280)m64O~3tOwkt_FTzK!J@DV(6VsDFh9oQzd0E!4-!sQYH zOm2Fp-(wi)!!B1^^vz7`C#?p@0SYqX3a-hc<++ez1tyT&e8lm14RySU$rxRWmdO3D zoWW_fOj#cj&}XcYbMQD5@Rhe8<8#&@^v?^mKqr-5kt~PF>9NcxrsQ2ey8A}uJ&Zh0 zCzg{=9kU@~DZCq!U%k_^@bKJGBDR2#7ln`0LtdrmKX2{4a@1eI^}CNqEP$P%H_z@P z!Z+gh{!+f=+GDsVePgiPIDDzD*lGISf<5vg<>43soQ+=#x_lsy#-uJ0U>7L5T(uUz z%8)CNmw#xFI+)azhptF@6v+@`C;g|{9U<M`+&tOYCRyFCtgCHJ)I?9_vTr+sYO|93 z01gJ~n1{jZll&W84}*`5?>}K!>oM}qkiNbPXIL9_BHj)FQ)-r<w3+|j+^z&E$kGB{ zqp&m{Y>_7c7&4835=T%(#VZ(L%Kgs_EX|$V7xwYd>b&Ht-M0^;;K~amVWow|UJW;2 z41}Y&1p{qNLmh<MNWl0>f$JW-H{Bg1Z&l|r2#C1`7&E*!V~B~c!A~)nbjO{cCrE*- z)nZ~jn)|bx=HXJ8=;^flU;SrW9Y-_U$A-ugci!RGz#5kjxe69K1XeD5Wak)%D@25Y z9`_kKaX89o5~oZau)?{GKZNtO0C5wTAAyC?6MzZFs_?*CGP8Cmm2XW`U`=*VCG2ZG zn8Xz@$9KTMURaHLL*M3%<k1*ds(E2CK#kA5xbL${(&)TBNX#oaxb^4*UdDt{I7a&5 znCl^U3DVFHVVV_VyPS(7)-u6wkD&JvB2Pi_MG<1COR4jJ&<d?+>emT-Als$@ej1e? zH22c$F%0{&wVH6Z=2WM`<bf+f<i<q0mXWPM8k8$(oDkeZ76=jy*K6ut(hFPjR{-fM zz{8(geZ;fwdxuybTBJL|=7@N|STbY)`==D`syR7c*U<?e>Z)^zNeUYclC8i0%Y_q( z6pLhdDjZcy)0<-L;Ubh<W0^IpjtZEvE+Wiqr}6p`mo(%NpDS#EkJzZz<#ChPoc9;N zyIak7T+4>39JuiO>JOR&1a|A7b?4D<hRBUsWOpt#1XALk2p4yVnV@W-#O)R49Io}0 zvaRZtJ8X-6yGdB45cd^ID1pbfMR#dgqrNJ})-_@ZQS+WH4myXN=$(Z>znY2I!HbbO zE<*VmGHX;G0SRGpXYVWT_IWva<>q|jCz}%PBy<fs%J1W3k!GK4Fa6B@b4-0{CTRu2 zR;RFl2>ND4VvclAFzDW*EYgE7ISeKtbOyKr=uFAQFiS#3`#M9Vldw8ldqD~W$<-<x zfGh5Q1$zYnz%?}a6CxVa`JUQ>Eapb5Wvw+BM||aCEwYP3*u#85`G2qJfgIYR%XN-M zq?nRt6v!<1AQ_PFo-nb^xqjtBc;TXaFjf8P?uw)KEJS@lOEzCjX8N8ANnUZ5A7ewk z{A3|j;5}xA>fwBy30mxy+QRe4!wNeygt1k%<IZ_RR!XZsRD+W|&UO6URFbY9@@4^> z5ODwi*X@Q;LvsXC{qsq<D$m%FphS>Y&VkQTq+_n+)>+8VENibxb{Mwk^lK`5KIWRY zGsUKi3u{H-ynhox!$G4Ku?<~}L7UM~^YcfiCJ_JBiM2Ol?hhcBpU@({!tZQi-Z5Tn zb|z8A6p~L=$7CRDQ^8S;6`Ro@o$ukcTEu*`zLxDp*cx^C+b@XBLjTvL82Yfa50EW5 zG|yFQfpBvnwWqD43nICoG~yeKQJCK0+hu)pX~HC^!4Z%1zQ~vx809a#sy%>U#m;-{ zGA;;xB7i$NG|mxp{`3$oCBt=Zh<6kqwWu-Kq71_IxpX&>f61}6U*Tc!o|G$492so) zmmQ)7kYATgWzM&m(gb#Qt~ZqW+neeTCMH{J{7kP3EbN-S%H8OPhinW3Lmdo@D^t^I z5+(@jsYDhmDs!#PG;~U<Zgl?4W;!xF1DP4#Nk5AKi*9fnDWH6}yor9JR0ZL2cz5e1 zQky?(QtANZ7KL(?>9<yMo-l?Ep()<or6$-pD;(jYWgbzjIiS`o%Y+U_A9CQDEE+43 z<Dw*T`Ck7qyrT02_>IL-HkEfX+IPcM!LV(<NQ=rEnC8;@Fj8QN-01~8`r~_h1z3L# zLl+0_6a)g^LBCiLB)(#<Z$|54Kocm@FHbG9*6(Z;Y*7QbO8igz0e6!Kfs7A6s|0N5 zUq(`w4(s?~*t$hB|A2I`8a^oYRmbILupQ_f$A>ER*&{C3c5d8=K|43m6|3wDaa74; zLND!(ye@9M_AT@kfE27as55juABECa*hP|G-Q2DqkNV9j#^Rez2x5G+D~H1FI&Xig z<J#sGP8=ICaC`o=xnJEvyE{sL-@+CX=#U$W7=N(%y5U6I6mD#YBru#11O(Z;Uc{{t zKd_Gt;Q?^-wXjf~!Y<{SObky_B*TC8Ff45-bYqQ#e5<Q~WH!2MqCpvhb${(^#AFt= zeEy|`ALcR8_CJXSq@r8>g?Xj~{80n||8FT&`>0il?zC}eLh%|CNIR1GDkcfB*bJ%) zhyA&-CWmA?3R0kld1U^M|Ei%sAU5QMh7fPWnXSqb$3I#p4qQJjtWqZkT*VlX5)Ax4 zQnDE1)M0mfq_q2nt6$3y(U``AWF=_Zd-nia^J8Gq29TpV{49{H^<xG8h6WMZ0sryb z&Ky;&MY{OiM|c0;-I18&B?Uc(#6l6zdp!1Y`{U4;e?xbHr-{7#h@=zqcMQAoJji}} zJ#7_wk7jl(gzMPUg|eAq2z*SdW24)}N&$CpYNLNjl`iiOCiz+fibW3A@Gnb`1bnpd z%Wue6pLa*6r_3?`M1{522y|tsqDE_YmIscB@wG&vK_oVd8M3@!2+S7$2TODk9W`)Y zz`JaEm#xBHt=c%AAl>9hu>4gf1GWtG!0Z1-K8tp5O`w7Va5cSQ12J9{GFI)A#qYDn z<bJ&`%|B<~YI^z;NRq)m5b9a;aAjf2?pR#lV4_y;;h^r6|2_+71F)~K3td;BcRVQ$ zu1i~5sAKJBohG+nr}&@BlWeMFZquXs>&uE!AxZc((%GEdl`t~omuh>fBS7G;KNot4 zBssM>L_7#h`EC57)`SGxwP4ji{N<BrWdxTyWC9ZyPuhU)Qb+ZjeiX6e(`Z)c{%|x6 z=mfFUOj-#}!S~WbO2z=TQvP&{&w%}lXfgZ0!|*S7dj)t>DCHb_2<IHO=+lfVEXc$h ziUoE<wBr!VfP6^E<YHn6tJu{h*0<+f_38h<bf~aiDj%8s8KLtgIy`)_B^AFGE=JWu z2EA8WEDF|~_qgAH-ub&q(pn?Hmed+-QkGuF75gtw5b$vmb8_rv(4>>gE3$<CU?Z(m z6pV8&^)(v}G~=4&%*6oBiB#;9?;bR+JB_j_jFXrv_V5-qy_sKeI$wedwAZL58Ql=M zRZ?<SB2u27c-)e7DA76TMBLA7?{RM)I2<MsG;oM-B*klY0=Y^ni@BnBiLX>B_v@f7 zyvxvk5i@LaL2x`_An3h>JsIxZGF<9gH|o=Ta)^<WhE#jfNTK(ckS1ml;_#oO!cX0d z9fvD=4~y(Rnf!BB{F7;2$=I35<T1X_$-+|EMi>9RW%O9L*r0g!uff?gr^xG{-ksv+ z=KlBMN72jwy>l`!H2CQqgrm!Z!>+6!SE5MT`F^RvB>K+L?5tnA<J<XgLHuU0YC_H6 zQQwa>*qbMyu7gX0NXwlkHm>v=o>{}7rMswF|4l{M?@@h>wdIxy&mwhMRvrewom9RC zrG48<3eeG-=_b?iOl<c2HsMHn$U-47vrl6j0>D*?s{jd%OBsh4c>b@0r-Y&J0)sHl zgP}tqOS?BvhKqW}Aw7MF>+pFK@(0yyge0kP>WM|pMrWR&JW#PuXURaGt7#d+F_RQv z2t7I6)^vjKPTK@A>_DHFe=@|DT_S5Gz+B50BLg6Xm$RXnrdSamsPi;cwt{3<wFI&G zakwV8*k7t#3_HIiCt<QxF=rFrmIN-r9R@-c0MzVoApFC@Iw>ZoJequ?-J-!(znlyy zRC!y|!Klx6(tdIHo%^BO)^ikW<}HyP*H&9W<s*aN54!Fd@2*+)1$2W+R6hU5Tmf*D zRB`>){NQ^e`nH!`pp9yN!bmf~kr@oL?ZqLflP)J1y8G@B6NG`Qe)0mA>mq<?l#NB! z765o~AvGHZ^NF0&W+t?ojvO-m)XGB{z)eT8I?a=7*h8Sbc_{zcXwsorw;vS#%rq(1 z*G?=a{KdkhpFw28yTb2`7uG11rRq+u2f;2=$wU6!2RK0{yp13?a|0+e0BnrdDTBRX zGedtrG=aAeFl67gV4b%eFqEFQAv~lLhQ0u0l1zKL3Cue`{h&<aL&x-Hcy-cK0LGqP zMulo$B0m4)Z|DXzKP-=aGf1@F=`R=7ta(L({pav+HNi|y4i#gSkJpw%{k)Z7v5HMv z(I>*A87ZI0i(EI=vV-^VMMt4L3r~XV^*T$oDdRYcR<sN&^eKRnh5<$HQ5AO&{jQcm zjc3lxm*O6b6ObDa5B<xRjKAn2x%Aaf6|gUxMy9>h#4P^|F(!x<<MYJN6O3ng#2o~_ zVKOHPzugz)bz3->xz2CWfQbI@a(ZnF5la#JB!ZN<aP*#aWE}TIc-{u-_ECpe81zCO ztc2qB;rs2b(eqSEnxOc|X?KPp{rD!)GBN;uArDt{C>kIdpN}%fzGoNLQSg`PdJ@T$ zsEYE9S}%WixydL5*wuM{v*mrhS!#50K3WeISFpdO-ZgoCGh|gEvh$1gc&JtwChU6G zjq}~yLB=!JUcw?b&$~+6M<yS)A3+tuV3u}0#?)UfZeiZC2zX3iaGN*5H}a^HGpv>u zVZ8O)GrGpI?eaw6D)Ia##IT>6@jiJ8K6OSM0V`J03quYRooBmV?E7(vOCQa(K{q`T zl?o$_%SIlF%7h^wdqf^Ne&%M$$7*9lxKKbkGp-%66m38VeHQDZ(nUYdyk|ntZ#ylH zAbeW#=1ub9?HWJ7iLeR)ozbaH&-XAT$QF_wffM$m^uk65R3gP^nB&y<8<evMo9I!D z%k^Tqv;(@}@cL0cyqSA~EUO7K#5HeppzcKmIIL>xg>`b#88J()#)Qx!>fQ$8?$MG| zSdsvuKX$3ekYqSX&_UgsJjCF!ZBKY2N4PKPs`HC4avfaNYZE1&>PkPaCa(R-hjj*v zk37NM1D>Oc9EnHvb5B6tW?ok90pI0#DbZCIz!d6YKhHGWh$Dyn)5U*YOQIM98tcek z(npAjBV=-xEVm6#G`hOa!;Ci)NXk=&f)RU)kw^JY!xVbh&Z|jud`Mox-6!Qu`d`_E z<RiHIt{0P{Cc<Sm={c2`clAsNI|U?H!+ZUb#U!N(s^BI)?g*+ACWdyD2gW8Zaos0) z6q2;pB#N;fZ3?kVLwW?S0&4U|o0$h|2Kty^Z-xXy_+A3^+JL*^kpUoKMD(_VGNSau zlG!~%#8;B`sx#~!iU~W1L;G<rB_6Av&d%?Ch>mL3n<Pg&j|Jo>F7+GX;2W(-F3IA< zn@8YhVY_lVsPz0vQ&f5h4msiPu*q`3(Q3ln)Q&n#!fGURnEwgBWQ$CaC?-9<^v=8w z9GUN7f*SIONZz&hitEnPGeNNz;UZp%=YH_Hp%-Q@s3Q=cf7%E|FT{bz{Sg})jz<f3 z!psG9GUM{Q4N;4QIL~qa#tjYIBd|;ugG~n%kzabRAFETa*{1Bk{D!+yW!!Rl**!8K zKMg8lPCDhS+rqPK9jUS(E<q6yqA$fky^WCULwYSj%cS#6y_xgqqFsFxWKIFzDgXgr zsx%?IWSQ7R;GHm*a$xaGJjO`x0!;lF0lE<k2oTezGvLr@3z7;~PgomQ)-EVNAsGs{ zASs}`AwR{>iy6#_yyWfbzpTmqS{!^~**;S2I*nslG%}hyL!u+{Q8*hhf~Aj}T|SX? zRvkc`k7^g+d89#z@bcM6$CiA365Axb8*zDpo)&<aKNlGww&fMTynHPAQ1Q|jWIF)K zxd^v}0{`h#XybafYf*snpM+cu0G?lDGemQ5wuw8)6yvQUxcMgzZ)~((>N+63dSO4* ze_+84jZWT;WAJ5<hN~FPa4ic*2ISIZyCTkSf|c`N-wsERFX$?fYPVBfYDIF17atx) z6!2UIMEjiTN;n^$`;#mcIgfNENz(t$lH;^<qh;m#LMw{SBm0SE5qCQpxJXP0p>y$< z;cnYZcZipX_mJeC*nYAzJf8kJ=Z64pJh?M5e6bm)$Cws}-7ZiNhxtYqq`<p$?h1oB z(45c78N%-fm!Y-qc6dc9wZ#l)c7uA_1H{_J&XV_{ye|$a#%%RFkvWXQ>`h3#s|vjP zA0O+8`C#7e0!SgUI#wtvfX*YpA*m%(AYH4L>y5<}v`lBjxKoxn^_KO^FY7F$4bJ0F zk%COg-@<m@Q)G2k9WPDomLV+L_jJ}B2?3xOAUmY;ygNjn3u5hS?NzGT^`bXui(%1s zZMy(j0WKemTPZlKISLnyZ7%9PYOK<u+ANbAw5`b1w;UG4`oPv}nK=D)(Us89Fk6NE zruo43MXCtXps@?$((bJd;A?)3CS9`Hh5MDdViz=fuGy{v-tJi}JM0c&EB2y(W!eQ` zPn70DGdfqAb~`(Y(*0k}EKNv|_CLYwLkOOG`PcdhTN}%P*H7-UR&r<>7BdS8h4KL~ z=7O&7$mfO{=YZEUsWx>Ylr+G=v6;1}w~s68ASW^ed%UEM>|D-YQ`;(d^A=C0Rf5A8 z7c(=hm+J$GRe7&pg!hJfv-Yv!A=3=M@RzWY#e{i~yEm!{hcUh*Ryniutiv^H5c`CW zIG=(*w^SU1RL>k{6TBBh?`nf#RqTZN5h|mP{6!4^yp>mS=`-seAZ<4MROK7etNr|5 zE&ln##b7MBMH_7KRbdIP7J^BjKi=b$T^SKudk(m|LihQlY*FKsFVer1$!{A)_#D0e zw*NS6+vbR?!?ntXnK1NfF*QHk|K?J}8nZhAd)w?#UQA>k`n95uj}l+K0=Y|55+t<# zw((RL?j~9Bj#C|Cy|rs*XAUuygBDkoV3)0XJE8!+SZy=VmAK{#x}IQuDWK`3kDB!{ z1Q23<c%8DkqOtsv?QIAA0&y?2%6GeU)p{rC99E+x^pje7tglL<4qT=7B8DcQ9T%+C z)NGyt639=wYT6I6j!z|Thr+EBN=s%OckdZOtccq8kKNUO*V8hVTNBK<SgN<&%kBQF zua*e3*cZM@N&Bl|B^0|;owKtXvRC0s=Imo3D2uiELKS}DV9yjCLr;X0zqg8Jus5L} zb9<X<*NQXu68bB_$HI}faDj(9W*}iG+P=yJBYjfHi%TffrXjpyR)YJEo=5K_Sod7p zUM4)l?zIo?RDe5hv&Xc}V375;%n<M-k7viCG8<0$fmyUt0gA+9gwk)WIBYFLDC85w zKO^21SDAXVkag<>7^4NF(;Q2_0{Ipa0)Kg@ozOVA&oyrs_CQheZzsZR?`)>kF1sCW zw{lA<Y7t|TgD?g}h_HP$`~l?<VM8b%^zD!P{}Uc?3f<d%oa7VE2L;ha2gF|LAGa4# zX9zv9{LkW=A1rfWQINV8`lDX|tA(@2huXr?Zd9`MNw;~60{r(bTK;g4VG&!pR;qSf z>oQL$+dJHGwOR)K*zRuEnHz(_nE)n)L8Xz%ghLDtiTeK!V3Z3j)ia`M)^YLNOhaQA z<@m%;F)qv~SLLb9NuX^|9v9QPjWaIsA||0D|1FN$2g@(+-S$-&kM$<)l$rjlpTLWa zV@@hzXKrW0h)HA23KQd~cI5I`?;bJkkvDWo1A`!IX6nGa_7>GKoeQJ`u>>FgEJySQ zN!iRcYTsr|Vp*AF{>KBWtFMZ}H-N1-NY3Hi9GI4u-1KfGJ?z_r;qwU>l41mJK9OO> z#qUyDM2(J;cwgajmMay6ZZbAKlxV&D+<l8u{C$fzawRxFS_b#3aHy#|dzym;MQZw; zdUypz)l4vtG`@Okj@CM{b4G2d`mb_w4niW%1!UU0RSBBPbrtE5Ee!aB>jzHVzRV(_ z+58Y9mLzyN@#fac!?b6Q;kTn>JvlCjtv<cP_qymqARcR78=K?Al@xycZd-Uj@r;zI z5sjTk!|PeTbaThjR+EWE*LR<y!Fctb=RVdu{qZoSjXU&R?%t{>uy>Ka6j1vvXTi^F z$~`W2LiOn-Rb!XGQ%{r2?(x2=H{H5#foLs{v^3+36MZo&xRTM-zZiP}Yil|y9PgRE zHP5xSEc%M<^fc-8bMxp=urPKq$Rjd1L*QvHGUcvwYS?zcuJv^h>-5y6(g*G;+3%N3 z-o9$&=6S20u(Tk#u;Cu2Bk|b5sf{Csml^*`QLoqF$;(Y<+5V+8Nu$ulUSf>$n+ou+ z<O5H9PDW0cJ;&ni$SaeRF&`Z<BmIhvWPQ0?0}DNYD=>X}-0e$hjsIARZ;ABVXZpf4 z&uFkHl<b&$;>%&1mo_y2)2?xMt4aD~eB_#v`9cRI(Pkof6^8H_`ysfVg5iUW2lw*d z+COV-?1*gWs${O!3>4JoR?1iJR!9Ko3buO85L3Bld80)BHNi=16U3Bl?8oQ()iPi0 ziAABHXP)pcZ-2{<itf9|$c_RwXMank@~qUSPENM<xb_1-?>uNEUR%72TIAn}w}^jW zF=FDoWu)Yyl#9s4p6e@JRhLX%nKaS}moAl#l}@kT!h$O*RK6tuKJ%q#<>o)%-OkIu z4F9aXlr__vm7biHTM%9Y654rSB8D9n7D!cklcr=w3K$ty_9{v8w*ogQN$BYG3c;s= zN`TuQE@7`Ll<F<O6_%RkTr`y0)s6db#V)Ra_su&1FPrRPFSoCaE8SK75ghX1fv3{F zDAx-QKypL3CNtW1oon%4+!_>HyWJ-{l)#it_n6<-MlW2tGwdh|Ea=;>g%zHyq12kE zo8eNo$2C;@vb=^C0X-@(Z|O^qb1mll9MBbs`0<l?#=hjym)Py}s*&H*HhnIxH%b$( z82UDDab}sRPGn_N3oMo-U9MlhwPY=nnyRTsTC@I9<NZ--a^@LQ*fr5)>G&G&7dLs0 ztmnU-bMGSOMbLIP*;{SOv>hy!(VFcZ4&N*H9!bw{!_#CbF}Ity&+T9Ow0rxO)=1WM zk8tXtOW+#fQOx4Tb*DJ?A+wV0XV$8gsr&}4gLuC1lxrGsx1L-Jfutmc=t)_BVbt7= z$i9<lvg1`_2DoE$_^{^3F}(GF=Fpq%5gur>A5o(>q5_&k#&y_B2ifF13|O%5IL-1# zGfGdI@6+UFq-?D7hYv!`Zu*`L#REp{5VGEjH|Vt=^um)K!na`H?B@N+4-YAWfgklT zt8eNIvWc~SLa(tOsK&lnEIlW|xEPm^@K9{uK(ES8@%g5^6Kz0LK<kDT@4Ob%$||ox z-BPJ%F!Cf)3eoF*bPIg<OZBzX+wI-QMQP9KWmG(@nvaG{SCkBgzBny`^-RG}pKjlD zRpr$Er~{BT<ZzoEHGz0pf&IP#q#~Ui%!9(dS#p4$kKR;_H(Ya(PWQjCDTL)P!q{ef z+E1A}dCZr?H!kQg!Y&&4x*yd1-z_B_Egf;4-VXUW4NV!1$*hgH=JzdNe!3s2cT;8s zU2O{!o>T>Yip@=C5B+a*`(#zw<S`*Ex6fql0odgM_*)&Bqqws0=Ldre&JBs9_x-O@ zPd#SG59?<N+wmBj8QqoLlw7ftcoNU(toerjTr{>cu7c@T>FrlR&e@`+70@L{HGzN{ zv+QS&-7IYJwr@cAY>=~80i=EXR^zoGP~BK#!~4pq#~acvoOP#2Zcab2JoyIlQ9wr} zX=zn65MNI6k;`_OaFND|lW(Dtl9E2k#nZ{}sS!9x?}=x{&E%Q!-Ju^7{&#tD>t?Zc zdu)Czg&uZY=`WFry}cU$Nksg(t#7ncf*IKD()A;C(r?25$CEzJ0TbSbazlb=BqBla z-Vmi#lhqvK_2Hv5#%SGaI^mzSd}SGF>08o(Us-AS5-TotTQ5U+bN*r<m6R{vKrAgL zr0<#%g=hS57ESHn8fsnA_%HBypffU`AimEGyiF;jet9iWSm}88j|2Qm?8j*>9UbiW zk-_-H0nSQiG}@H~Cd)H!&sVf8lfHd}_&ej7PLb0Is%EN~i(yld_|5D`on#DZ3L91c zmU$dfeZ?EykZT2DD@RE;c`Jya6htbeLX(OU?w87<j)&If^X_(h7U@*dlGRbX5o%=% z4l@5{;@y2q=IqV1Yp>3mKiBrPu2owL_xzK38B%CzzbP+a*pR%V_9f?NgqL$Z%gs|9 zcF4KT{o~%J<10^pb98-z;TmtbA4XapEhuS=lJW{$|BV}3{ZiPxpse`4_|?#6tm2H3 zmT_!Psr0A8n~ar<JE?#syvkv*xr=6dN!(`H<6ozH?>vG}IXk5T`_t@S?kX5vD_WB1 z&6m~Vc;TeX-_KnXx6@Y;$qi~AKC&9lIPfeoTg_hD{CF$<mJtW}g2dYH^xZ0D{*B7- zYIO;nJ?OD>N9nDJx^s{|nHz)W$`s%$=Q(Ph-8pt~BIWCtgHmxuR@+$5BAiXtcyNKA zGa|MA2Qj@SHofo8eT9uPu7;6jat>mWiAG0_<n$U5L3ozuut219Uc3G_KCC~<45heo zC&12ibU3J4MNz}a@ZWU1$GvT<@{^Ywt)BH}KXCmB2(wu&>gl*6r!Sn~LbOoJ3@LwW zVm>m)EK#@Yby;-Niuhcgy4q=8`=DF$;89&1Khe!`CU|u~zBHxPUZGC?&nL`4>-^J% ziU75-^@9Zgd_uj4tzMYK+$4B%t7=dcKf!4|Tz^EVdgh?`=WfN1AAEhn4~`%RiAsC# z;c)}6r>{Q+#d0e>9Ni~|-6lzGKs1$P3OdFGtvzh>6yGK*E!`xp9F)YYd{t9IfDP}H zFUs_BK0ZhJY4Yl^?c2-JvX`7Dc|IG4N;z#++my{d8dn-ITeN*v6Z~~v`$xww^Otgi zTA=*UvpKI~=j1^-xf!_+$$qW3AF3wO7v<^}l0S>W%bdsiXcO+rMDV2TB+c6DB{_EL zNYOmD`nywk?%dVIk+N!2^n%xv6}jR8?xtdzy3*p6XP&mzGV%+E>U1kaw#t`@ioBR% z+rFwb#4#)LziQC#UQN<(-NvhO$9m<zFBq*Yy+DjVNr<hPO1p9Vcej(w2hfpoI<d&q znP2PtP~qy{yW;B}W`@d0Peo-UJybpTQ3I~qE4fj+c_@eYTqhVUy7thio$3bxt5%>J z)Q4OYf<WfSSH$XU2ES_KH8@fH?Ty?Tv*vTCv@MrbLqg)}f2#I<HknB^&mKcvq@n{3 z4W8Eidh<SA1Q=5>Y2%`?n6Z|X!D*t}HVn2ksLtxBd9xx|<^7=LarAOb%ud2I@~EwZ zdp|4dcbQ;wy8EsiI?HAYcMYqQ*Tr*a1^$>*`~3~bD(KtqmPOC)oXw^biPqi6u5ZHD z)h7>}TD5OTYCHt0O<kiG_dxdFDR1ePP-34I0n^p6cPH;EpC32s;himOz}sv^hiv{J z;V4@kY{fd#iT+MSdCxV<ZaLR&UiNbV{}9$&i`_oT<=}X5m>}KvUflZG_JHs>d(XWz z0F|5SgB^ZX23!<^r;D#Yo0Uwcm=uT?Bn&@L+cLGe(3dz-CgPAG7T=d-U?Ud*sv@Zs zZ7lM~_3>&As{fND;+2~_Dfe?EB@tm?H~*wtSng8QxTV>x=at@C($L7sn~6`<^k0XP z(_3!~Ae2<K0G2XCss6tg#giI&j`C{jmKV0ttM6FMqzyjBkE{28x+kl8q4Xp1V&!0r ze%RypyO(&&hP*Z{3vB~_mZ?BS24Zc8)dId*nkxp1-`#p}&3P*0PU=ei=LhZ>$4>bn zA$Zn{VVl^aSLJJgAWsw5H+mI{i?ZUfIpO8vlRODCLjfr%Ub*ZE5Bc<GW@Zi`Bg9I- zLF(hToOMrzUtIYdulGgoN#7T?tQBR-7<fRrDk$9}tFS~Rz9<a)Q`$ZtzQG`LyF7C= zuyQc?Gk(FQBp!dGjWeMz>RWn>(d_cg$(wqUgS$?d*Ar{v-y;Sft=yI^+Rd+cE8PPd zEaAaE#xVf~QuzKho!osPC*A59=3#ouTA*#8P0WlKAJ4a`+$m!tqZsIN+J%lD$X%iD z8U1N?lixRGr2bpF8Yq=%WHan=;1;7@Aal#~PIA9**zW;k&wpN4Ih{=w@y}|+lw!oS zwGBBwm*4d|DC(W-@Jbv$iF{_)?Kb}i`+cTq<YhezcWFfGLHiJ(Z`q(i=`p<TyJQo? zvFU?hr>esIM0%%cj*j+(YM+q8t&sQuE4?u7#7HkoVbxl}`Jmgjzz0_aQk~<+oqk%F zKjc>`8aRnRiF8q{TXYjJOu41m)B!k*g1m$Nd*@Xyl=rP|0V^k)@Ll7GM@n`=^G~9F zrQl>2_Bc|?)hSU>TEhQs?|66+hdYGbte2k>$H<?t5f*`Z5>gpu0FI5vo6^YXC20qs zvzy)K-j7!P>B)LGut1D=j*n~b!^xaCg*%ru*dyzwp2hK~TSzB~!6j4$ZzpniDX71Y z<89K;eB1q)YIiAD_F1v<+JvO6YNx}igx=s?0wtI+o6|$m#I|n_KK$^lUU0l{%uHnc z@G9lA$Wqfg$J5lg^|1b#44d$tpb53ErlK&|{D-UK=JVkyVk6wn4tn6HO`8+<UwRdx zdp<>+!#?OAopbQ2rN+2>xHN2pQwBojymhm8T#<L0h>Vmb!s#~GSchWE{4&$JJg$yi z(}DE1zQCdbr{<k90qNs8rxsI`P`Xt1dqDYwe<w13qyUb7z!UzlajB3qQN(qgUrIGS zJLQh)n0t6p&CU6<50$a<(@(u0e_+p<ak->G?wJ{l5r#_mokR~T`|3o4th2kl<fFq4 zFOjAdao-J4%P!12O>l!tOeYO_1Rz=<^io{K!17DWOQ6~t{w<Ta`k4dEZBYZuD{mZ| zuINNBU1-|*V}Q!H)^Uy8@qAe7<#0PI<7}f>(6}W}yWpX)^O&}E!j=7k+Dxxlvz1iH z+0G~Z{vH}${_kM{I*fc4)7!r&ftIC9M8ZOF&$sQC(dUjK#t`=hWdo3x$s0G)+e)pG zO9;o7IF4o|z@MguwhfLo#%Ei{CbKnsQ(Lvx&FNNtA^hi+eyKQf1vcJ!@)o5AWmOh^ z8sRxF=RaEeD_176{z0&2k0Q+QO7Qf+@5`?a^}L+lbZ>>FATzxf?GGD#X4@|P+55rQ z8NPVq^|Z38Z`;#XInQpXKDMokIjdqg1hufJb<b_^swo!>c_LXQGxs|%BlY#rg_p95 z@_lVXDnuhUxtiNod#P(?hi`<;a8ulYUh*TnY>aQ~-z)e{sb}jNR|bVKsaVeC0f(yQ zw35EyaVNy(!AiVoHNeRU(Ng1;>9&%&fF7x>uC;SSH<?!X-yYxGG0S#a!?PQZ)3OAr zriQ@fyK>5%W(kB2uK0g{n>XdvRFj&D?iGfXW^H{npDXjh`rO0tWLL1lQPAn#gz53+ zRF0+ReA<RTr8T!pKn?MAbUS0=vo0Ajf$qtj0(yD&922h9P1QsL%N`1vwpxKGy!L?n z-AQSlwxC)+(2*tQr<C&`N8{57Z`{Z#%<ae)s}-D;e_N4F7Bg|kSos2JGC7*SKSh+( zW{W@NyFEE;*4OOO`dF+lc-F7zWvO5=cwiad!fa^>@#PhC&JlSueyfS?(?wg~yilWm zvTU-4+ap_jqQ-&cWB<Cmy=d^(baC4AS9ZG7!zELlhxmBH=kzvqef;ltM^^LK-mA99 z6Py2;7b|qOAP=}?3Ez~5r`x?|n{ymD8~yIGf!lld5d82fVDoz(-^UeGPHIWP13|yT z1ko2@0U=Cgyf?bvNEW(afLA~z7tc6eIlk+>PqY5k>mAb@RT=-(3yiB)^>YVj3bLRu zjtF3E`^?FxgLBWD|JPc^sH!hGYhMReJ?;@tc!JgP&Z~o9+j~y(56b^{^S|oeo-hcH zmu~i#5*^vTmzG>NC+!~a;YYU+i(eh!Lhg#4Lx9P+@qoowK|1rAiqK)q&kTiHS3Btp zfw%uncz|(U%B=E#5~vDos&vLB5Ef7gM^`b1EAy|1yjXOQv!YlW8iT4ux%WRt!jyqX z3KVM7aJ&;dPp3_s#?w}Gx}lkHP*K}GFPTv0mdW`&uJa)_Jo(X;gz3}!Os~ntB3m~X zH{^5MqPBt*|Axc4E7U7g@V<_P9pRZ}wOQsgk)DqhP1+77IM#msDj>qPjT0ul2JZy+ zh+e*YxnT@nro+k@AL;AU)8~)vUGc6vbI@|9mwDSZD)OWJ#2e_UQc)NLnL79Vt(-{U zwUdW`KK4dMHcZ>(qZvesE&GM%Ws6s?IC+lCHjUrvK@q+L8E9=w^M4wqoRDuHwUxyQ zh;TIue5C513BO+{$se-zhO>usat`VprsB@$H&^-eG;p7(0pI)sowRLsbR+z6^a*ab z$o;@%K)bs8a8Af8%NhB)c&|ZH$^dghP*Ip+izZA-1o(d=*Cr=xd;NUbFHCi>RVsXk za>IKptq45p*VtReAYAT%nt-!vb^WMBN0BH&{_!Q0_YXA3jyJsJ(=_?Glat0jD<)S? z^o%|hQy1N;a;>@dC^|V=dTt&7b1&ql)4t8ro-}Y>NZHKD@vJRv)U{iY9K26cC{Cd` z&q?=NM~l;FH~!=k_^$Yk1XmOV;@db?tw2@8B(MeT+7(~IYp+_#_V=K5kGUH=$w3cu z+?Z2Ky(mI4%AT-&8IioEs;}o*rw~wujsr-Y`Q<MW6{gP0Muh0%r^9kVp?PDr!JgyS z&!<PeyR~IjtI*--!-1z6n3zPKAc=Ce`A_`|&^&~hYbPp~4XHinut`dD7o$Igew?o8 zMTFIW#`(kOw$9o7zO@gA>m#}!YK%;RlibaA^y#!GG@8*CL%VwXRo$9wqV`S)>1=!F zyROR4C_u>{oQIAU;=`N(Gf89vJ6Uxv*|R7q$PH6XgePJ<B~l8<x2Hy9RnY|yvMJ)i zgM*A$79$=DQnzJXeO~<i`wOma0HX|h#7>izdOArr0++rvUL=n_{`gk#St*L-=u4!3 z^Kh6ep=`nR9f_wuI5y!rw#Sq@A65cK<cyRp+CPQXqs;5}GTa@Dj?Q|~XicGBehuD~ zLi!g~<7*4o-LfHx{PWk#e&S=@ij2CoHfFY^ua3LdDr~b1d@I!3Z9us;_Y9<4A?%OG zU$qgB*5l7N-WU%;<{nVbRXbM-5I+cNt9vCle|yclsdxM9+p&w)K|6f5_7P$o*Yb|r z))CD?kjK0iQVPv#kFsjco;_<2;C7VM^b1gDi=T#R<li3axeD6{;e!h18`IP}lH3_# z_?e9_H8CG3PnfY@>a+U+?XORr+WEI_A)jR~)gxnDjK@muIp|B=zNr4_{4oY!Ixk<~ zJUnq6-&jo<cvNxr?3uIMjbdYca6fQ$H9BZ6Gj{hR>(iaG$3^Ox!zBfBEbTV;&^M2S ztBB3U7K-$Ex?0%pjBuOiX~dj>TT%BKrrJP`@k<;(>Q={&08}9!$L-YhSK3f@Y~4O> zr-wJ(sa^vaou=COYdj5ySFQWW2k?f}9*Baf7PoNGwJh`zIge=)JAUR(0LuJ5=Z7b1 zA%DF2ewcHlVq$)+zq<Y3-q{@pT+E=2Yn~e5fvGUm)uq4t1Qe0QH(Ef{-dt;J2Taz7 z6j1J`L|Lm~%6AVE=~Ll#&TWX_ImehIiT@~b96RjBb;p(bm(zIHu~_`I%Yxz+1#KY2 z%9c)!+QSQ8DYO?G{3F5db$m*jtf>$12l)<GE5?p;B5St;-<v$1@})lIw$L3j>c6ex z&;JG$<D|XvY+K3DZZl*E&tt6Xun&hl(lzf+A!vT&6q}H$*yVDf*-3?&AAUQ<NxN}o zI!n4~_u5ykol~c{%j0(N+qH9AOFG-v!YxvuUR{p~Bw_FQ)B2bz34U$P5y9)8k5TQt z>e;TKHyAlT<^H-k-?_S<9tgCBQ*g?S1L&Zca?Hb})P~_<HYFAz%{KBWbFQ?_zf`s6 zJ?71h2w}h4j_vHC<qIa-BZgjf<KlCLh*#M|41<syLIYG>94A7g8wI;5%;XiWQS(R) zV@&v~&O(**7ZZ-$3+IuS`H_%BNvDv*Lws4%6`mc1c~>{tv$o~O393WTI5>Q1%Am$6 zD0GLH^T#j#+v4c(%x1TK%bf%?8d&}i{ZZvY@E_AROI9@Rw0pW^Qaha0J>nCWFCUd0 zN4aI}9L<<k0KpT!eRtaK7a2iN)(RESF+kB=&L5(+iX?db(``seppbRF$&~dXcF7C@ zoV*i4{}xz2uM6J2<R-GpF;#6Q5<#ay-EUrT#3>Nw?V>(qj5UsAI=PW&JSwJ}LHKD8 zWz4WgP|C*Lhq{)H<;Ug6MhSrFW6Bh1euW;gTFu$h)h}riK0*YDAD?CGMP>>|OncPM zWX{8zo8NF>IjAQg9q&8XGG8-i>z*~Bg)X_WD2h})P_z}kv8Lyzk$03j*tilY#va;@ zlmLW@q1?pKe(cR|fQTRTK!h4aFSL*ZA_vwVQX2*IvC3ZAsx5VJ%xRrAslfgH``7Ap zD_eU#dPEiZ&f5|~e&JPWzu&1w9&&?*JpPQ&FTbJUITb<@uFQiwN2zoDbK!G%r=~hI zt5v<pJf2tyso9V~&e_bk;!i)&g5Lnn^`D%?UzXlB85^Q;Vlo?z-U}f9H9m9hTobJy zaPrmd#e0>1Pus;X3r96H8@VoqUDwoXgB=(j^8nZzH%_f6wK#US2sApjW}`gjWRCd~ zOTkC3_oyn3vsWG>J%mS(o)s8tD%<^C>5NF2j9CF)+fTnHg{CgPtyfWUhd`9}y}v#! zpt|ka;z-z2%Xz<2Z$P!N{VWK?&MAxcG7rJ=BYA2bc`yNn#ZTl=2(XW;2<4+`{i^*j z;Qf)wdomJFK%Fq+Ytgz}uScXT<|a>aelf3~yyhn#?{S^N<nKcSEhvF?KSIBbWFY(c z$HeqAbqSHjOoJ`>SN(z=@h8Uj@bebMnX7X(-lzoq1!A7~4;{Ae$29E;q^iL>E;Iu^ zS*4TRIGXfEig<6YIHt6}hTD5u6GK!j_fW~yc3)w>Tyvk+6q~l%y17@ZQ;q7}OFDx= zO8|u#xSw3EU`QX@6|72||LJNM50jwv|FmcrKz(3}?bQpyqV{bBf!LsONn4YA<^3HY zmbf{~Fb>-5IGWfV@GOI?kMwE>T@?tpYq0h3@BMIF==dJ<AHbZ17#EZ97b^rGJqhR& z_=RaLS&b7E8#vMJgTF%pPk7>MyH7OZ6(V5DCwKdpPQkblTU^rLvlqSJ$vB7tD}nXX zWdC3j1RqO!g3~5Tz1|@*{0rit6Zz91_LFN7-Y-*-T#QS93C>{2J~byW=!E)#Fm%!u z&mt%|a{@mD|9Nt~k4+KEK~wl3)_u|x?>%%vT80VGsPXWgIh52i)V4s6i}m(swN>;l zjiYKtAFeLQhEDXzd_T%*90js7PydC#0{??OEeJf#;Qs6S-x7SE5fA!@sl3N7-^b*p znf-*ViX$JM<WT24?}vbb_VfIppWl=33pKE}y_PGF`<kOaKW!><N#vpqhvucQ+_7Ix zu_(I-0(T+Vo9C(*1H->Le;IYMWx=zp+a21r<N2!P;NE<N;O^beYYqd0R0m6NSZGe; zIA~uYr}Ss)4M!D>ARA2l#5dk1!N&40h6@^N2o<FvKfwD>qJ^0MVM*PfQqDxUASiFY zSgR>zN0w_xwjv>%{<^8|Ddup#1<&bq3+Sl*@rctyZZbT+Bv{R?_Boz581w}9US`J~ z;vEGOJE@Mh`GXGLgP&&R88Xh$91FgHo;_enpM<|hx+pT<gqV8#8!~YVs#oTz5ap)e zUobQs7DP)I+o}nUe!2wMlGL$iO5LnPO$1*vgFnaIWT59;@g+OAl8~oY+Hr4%U~K%% z0Dk22Ydh?Wn|pRbu(W++A>?@;it=7Dh>v1uNpTM^@ciEu{)??4b6)ZxSPCmC1R{u* zxBpK_n!_^eU$9Ld$r%jnLq%cELhoQ*6`}lCyCpfIIm`BKMr68|nId3yto7mVQ+w!6 z<Ac+JwYQL&f4#XF(tVX%-dZ$^517#tjd*zX$xG6Go&T8_N{OM34G&BX6AGE=X&ze$ zWtrcDjxW1rtl_c-B1jQsSzW_X6aO1kHT6>}yXo5Q7FaPba>{}AW}u>Rn5saA&57kt z=HLlYp251fMAO19usW;tZ8?1Hm5aKNN#SDkLFi)j(HC+Kwh9qM$sd$1i~Y+`#@Z=$ zs$fq`7LT5>$PW3#Xp*KW{cLvWcmtb1#o+s^^&ca&4~RMm+yk9OChjLGF?{>bz3(0& zBUbN+YeG4?KD7Vha_V?PbG!&s*fSG?DPRe&Xxt~p?}1$>Zb90@BZ<-TL8)Q<EO9Cm zagu*Q{{p%sfd4QQesR5^#Z@sscP`u$wP1iNwezbMA8&<cn~2B<e6L>NS>o=G!>@up z&j;`xxovQ4xQ~U7nSDJhXx0_DC-(kMMCTb1TKUwyyvt$%^X9vo_@N`72gs_!<_iqt zP(AR4qZb<vW4>cZU734mf_&h)0Je>~v9P)&H|Up{S%)NoJ(;$r8{FD?O#cD6Zwa~d zlE|8+U?j;W!RIWpPyFM7{U>%|_jS&(bWOEXrq%y6Rsuxq3&mspW&R(kt~9QR>uU>$ zsHo9eL5h;r4J#m91vfG(rPQr)LsW#QptPc<iikjxQBbK8jkqDAM5>5@5O<VqKomrl zpommaCK}m=B!rM{GV`9{|LOg}ucjn3_ug~PbDrn9m&poc&}3?4k4SWv+%(bl$SXPu zlWQoqOVrKMbyhw<LLukYD})J{i*COS{3(dm3~8E1&4SRQ=T!lx9b*_zv?-5PF~bWD z34MhwjX7k4VrlfXf$QHGQJc|CCkHq&<E!M($m&gTe?I$AQSjgPkNs!AE}w{8ePji> zvGK`udrQE>wO-M!5c$7!9CHf7=w3QWZd*ak(!CHew(~~Hv7^{9!dr-?s=Pf(M|fTg zbyAh1ulCbTWvnFs^=q}ay_t5zadq)-LDWRTq6~k2IDm+LCLTflk;HS<WyLF=A8t}@ z_8=7T>|Mn<WOy01KxZcm)QBfpWU|JkKg^Q<b-H|Av-Npcp%zXg6e+j<aDX1SMyKiG zT>67$QcL`}Du+bu$w#tq&yXexNyJ7H9Z=)caveGXJqN#xv?E(8W}@$R=mVJ3G!}s2 zue^_;Zn_injU1Gs5qN?sr+?*fbfIoTWv)T`u<B;WSeU!&4h6VL#arY@!e>69IgIlQ zXPCDkwLA0`)Og(q8@-K^VTs49at8dLAy&MbFLXCPb4LBIHH=fLgxqqSjZkckMc@3I z<pyI5tU#S~O~SxO_zvBo1Xq|br5l&BkPg2bvnCHJqum7)<hJetZ%75jF5c?O<}hNZ z4l_s3s`kFuXFvW%Y|u<t$1#KCu?y)d25c)%Ugv)(845f=t{ANgEthO7&N1yff|~2b z3Xy8vd13VFbA|}0OJ=2RyAT^qiDVLwQhRxkJIiB~b>Y91<5RWMyrCEugk{G;yD07^ z3bhm0N$Ct7A>@|n(qK;HE&vwEBmzIeeWA-1ieKsGDPdwKR5=D~-n!j!-qq)4vCgRW z3#G@XwaQcgaHd+uv=pTK2`r#L;bn)L^q<!0q7z(qLK%-+k!%=q_)YpPY&yaEG!su& z<){{oBDX1*+sMV^;33aho*_~E_O1=tiFE&p+(QmbNkf7w#~$_sYC=W;y!H^b^UDV; z;UewW_vCchN|*je{ww)*uoAW&f}i9m70eI5{WW%|wVb=1XjVENrLI7n#EF!pvcsi+ zY3e%H;XqVK^>{)YkN%^|(M^Pg!#WDt+Yza3j{UV?>K-yrAU%RXLfYsHK8uD^@OSCL zXph$PnVR`SIE?)8jB=;5sGj;vjo?`)5qxDzJSI}Xmntx@632E0gj&2@>1~Eo?=W<f z;iHHtNkp8IF`ROci`>b{a>rdO>Eiz)awA8|<p*wtjE1xmJy03<dkMIQS9ELWyrWKi zMi`}+Aw`X&1bE0fs(KnafgG>2wUZc3(&?d@f-yr_Jq8`8E4R_FRZ7i~Q!18FyPY?O zXerOyBBbne>?3I9G-@<K#RK8VQM)qFq!cdaLevCf<W+7g-R5i~-F=MwVPr}fQg%3i zj4Q{+^IVgNH9GGj%vZXce8xodVEkKK03z}yy1`W;(&fQDYo}0)JL+=<+&8x5qB1Rn zmufqP*c6|K@z$I`r|95|XMfdo#EW0*jCLp@_b$gK60<7dk(J0Z^any@6N7Kfp30v= z_XU-|zm980r-LrB9JeFfDmgodnU##gA>CCF_z+E8+Hjq^%+W0*fJ#-OBUz2psKo^5 zD4MPc*+ca2kT<WKn8~7H>#4Kg!MhlRZDxLRU_bQCbm|BIWtyF2F=d8wm3fmTuh5p| z>$2h@y$%nhla;cl45jC7{h7lkJ*&zg6elS7pLXcP8fvvO6`u9Gi2?n^d%FtQQy{vz z`_S5RG_sL=22oOmR~!zYnC9qrx}Sv1>VD*08>J4snNG*^(I#S7o*FO1MgdX+E{)P9 zm5ZTFNi>0CE3wV1r~sX!+fkou)5wXw^7d2t`N3aI1r_3v<e^HWx*nr{q?doz^vD36 zuc;dC(8h>$DS)a3*VzPDeza>P-~S;%w`3vu-vsh^<y4pclgg^2>@eO$nzx6NNA2@d zXd3T2G}E~{Y&ez#iJs;a*gX+0D!GC{!wGgjhe2u#Hvd5O$%2BuDiV<igh_}csG{9i z6G%~+qX!g3{V^&+>1ikV0kM`LV@r?F^&(Lg^tkFdE|nZx@2gsK_J{SQ6N%-rMVr4S zR#4`;&o=s#O4s2Cgw@z%FF!#oqiI5!Zk$kI1q|Bg{=ep5qAZy5qrOClROmc~)VHW1 zFd{s>NWfqbZ+-Vx_!KVv;vFFeA27Q)9<r6{wWJ)BCC>f6P$7cZ@&I}BWL?mh3&i9k z6*e55uS;?6fAE<(PT(aEklNc}OS)r*fZT?z+v7I+Jf*@MyQq4FuYblFO)g3zM(Ikd zwv&|rR*t<>vs-BJQM3->EHf$d4=X^#RU6S=dk3)0b?9&iZNg>}SiN^SHBYx%2s&fF z9G>|1iw?EJ&Z`#LQFT`93Z@A4TB|<ZaQXDf9HVdc^dX*$j!Hmmc$4J;CThP9H=}^d z^(vO@5DV(2pI|ZZLRRI;I<HEF!X+zxXHcH->#Q1&Y=s#>)}Z=3!c>MqCpC5zZ0&9? zJ3si)R6K$jt(3TjGzlJ;V-|#0W$p**C|$(Z7rKhWZK~-+T{*QYxghWC!tdxt%AQ5I z9+iecr}%aR`1Vv9rmi?;whn_S<(SyB31fNUmakT2)FPdkP#Vf}kh9Ct#?W)f3wX^e z)73MV`wRovVnonu!!wC81ry+9k9(<uJSgv+!H0&&Ygo*qCEa<DU*g&?>|H8O$aIY# zu+6<x69Rv5xWD@R;05kTDp+O@c}2Z@x8jp6T%-Acz9QBO)$K`mJCQE=DC&22U<c4E z`wdPY;3yyr>igsgSY^x(5}vd7##;klTDJ<|!!+?{Wnuz*JF%pa5k}bPm=<(GcS!zB zyXjyJQ`>xp3cE+151t*xqKV=l5~CE45LX=zFu5MXy{4$qBw_{N4+flJKyd^eMlZ|@ zbQttyE9d@9CEJ4YO4q%I@Q4VdN;VJ8jG6(w__V&mCR+qZ!sCEcBs_GK875Sn6tcsL zaocsxNx-DP#JQDP$*sy!Z{1QMm3mPOtM)Zz9b!f=xLWKfLnjbpDx<@A{*~MWYO1nj zvg9gNjt(P6RXTN`N@^VGom9Lx?Jc?gGPO6dBR~t^8HZUxLl3OOY@Z?K#InlVc0BGg zI*tgb%<V^~kj>@Hf|n`f05%?#fuZu~d0qnQQE)e(#*l;;z|d6__x)p<2t%v7*W)Pv zPjfzE{`JwPX)P@u!mA4GqG2<wr9n}u%ZesT3I+EklIHM`4d$y#1~5dYqMLIqY1G!e zk0^M%_cvNS=k#!=%M@mU;gGQ0Ux+`HH|+2WZP?E>RD|C;S97SJs-cT_e0DVl(B97) z${#WFX8t9b&>}TZ-q)xRAe?ZwkSOv~h_eO&DsCb9(V7ZVYCTAcjU*tRKjU|k4}{Q3 zfi0Y^iJ{@7R#z`%jzsHzt!9K3cayo_>#QIXAj4T>(OJ4Im;Uvi#iIms<N?k2yE1e# z@dFS&#UDDLCe@Ho!Dq^uUoQ~uP&V-7!F5&tqd_lBN|6<c`LV{4F*5mN?3ilhWKQqh zw=HxFw0TSw9`D7jydL{{`b?M@HZ(Esi@$%ehcyh4O4*6jSY;PY_C_gfkBGM=1G8~Z zHoEk4%OOngMVLF4#xu`U7IOZ3UHH3&nBmFWJeu9uZKR}k4cxdD-4keR{sHqZqekc^ zz=f!4`a*k>IrN2U>?DO$_*7!v`57RYa#RuC#80wlPw0&PpGCvaw>u2dXVe(o1Di(4 zwM(&cX|{zk$tIZzszwkomU0D*7g7RU?#xi)(M#<y%ubhX(};XWewO)f5h7OPJz1o4 zzbo)sA_;gh{z$19fn5SN9X*-!lre(7J`&#?j4|(3I7aXybqVF(1uwPn)KX>1WKNmR zyppm;M*|Mx@uxAD|8y<H)wfQwO&uTg^M_i{3|&nbdq?pcszxSJ%@{;%^wV@fM_lh; zCL6?S1rYHcs9`$Cqs(o|V6qee8iq8X8_PJO1;=0Lw9mNgWFjPq-~h3rY~=x3$tP3N z+ml0|`cdb2gc+8Mjv&3uk<et+ikv6I@4e(Epsu>T!a$Qi$tSKGJs@{DZ-z8*LCwul z#{i%R*ehMG5S7QjwSx;?p`@S1qsho5V!1Bm2vQAL8_{3%7EFr4U&y&i%DObkk7Y-u zHO>&%f}Dj1g=vp6Ba+2q&@sAduwUw_RXaM+-JDAXOGr-c%X+a_SO?ozX`bmy!!;56 z3?0s6C-D{%Ddkz7g7}n0pu4H0)rbCRc|#{t_K@;GcBWXL09*k^-c_UwPe7ZeVfJKT zxnfswx84bPCT5WSQ1?{IXOOxca__tSc-brJ{O&gjG1y4YU3bw;1vz8!;U_wg7NTbv zsEv+SnVT*l77;NrG@OVNq9T?0@1^}C>HMIk5a>}P@Y5DU%iFVL;SG8uz-FH5s+Cm< z^h7m@lFz`|nuUQr4DAnux||bA?5gDMB0A<}Qs5+<#B-mjp*|(=E?NIU6AmxhHfSw6 zGvNL50yG{YUZ*UuKt1IbF)9IL=r#%iKcRzOM3)TTMMMbE)2a-?8)^<jhr0tfqBs$q zq*Du#=Q>{@^?_s1CO|))R|z)_G<$>69cSv0v!xh$!TN{r<$yoeCgUenX9^E2oebBA z-cGw}igDB?<tIDIZp7lV*ivxauXPmVFS`clT!o$drqlL}c!LgyOLg4W*KGAdPwsU# z6@;w><!RC`0zHLR9d07pz9Zyiock~F1Lp^%Lzt(}`a{Va4mZm&^q5ghS=^?tR^`mI z338;e${mDI#AoI(fs6cNhgin8LjRj4`Q&VBq+5R!fieg`nd0gDErhQOu@?N}Com_P zDt{Nm`;oyqt_79vCs;%<j^g!)zn!UxdEjNhT@I9wgvI5&)EyT}pEDMA(CZL;2^g;a zUHNSUeiitM(vKuc*~`fZmAS86$C9^Xjn4g&a>`BD?A+fYW10)V>>5dgmN5Yni4Hhg ztcNt;LRu=RF{LuEh%RIpCf!ucy!(=qKpj%ThYI8;&RGE!y`V6o)+l`@Q&Z$(Sa_v$ z1T_h2&UMOB(AjXeK_*gx+7MD3Jt~uU{n1Zta>isWnUoi8EEPQiot$r@ca$;5kfV}_ zRl3MB;2qrtRq?I^<!O+X%;(@@qLZiD@~r6ofpZ9Jv{!YGN`b!Un0I9*YE56qsvNf@ zeyntoaw?E1gr|)@S_XNzNEmnxt$$%Hy+k+PXfL#{zFo@s^pgoW>iDU@>lGe-I6kxL zj;5FYch=YD#V!T@9~uq+Sy6sUBeXN|lS58jTJ$$s9{7j|2c5zkWyk}n)Fm>-xKbKd zJjc=$_-`nf#MnvXOc2f?kC43|w;0e7G!G-(2$pmOxjl(DjVMTfZr>j>UWtqp+<Kw2 zmN7@u+_+!#bfp2O-`y`gLJijmi|%9s_y?9r@4b{HVy}l+OTr-@>~h?J_&G_{{O5Gj zT38fC7|5qCB{qU}4fu8KN~LWAdQ$bOV^kSxMu46wQW|{{<<PBOL355ig1-Pugc^r> zE3u$eSV`Uh^snBZnZu|DGK<Oh#a?OQebf80LvJWEs0x1%);X1=AcYjuUCeUG*vGm; zo?iFMrzM2J=jA3{MY(8aakt=WfRbT_ol>#g$WfIzPdrdG#5IpqU=F+|eu5bUa)b%p zQ}a)z(mOV!f2B($<wEq9qY=s2F!Xz!wM`?+w(3I7>3*orny+(A5QP#>LJ*)GGHMvH zpfXn=G9C2q!bi}d*Cwxu2R(FtvLrVBrSV!O(rF14@uA81$<>q$iz2Ep9snzfHDLDi zN2{SrR`n^R!|`jXS8Bb|)e33YL1Zhr7UJFRWVj6MYflhccp9S|S=-<Cp?$L{25~m^ z(vvo$IlPdw{lHRideblA+jL?}gx1&gmXy8Bf3pxZCoE--n}p~>BCd=bUfiwKg+9xq zyy+q=e?>c?gTFtO4cY=g!t~E3er66Qw*&9Ot;p9h<EF2P<%k7{SD4=6ab%v1b`q#u z+|NLh#Nuw9b}3Lq>PO%rYR}JH?YXa@r{-WCpB0v5OcKulq?6jY-}*DedKt|~ZR0tx z%4EU%z%HB?9XYDVzoWYldeOT6Cr$!OGLgT}(dOOhOc))jeQlRw9Q{tcbc#-1E~R-; zFYO6U6^cT6Q{;+o(@haH8qK46tf_rUzDxgm00LGT5V+)(GK_!!YYNQXkzmB*e<f36 z$qX493afDYFMcK!K;w-M<1c%nri>d3lBdFs<Fdj~kU-l9c9s+-^LGyk5H!lTzxee7 z3Nb6dbQjS8?D&~&iN4uEG#Qrzn}f0jI`5$Kf+oPeI)?g5Sq<)w86}p5Z~7Wo!PMRV z8W{97=`(k1>3`GENu+-n2a-~^H}>H`764$etDJ8KG-al&1E`|U^hLiJqG=dd`M<5I zTx_fC@*L=bjGc5B<Q${SXv5?K6~{PB9tG@s)qEVW<^@+~xv`F`o+>57#S!jgs*-Dk zG)}{Yk?Uo)Zh{$de~;FP>jPHUG}xA@WDZBel}l~(x0DQX{OvS+97MZi^VbTQ*o-9v zW)w7>`a$U@<UZH^CIl%LqYR&nrm9lxDEW_FSm+h-vagVL%HQB)A$zm_9FmoY@7MS# zuoS1Miy3baYxsrqfnFQqML8te7IVRZ19JMObZm<C+#~ezJ{^PhcAdlaBugBeOnF08 zA|w%8q-&-VsCxPulm>MH>iE)9L5G9nPt3%|L*vztP%<rX8jym_vCt7<Orh^;=q)|& z39H42Xs6HZ5VCJ_5!2h<&+q_PXz7I)oL65IK0mb4u&f4|`{6SBj1xYqT`W{o>(YhX zgc19#=q9^^=U6F<hcT=bN~%9_SHBZ@KFCCe1eQRGn30h(uxp}7?l^)Ka~Y)-DxLsb zQ|o*SVUkmndYeXS5|9xLxSt84fZ;m~>@vz#HxYi}O`PVu(1p62N*BDr>3(13A#j#Q zeioUDYhYpKYb%f+2tj3TYvSR_qzg?-*<~EA%`360ZZa-Zu|jVmW-$96g$>X`S_>MZ zmwiU9dEgXuNa89eYh5cXeXC?z{_1|w=C81Ew?O9zy#bwOOJ<dIY!RZfz=@SUeCc`w zVG`z*$Sa+{9eRd%;7;u*hHn8|Ej~x44arn;=P=?L>^AVcE2Be+G$msgH46${gvBG) zM4*sbA4%{3c?-{5+kkV!Tbzbme)O7}^*f|Jlv6O3HU^b1xQuwfQiUxbwDFvM$+!iu zNgv=^BK>3{vWyuDRV+?~al|AM0lMg;*sH@$#^I%cKMbah6%eIxJM@w&H!>4LXjDVp zfmS8C^ap+xk0U|%n5guQO!Q|6S+0Satt&Xnd;y>mI*lk*&!DXtgV>Vlm4$EqiXVj* z3$3*mdG`$3-<Bj5uxB&fUK>4M$sI<!n<oGDAIBepEM~Vz$Ls9tQi$=i-|&lW(Gl@r z{38Mz1$&;}F8$1BVl&dWGB=+iF#QYPrU+@a9LTY*^n51j3S%4;JARg^3%`o5?s1{y zpTV~{oJ7<pqphg>F9t9MHAATg5<)FTm)UOmiXEXMl^ohdXOy9139}?s$}_xkY<0?( zuT(r{p~EIic<JB$@%tGt$6;dO;|WRp|CE5J45@&Xx}8!1cQ}xwQXIv;CmbrF7tOEK z@-`cKN?=#C%_LTxpUfFf-H;_shJCXsmC-LOc2v@h6muZkWX<46n-(f3bs?i@VAUS| zB>^LY&T)6qo3wp0Mcj)mhVU|E6fq`=_)8ZZkJRbdzYN*xd0hv}G3Z~YE$tPU7({Su zC7B2)eq%DZN%_J?FO~s+Vhb^GFVz=r#BRmB!Dw?O>#nZu!+&T6W=A9nVdJ+{NZFGW zG788)dCg0*g4zk010LTrd3ZUqc$m65FfWsuPiPYmGUw4ivv{V-7a*Q>QUz;14E55D z0-U9=apY!Mv%A1T?(N1h&g<d~u`VOS_8B!5*rjAQrAkwJYahKIo%YiHO|i|2sZ*Sz zEIPM#F3ONBL5BMbdS&0pppH0<y7qcQx2gg0l^!YWIFxO>v}!48Uh;jc)qu9a|0H*o z#_~%Bf2%CR-Zy1w!O_wMzjlx8yw+fmVdb4-7}aT;;kZP6EZwpfU)KHNdt@NCbC*kI zt6xh3>nD0wE;6<2gyKn$*D`P0MdypzZFZmbH5_kHHSBDVF0qoN#5%xc-5eMbH$$DV zGGpcSsYy2nsa4%U85P$TEe&6yO+2(T%hz@(`}o|1kY8KyA2qW+um+aGkKYH@L0Qp% ztb_J{w)~bIw=8j)=-8PAf!RVvtl7bzU>F{qriSvgo2A31S_XIcTyPz@)}U|rbbaM@ z|0OM~lvwkFZUgoWYa7H3gBjX4gBjAs!HkGvQNPQD!UYE>9~^#g#K7Nw+72A<oYwiY z;c?xc?1qenqU-YO(q$b>jn2R6mwCgG1S1z7PI~K`apQW`l8$B4_(Mx2H+y{*N9G=7 zjooWpw%hpKO{QUE=lsrk*o(Btu+H$zsJR}##EN^-;M+O7b8o}b21nSTlq^kI;vI6z zU|iR2yk2qrMuz-)<MqgltYsa(t|#UmZC%!a&(f@gN$-ShO#}0Kafaf=-1t6=y~Y*Y zj&SP25klq~U!TxAJa{C3eBl_ww1dh+0~BLzX~SN)P8?iEbZqWXf!PNtVgT)Q>(n&Z zH5fC38*Hy9UGH)BC8MuXzKP4C6V4<!m|e5-F)JKz7z+!?zMg<Br4rA?vl!Q`gF_ee zGd@iz9KO)}1L|l%4o-%}83T(mw=<x@57uTc{x5wM<DDgBMjEUV0;BQyzHm(Jn1jl> zaNF6P7h%4OV7_cPGtv?`jVgLg(Q)<-U&1(cXleK|+ojSYk0)i&SK-1~STGj;*uwFJ zD*u<r0KcI;u7QH3{(nnj-iz6qm<z`kJPuAdXyWZ*8uoSaI#~@f8`w*XXd=m&I-+Fc zLW|gm53LP99-J`X_h*Z?lVaZBWwb1*TB<!(pWrYmc%;evpxuCZr;Oi8K}r}iA~Rf< z6kYGR^K39facpiv--xNjOt{Nv!vaXvg6qKzV#pXR%z_%X*SK^y)$|X;Fc;P}9oF^6 zb@g@5vHC=TRpD^BZQiDC-|v|NGfy!JL(ICZV0eo=OQ8gQh7xe~wPG%bJ8>qSG+$^@ zc<eEQKWQPeQ1!z@*UoVbj}z8u6UQBQ7(3O<#{#n24zl_X1Z90gd7>N1iy!dyK3acV zFl-?+cI3fP1C#%xD%N2mrjEGAxMpT@f$2IQoN(~bqnFf#?6jqc%MyL7mNF9S69hjL zj*n#>w0kJvoeEM2MV!V{kz)<vbz7oKIGxGk>TI4oQEdC7k$=vcPu7JviV_R%%Re(F zSWRUB^~$PCwzdJn#v38`oQxjK-}<)=pj+skA?vRw<_*)3O$(1=u^qWjR^i;w|17e^ zLH>0(Vb+vUhCiB2&Cz)u<?Kwx$AG_-X2+z@*r4>*0S2U05HD96^Q!dDmD=r#yN*8N zUPa6FM{a5+GtRssldY#(nr0oGJKzX)9CtnGOzb<X{!VoB8EF_bdWR{um-jT;n{{44 zJ-C(ipZ*Q`jo0<u`zB=%$SMkL3k6SRIuYgdJ8iS%N1Mh{*J$|d7nFNvQWM}kaP+53 zD7K(hDI+K2$5p|T(P5;voVks+sPcU4!=;ZU;eBU&bN{rc<UACu`;!V?*W$H<hqP}t zKK<)P(Y|~4`Uls`U7jWrr#(zJe>P<g?dGt{F-u}SSXCk23v}9}X#F(Aj$Efa@6zx2 z85=FQMW2W{nl=NGPQ%8Nmt?jcr29LR8EVq@n|CS9(gzw=UqrA!nwTclk@x0%M8Bxa zgp6&(UZr9fY7d%L)M`Qftkk-NXjlVQ!3UO}mi|w~)C7Qa4rD83GvWF`r{K)66+*uT zPrcx^vg4>|SMlz}!bHkKsj`tXttlI2s7ob`>xRtHQ(!MIa3^0!XHpy>vU{;nN<4VB zet2c`4pX*G54%gT68)ZL9qma$uv<^FuzqA1)gxoLg~U)+L_}GN2RZAV0NBygm0#l% zpi@e&a4pN2cQ^N&t-O<oOePnVTLpb>d4`YW1yv?Kz^P;K6DAurgWfNQzTfW&C)2h) z-Fg?yY<3Sa0;qc^Z0}Jc`?<-)ND%LsZVGIeAmH;;F*`E{!a*evvxjU*OC4^7!j^A; zE}1-l(#H+jn#V(rg&m0|^g~CDWgtz3$I^XUWluJ^x(PahR-z*apK_2W;snsR9h33X zO{n)qij#ki{0qj8odk2=zG}MVfpS}VDutAKqE2*#I;L6;R=Dbgk~4x+d)W1o!1WSY z5%D!XsDP$!IXH!$u#a_s(=q=$wsZT@8}X1THi|AiqsHkn!Ggu4pQ$nQ(S|x|@EK=} zz*Qb`uOB!(QuxPQ9Y_aujcd>PF0MWk%86N{+f=DIPPr@NXldZ7>^K4>C_o>46f8g| zA(p7Y<2F%aKmBNmpgrf&v`<&6`K=3Kz-VeVnNs20!x6KL7hbSK9HKFPUMpUS2GUH` zN5r=v7RbEaNVk>L_DiHbtu5Z07S%t>86GUP^#Bvz#R%8f*26<iQ{JF-tp{k)_XW$* zTnT+NaIj@0nJ=?<4|zoWHHsRkbg_fIQglWQCG4Gz(sdWs23{!E5%E+ugHD?>h#($+ z9Ndq%hg_tR!16_tRcv?i=gO?Uv*ZSPNG1W#g*aa>0d+`X;?Ll(Noik^ul9a}je^@> zl;X$1h5{d_T_O@VnL;>nojNEQnD#bnf{}nf(+#h5bYq333?LS?@24<>?P?Un(qOYS z80K-{2Mj0hc;<G<a;4Z3xuOcWLl$o`wSB)FZ5Rg&R62AzN-&4um$6;$U!tOAY;)?5 z<VQqD1@#?mxPDNKD3<M?3Da>6r`4z<-_aCKFWSsX?75C3<C3SpqT7qRO_P4YSE96c znVXKkw<ovD;=s^HN5L^f`ecHk<{0p}RrK{Po8Dj`h}bO(Cnd+6dL@X^bB3d`KdN0n za9t>71#UxB3Gpf&Unm~1=w>YL>etP)!P@JkKVPzL9g>wM+%)cY$Pc<?T`MSWT?%X{ zpvA*T1HOW`t_C0UogF|%(#hF@?l}%p1P;zU68i!gAoSkj0&CcD45v2}PL~}cz(1bD z`ZJ~2q2T*w`4wMd>(5bH!B52I&A4G{$I`4Nw#(Q+N<v2Nbt*Tl09IuD)7XH$2KJ<= z)P!{|0!mS|tmVwgsf?+kP0k0W4D<l^iGcUS0rx^Pdc|i8V<+S%`X(+(TsqX066%jT zSoOxITR<Onhdx~JJuX@&K6)m8ur;CA7l(#s`Vku3_&=%h>pI{=*yw9!CFUP2P4l25 z{+yApcM{VW68-7&UnQnborYe1+@~l>$wdyvPxxRAdEbg}>-DMoUfkLWsKgijj($?W z`2^j(J;n1PuHlC_%zZ*bPxyVBpmUh#$r*GS)@l7K5HsS>Bx0+s<0vgq6~Wpv%0=g6 zBgaNke<^KU`eAzrGsO+nROu~^(%TYC2g{`dFT*Fn*#J1$StvwCz{W|aP}0o{Y}Fp% z{qam!JQ5nbEKbPm6feq1U@tc{YWqz0T3OM2CY<Ur{KtyE_E^$S#+vDi9<$rE<~54Z zmpI@JAFs;9$^~?OddVX^1q+DYGS`Ba=x8|qAa*FYL?$~n;86TS$9C`$RFbR!d@5vt zIn^SA^C(tcnBi!hWb_})sV(&Md^iI^I?RG{0qtDyA!P-{r8UiIRr6%L@9IFaaVhwy zRlTw{*bpw3#}8D|r@p$0P1ALa<=#7r`-va_cjB*GzZfk;zbBaB-HPo7iUufp4>VaQ z3M1^5&2uYBIHjXHWJg3NaCRl*!>Het_RjtIGdN{dAmmo$OA59(H&ah%n-&eJZmjhJ zc9Q}Z?|E*%sCX1wW>$^;mCPB1E>b$txF`M097#r225JQVjI#Pl_PPynV;V#Sl_bO9 z(`gPgT{3Q)Kxo46S@apbv4p-tMq_BIAf-!jxwPzHf^T1;XJf2@`w(3{|7(8LlpG$F z6MW8IwZOS1<(G?+ZoTi+&zLRj+2&Si1#kcl7pW*Wl3A%GgN96$5Dj_j=aja1*rJ~$ znARhnxS6^Wv)WKF<O1qrrpl0!r3rp4GZHU%bR%6ap%AnTucsB(^TBR<p4*D4EWl2s z=<PIHH*(Ty!wvA`5AqJvC&jp%zXq0pwJ<t~n57F$z@HyRD~+B4TR1xqy;(?2CeV0f zmpjS%EI~K)V_Ssyt`u_3P_gHIR#?Dc%-lleV)^YU68qMfRXw)XBOWEkdO;!W=uB%_ zQPOwYcsRCmc0IbSn7WpSbzLqJ9P65L3*QxM-B^|SP91$i^)dH(u+@bPtaOI2zGU;X zn#jpc>?Y0gE+slfuuxv$DOe=8ntu~@qGQwQf6tCgkiikbv0fbLSZJ;PT;0^6&M+}5 zf0n7hAqB9^xSkE?`xM}H^7tbOl`L`7*Yh$a0~BnIdV1q$5d8;}h&ejM94zT4C7D;@ zLTt%glRvC3oE$DO2j@@%yk>FniFr4%>QS_LOaztT6aIHFOKXKP<yaVzBBZRKZ%}XV zUZO@EUSi_GqO3+Eb;t<(<22M2fF1+#X{_E=0gZl7rFR(5x6(BcD;LejD|FR&OjjQ5 zFU@#7kVx;rG{Pw(uQMsMeqT`;_z0Onf>Be>4CQ%NdWRO@I5QxDEpM34^|^3ZzWLG1 z#4>a=@As(;HM*`3kK0B$48JyZs(EjG-^k$6pL%BGM{lFV!+Oyz-J=@dJ4Qj`*n*;n z_O)F`{o0cFSbPAdyu%A^8&9t4(POW9pY`keVq3Fcby!=hEsajU)aKK$gMT_6^9CzU z@k}>Y$QgnDpxY_LuBjj#w#0*S#SWg0{J~^qpQ8z<&kvbbx^5%fb*Kd@ROQ-XS5yy( zOiab5k2Q6hB;{sraJqlyE<`*DNA2K%N24Wuo^(ss=@$9a%)VaNl&+Y}iv?A2XUUD> zVS?YIk@fIUE^?a!o+!hQbFu%OjHC&ucWi0vX+!fp&pw0H^J0f1L$!K=lUy3A$`vs0 zV#!<Y(za*x(4q9AA6BC3$f09ZEbUB!afEu~D=345%t*|jvE^-KU+jkko71B<$E5oa zF6gDM1vPJO6mrz*X*Us?XfVSGxlo!w`6^?C*lVLX_X3rK6!lbM8<NrI+V`$6ktAw3 zO?3nvb#G7y_=HMlqBj*voAch_Btgl(&8@icq-cb2;`Jws#(uZ>#nkv&<4+aMdNT1; zgmTT4Q$>ki#+jX3G~8)C{JZG;*$o9XPbq%1bkf2_Y|Pa8^udD%o(~?(ExFf~SFbQn zmHf{9^8sT=sU`nxcf{?|6Ws+KNP-|YjsM)UkNWg6ow+zN>P|;8o_<fiO#MQ-Ge%g~ zAGW4O{*5Xm9!Q(|dGh`Tkum&`mu=yJDO`<lYM19r;y`R@V{|}`;+w=cQElvUye&xU zF32uj_nU+38~e0YjthouA@`?-kv{Y=99;9Zv1(R!1%}-(@Zs((op0KhX4>A~)4<$l zvS>oqm<nq>;Cnm%8`vmOd<z#$GYOi4t|93=1@lasy<L$nGdu8aB1TAIx@ZQkt^3)l zqpvm^*W-ct>8d&XrY=?uNA_r|*yz<<71y5j1`Fi7Jn~s&>><wvv{yCSr;+ChdEtu; ztKNr^-@|B(Ij!^i($IY(bmO0Q(%i9y6aP4t_l}$Dou6-<)vsBU()QH&+a+%PmeQi# zrjG$V9UaUt_~!Ah)2q>6gOPBwgsPdV_Uk(R$tQ%L;@chp^DRBKg`BfnAJKk6FYY|O z8e0`y`e3Tbsy(X_efgK-@I)tDqf^PfBL0f@imvrJf}-w%T=EySwv*j)zX1KTi`BZQ zi`()IcN3o`SI^a+37mwhh+$Q^?TW1;<otz#*_@4!KZseSkx@cqIxgPP-hNn>wUrqf z$-fhVX?6%KOH%4u6ZOFZtQ_tw!>$~0HSx0{HK)M9O0}%TZg8&0=HlY1VmA4cIu52m z1s`l~ea{g~oS&<XwEp+W^w&@7iJi7Nt=*>Jmdl)FSY3M?bGyLXG@;2gz_hL@`sZ50 zs*8G*mV*4FS9Dpu|5oMBxh%NaofpDYI!{wK!CHJGtv&GM((84lbJU?-xjC)t_hRY0 zje9$$Q+LlnU{}5!Ecz8>*@|jnC!`J*SfkkE&%E)lwu+ifXGjQAFXe4C5MIVvwJ90g ze+}n$n=WqX;d(J=_bun{iOsEIq@{9}WACN#IIVhOsp0Q5(}H&HYw>!%XOs7OeujsK z_=_t{j;kTo{iu%Vve-MAa9Oef`CYRS!|$Kcmk;D_;A+UMmRjj8EV#0DFy-!@T5g87 z7k_6{;70zB>a04$`jRFsD%?pfFl}lIDnYBHoOVw>J^GCzs^YTia^|gAq{)~~&Ql*9 zkeGV+VvlO7iTSai(FNGH_LSFFE#Epk(6fSl3*uT7Yuk|qrb{^2sF988xGB!`J``=N zd%+7aY=yWGAr|dUuf27zTMhPQydZ;Fj;QDJhea)~Mb573>5xI_QjP5f{NcZ~+)Qt; zk|q_#RI|H`*{$6=pDX&yoSV$O55(2HU4~Sz6m%ktCT&j$Y1SUsz`XljydCPtt|^F* zo{XNEiu}s`);GvW)Ta$Z?HT;37R_K}hjERZT3!y8$=UM&dByw5a07;9s!I&`%Itn^ zpC&kN;5{F$(f?EZXs3WKnCP6g=*KrC<+cNT|I(u|`n~f&lLdL*PPa?ryQwhJ#U##= zWWVFAenifBn}WX7OR=y+_q+1?C`V6fx+$zF=o6LbiJxO_)nsizS7;jTUlPuc1wkda za=hBUi!twRfr+)9{N6ONDQGIT!}2B1nL!sAc{7YPoxdWDzp;H~V|V~Rw8?v;X?%O! zYsOl>T~o?h)6#aw2Id&}ba6Ofg>hJ1i!^yjD&`9rgEkp+SuBpyc$^Mk6^GgGb7O^~ zv7vQveTsg|K$QK5B2$n%ezf#rUFjnAjm{$PhXtlz-LOQ~zZoUHj?1T~QVCETy;*Q1 z?@bD%M#o9t%hIW<4da`FT2T+qQNg`Ba<)3JOZ4HJ*c17Od|Joa9GWVIdmFF-s-XM4 zSF)ZzP<e}?`MdX8Z>RS!7xj+t62IO@UG42`d3Y98o}xioaa)RiTr0-1pIfmkVAjE; z|K6Q~$?%(wTtR8KzvX_)53YH-+rZt>jD=a9LFtRG=U?s?N1sD~H%)C}J2sO+lIB#_ z?FY5CkT52{CeDTuj%_M;34HKi4m-<mt5$T2n-iNW=Qy_8zK*{Cp0Q2fYC1A^FdzMt z?|~-4OndNa`mgTu1<{WR2*gvINQS4Ger?ZfV1L`KFjz&M*XP513t}-1o$HLgU0l7R z8zvIO*9lnaW_qlrW6{q)Xvk+d<sM?zE&9y_8P%TDSTN>s0rBZF<EG+PET_qs!xHKP z2DU@ak+=M76C06rB~5Ci+W3;#OXq|SI{#{nc+(q3AY_`^^vjaf%#2tj?3}O;aZ(k_ zXe_{cRAH>Et?M-#C3ssnIf4)Eq6CFNiMwi`MzpJ*U3UFGt=C^O^Q|cbfcOE~&$vc| z6#6gYtiE@kvTq+6a~bg$`)f9KaH1}wejI;I&<4y;qZ;vwcWyo)I+@xn&L*d;+d7dP zQrIoMP3nH^Lx+H_&kg&BJkyOu5g&}wV!7HjM*Yf6<2<fXtC~hkNO|dah8g&AT-@h) z{R>Ow_r&zp1dF?YX8WzSS|-l_rYm)8mAG4AWj%lYYxO1cKU=&a_^$ur{j>i_ntqpY zrhm;=+m08(`#l%iu*+&x4!rSLnfJZs=>pgB&1Kp0B;UV(DjwJT-1~3;tDWu`=O4am z$45)WiwxbIGiA)bFF1brI_e2IpSkZu?w3*XM=HuIl-9+=;(R74p3hUxoDz?JiJHHE zSw2#Ke4@|9K%y#SElFYRug>&h7ptfsj01Z|>iTq2G(8Thj~JAEJQ;?@<qa0B{UfF0 zKOB<QnD}?;5&#ra)BN_t*P;jS6FsnW)&>od+xnh*MCQ*r5R59m^D8Ai#$Bp0&b+s^ zRE1T=X%2fP#TIWC+^%I_hvc+;MARP|=sHnN_zYnHB{BV-DoXhkUU;wLPj5;TosB`^ z1=^!EtrG9KS<AQypAzLzYc)q}*%^!tC2c)TwUS%R+}K>B(FHPyyB2`EEhL<@DcS$< zrbDuTRo!hm=GxifcoEYsa}fn7+*h<a(!8Xb_<5#!QRn(I_oMZ#wa6{)M!*q!$JLdl zy-Qi*RH2b^CTr$?+mAn{_NWd%?00B$eARWXsBq7LxT=nE)xjdygmeA^-d|D;`*OT# zeI6rMy8f4`)73MF8jopI)n$o4x=OQA!FCw5?vO(XXixUhxURVJqdEd`ovVor!A^Rh zm!aNDJ7+xhA6fzNzw^{5*R8;}(4QQ<;tcJJe(T{o!_@P-tXDlQKn$Mv(N?^!hMDpv z3jOaE&sVRwFgPd{W^dJs|IMC;qumdRtJYQbHwV^GEB2z2w}XNEPt;beb{WE#9_Y2= zh+DPZw`llQyU)C=_=EFo7bjKE>2%6vt@2?`x|J?6EEZ|}0WU0fn_SlPa9fwPV<{x3 zF)^n~4e`pn^b*lQcWCX_=$-<Yh;t2j-TehQHIjm>RX1R!oPW<?@ILWIC68_z^4!+> ziH;&}`ctjG?0$N_(KkZ+Qk(c+?$`bsS)cWp0r@rOL-N?+RCAl{3VEzv)A*}E-@3JR z(Of(zxU@-8bTQaP&H4+_j33w(9bl@Q=YgCVVu;e;+|U%(j?*P3)j~D;np5x|31w|w zn2rOED6A`koz%$CIQ7}ZwTujD!~;nUvDi@PWh|}b-ct1JLT62tGVUTim21<JLT`5H zk9PF+a_!y}?NiKr<6l}L4cFJ->d*{(RJ;+dIva7V7NZeW@TdeBrTnPIL(%mD{*zzQ z)Z?BQbM)?Fn5#IKeA?};Ht*d;hw~abWtSl9DX$6bA>^egJ^EiO$K>Z<E^pQUCK{7p zp#5h|GTxf9x%7hF&KTF+Hj_k=sEg&vEkE(-d<iI#bSJvumj(ZHhu&tL==OKVuL&;H z2^Ood22o&1n<B;&yDTWALAR*0gZr?cBrlY-FfD8f@?ky_#Yk7ZQLG0ki(O$EW~I9N zL9rS{6}**(`84f#eXu>TfgQ--(^R#QKU*Ey=^H@h84L1K53?@G71^uujUD!FHz`7O z$8HMd{gc?LUg+O?NTDu|@hs|-3Q~8Xe`F7KJaVS0YY*_><@BiYaEnt{UPQ%s?z|UW ztg8D`$UA-iS3&WDvi{<_X*JPHTyVcALEj#KBs{IQqkayoRbGgqxQfR##N|kH40m!w z1;IlcopqzzGl%7^uIY@-ZSB^d-VD4|oEe*|O>@}E+V0gVfq!>UAs*rcGP65j1M{Y# zZ0a2vB~mu<mp8G)1>czlruGF>^WJ~eKdxAeKX$a2i0@J%&*PL4#Irhe?(o+97IXyn zJ$XL2ml|JF)Eab&I=hAB@77;4X~=z9wahHKI81fFwkuw<H}DrSXpSs$EjnDLx2Q@9 z9_-@|dWe$+lJ2}x5&CUksw-V97CFdu!<D$O(jl3Xj-M(>sp_D^7+8XJN4Q~UL2h~G zYM}n`P;spS=w?Zi{+V05>uUxu3WcOLjGSs(MQ4gvz@cX2`R`theb7>b*<Jn=g{CF@ z^qclhs!4H7bXLrHR2=hf;ati7+$r7q!6}26xS`{k+ZJ7&-rrWlTQb+}N5>A_YHJGj z^aqElCe7jTbJYkaA6UtwFKQJxId_0SYwc4JU+ncRObk54xOXlU)sDV=p`PgFO4+G* zc8cGBLp<?g<O87f=!)2X)NCNOuE=zCTBqlSZ)$h+6iW<qr&Kf4qAoTq7Q8WsOM1nD zm2^v1c*eabwlz65c?TLr52o^aZ+IwRfdHY;U#JQzwF33igE)aSc<|wywL5mT^lW!t zA433bob-q3A12)juCgD^aqd_zKA<Mg*&Zmp;LK3CmdE@(GXGff=XWt%MUv2q%^mlm z37?Bq8eN<t`)d_GEYjF^v4?p*A8XP^WzC<felUcw#4fXT?Hk)Q{H;w@0sNoaC2!!7 zq)iGocN;5~)#ZH~D1vPFwX^zoh!kYf(j4RkZ+fgeLr)fHCw}}FtHFz+p0$$7EBfd9 z81(fh?O>w0zDY0apWoJ`@7*h%pbswSDAG^I(?hRbXzLALatZ&>nF;{W+434cb5=hO zt}D%HWnKs<L1qtbPDN=>n7rGx01#wi`}yy`s!n$2)hDhHr|7rBTiG}2wa{GcLoT4V zX~KrTZKH0@MO4hirPpcMQ1g=b(;&<#SctgR5<eK8dAVYX)sCGtEycu%TFj$I+TIqu zjpg@K*CKjmjs{Q8sZxsB*Nfd^N_kEOl~)RKLBD?>BZqpYnt$i)M{)iaa$s2cnqPSi z%-M4UYhG$}$=C1ZTF>!b?{I@i>kn@G-fwI0uTR%bh+##>r%A&{*zWg9KkfXTUgfOc zxf!iadS&><tEaJBJ@4sdslRxoX72|4H_iD}S2nU)W8I`Gd(Y8U<$B<kXuKA)uhkNp zBK0{S>SpDj)x>v(lpMwy{*i8{;Pd)VFn{V@kD?%{a352}+uGY3svsrtqFC$*`)kX} z@ip24ku&$~mR2fuv5J!-zHzyyEpWDtzKz?~zi-m{8a%eHRi&P<{yAwSx>W;+eZTWW zZ8OxFDJDt}?TF8P#R~+Opnhn41R{p5UIXM6G)_EN0w}-qgg#|R7ZSu@?V*>>k`HMV zy3vihDg3D4G#jfZg+n#Zibi#Q`i!yaiq1w@V%4^B?Y0daYfMX;7#mCn+Qn~Nfvc*E zT2e)8*BN?q*w+oibC74e-we}p#5WDgbGW)q?JI}qhyK&|?8A$PNNh)QqdRhu^=V>U z3)`W+`E|#=_eKx&SZnhx&Ut;yz`VVKF15U$yMo|`M6RPcWWZ-{2>Ew=%^OC+dv<uK zkLe%?AYd<?9fC2YnV|R5l~q|D=!sSxE*B?8fHTt}<t>e9e{&T<B72i^N^f_=H<;){ z1}dq1q{*J??9!2?;(a9smi@(YeXd?4-T!aOm-(f|_|$M!fFgQr-_6CoF)95M+vW=f z>%9*cp0?sfqn`l9x{luwuN2&elR&}vA1T@>{-XD<k)5QcX?;^iAW-ov^k+44A(@VS zM~W$xyBg<cE;jY{?(s)EFV?b$I7pA`B<DfN5JHjlN&3Wr5HI86T7Q=s)ke+s9L9Rn z>h=eX_y)k^y^Y=;oK(12^IP>K2<S}e0^0cpREb~rVB}zP8|tc7*Y;!4y^T4nyl#vq zQ<>3Srr!2D{slcwyB&GWYEDX<+I<T0#Zc6T`&|rjl5S+(B0l1+s%bkHG|T<!4<s{P zc~1pJul7@S@)c8}_@LJ$ZfF{Lsyi^JrRMz^!E?t{_8?7jn7M{~IqX3{5TuYsi626u zZ}-ldc53nV|L8$}daHpfbCv(3J`YHQ_-WQ}K-2Yjrxco+_SJ8G7xgu84J6xeK8HL0 zw7&lh6=6usL2t)mogRwSFsomOW~DAtgq4nfd6Wbw@(e8Zuu=v+DS=qNX;muccN$l< z6)FF?01Cie0yOIb&^c#n(VO0+b}-O1qKR?ZQT=`nybszemSq?m6;?_s&Bkn#<Fyay zZ?n$nGhi65w+uUS@RVQMy=e<8ue&9OO#JGBrVK?+JF}MOw-50)I!_7~RRvsFwDDnd zar%bWn!_bec6_bs>2~I1this?)YN}yT}{s(f9$+|#6V^696!=<smYLZ9eIH#t*Hss z=-Ow2b-^usN>1E(C>YaU?AiFZfQ;L4D40rc@-HRvyS)9mN}g~_>$}}?d-EPQAKBm` zKGXW-*NarI=EdMZqdu;(Z_soZUxl;5%HbBB(tAS5Vk`4R!MphnwHNf412zlT&4MRG zCZBC>TqCvy@+Laz7trWHvq@+5(t+>*@P1xD|7)kf89Gr4atwgS_YF7zS#IcY!Kpfd zyZQ{3`o4N&3%h-HzA-$YZCl%#w)3wT7eWK0quzB7p0T=^TjapFvOz=~{yV+LcxPb; zx7$#q{=0;Pq%3$-&Aa+TG4kWJ2x@WRQ0*~N!&siM=1w`yRgg`XbQUEW>XcHaFxrcq z)l{&NAJHTV6O1(d4)T?He5Rl_5umA5)NQ;?&R0viM7gc~#!Ht)!Rrl+0K4TT;XFNW zj>tBt>EI`p#qJL+A;#u|pF*mdg}gX^U4N$Jg>m`Y{w+SOoB9)KjWo&~UD)cnrpnmA zU}vcvoj|3`NLTg5E-iF#<8iSEc7e>UV@1tP#c9JNSDksa7QZR&+QrQC5@TU;syn@f z{0o8mI4!M%o;i<u1|M8M^tFZk*QJ8Lr?yJ}y@XxgA^=~t5Aarz9~V`8@bL}Km7w-G zx-iauAV*~Px<;^488n6WiqgM-+ZI^osxE+%L{|r+@IiRKBWrVT2*XMCA;<>_IHxxZ z%(VV*QApGF(&_wb=6!q7ik?^MF7Bynb(d#%za9_dQCotW0ZD@6TJWsG{1(pD*!!l; zH7%T=OVPW1Hj|Hc>+@L5*mL@*0mlGEF1QVj&a>5lLuyL@>}xG{i@ooGHjEX*@A3)2 z)@hsqnDxcB{3qQdZwG;+p^~$;DL@1HaYMah-sl?MNLV)021S<PWUch3__pC=jx^8k zsh0aMo(DCU$euF|ypPkXIqNm^0?@P=>4-P@MzD&sp_4As^rCO@>1D}M=#bL4y@1Fq z9QRZvn_g?F?blGjOg;-D&-zkBtc9Tl@sZxxb{~tI90^z);jv}Br3Nct?WMm+zYI~` zAfMJ()dYKB!QR1{sf-NQYy;OPB+b4|8)=gwr?z|?r?8e8nNJX%g?9y4HT>%Avr_Lb zQ;z0qZ7*Idnj=~p;xJpGO)EE=4$0Pd<5cvl1`XM<dD~Yla%~f*!v2+^=jJ<clh$&d z(@$!!yTLA*c9~knTnkhv@|r&E^i6Ev1GJJi*ANb);=gmsTtLBMnK<43kl?PmSHu)x zjLrD^cIInD^C;ScxHI$a4T$#)?l&DKz`_CsA2-4c7YdGaSKSr}yF)J~>n8vX6)Z$o zNqMvRv7lkdYAG?!K)?-(4_mj38VlC&H#gZMd!4Itqozp6eYG9g3&@*$o^>1#Nm9#y zcrs^PdGFt|$L;^mX~l&NM5*E9tOLa6N>#XZNJqP>bKS&d`Rg0Al9?i#NK-;uKasYD zxv}HCQ>u6sM4!^|H=Y3t-c1;Ja4ZcfE%&Psb!rS@ueXVFENMMA3R!z#nJG}DrH zpDwGR${}7=^VY&#Md6xM?n(}JwM4$wzTLO8<;i>LUzH~B7V0;`T)d|}mLird5JbLb zKE8|Gtcd&g5xMUj{Rw&HE#gs~)taa8x8`%$QKtIrmX521{5cm>^bcLY>-e9|`DXN0 z39V!OHLM)0eB$F4h)4-v?1`QNr;)T)i#jo&2Bxs%PSrfsr8o9Par(B)5?@aJE^vG2 z(r&LyD$@^tQzzKJvX9-WG_^k&QTmT>>k}>CK@wEBPw{$-Uuj8nsD9SNFNbem^1kw+ z^{Ocf&30B>K|(WwH1`6KyQgY7L;YI&=tVAkiFU+LCGmeLug%I}K%OfcJMPR<`#}?; zmS`9o#CHm7o8kQ?_a^3gQ&fA=Yfd2lyGJCX2j|^cy`GM>f#Akp@jy=lGMi?)sJWeu zAHGF;FtM>c95CZjGE=3$a=-@>i6Y!M=Sol1)o`nMQw^7Z^IEB|b;bQxOiTdxfw^7X zAMS=-6`ZIOEPw&0<d#0}KCO88nJ7MXRg6^x{(a{$(fa#xl~(6m|NfFx5xH1XHQ~u$ zLCtE>_%_Z(h7%Harlr1B-Ll}rQwMBiK@y=eozzTveWog9w<%z~NRpdf)qJu0CGXjf z^?}__1~*EwZr!etucWD<54Pzl@TeD`zExSNVxI+R`xq%Bp5{wWFHM$6cWo7958hu~ z_qKnNPit=-&)(3QgJ&7|IofQ;AyR;^)3^j6iTb*M$PLVYA197~<a2Y>S$z-93o;B7 zbI`YI+U3Ly8m?Isk*x0@U<Pob(D6mdw10D`fc=8!YS@q?k`HYdgzu@<GvU2hU<v>j zCmx*DnHxCH`4P0_%)M62p&hrWLvVI<sfYMZ!cYuYHAV;&1~?;))D?sqhorCC+9eh7 zgW(BswChdN+9yU`5F`UKDl$OUFgvHI-~Ufs{Z^mv!2xR=s68|91uxF9g|-&{WVHJ? zXghav^%6HMnLJh3Ci<|to!wwxR79kvqN~K4H5<ifZ8gvE#~pNQP9rras5v*_sgIl4 z)W1p7beY5E)a}AA=zRxP?;Q-jj4i`o>_RT<u}&+XPQ<~{>gq)+fluMFSa@mufzsxT z3s)5vUwHl<e6`@=6Bm}yxC7;={;SXL;MQD-cH;Ebc33PxVv>qvzXl)XTgS<xo;aT= zTdlPIXzLj3n0`Y2#civFxGY#XJyJjax4^l~a4=P~^Sd?k+ALpve&u>$VpL?5SzF~R zi;G#&529Hm_tJXwc=^6$F~!HP86|!9OYG8m_g-pjTkzN$dfDmP=<E1xgS|t3$pdVk z!e;>r3l9diWuFIjoXiKgS0x|#qFc%Rwoja>Hx9(azF!og^Ps#-xUSkWwq0>|5#r~T zh-8QS7XRx9Fo(g%VmqI$1>#_zX}DnbgW|flSN+W!YtS_=*aIvb9lWHsgh=A>?3Em> zmIyY~l=S9Nj<t@xGfflIOyM9C(2b^oR@d<#SMoXOz~T><^nMaVLC*@;o*@Qnrq&vI zTxz&`F5%ro_z!AvXI6G=pr$kjk@7BW>!RtZCex|bHVgZ*i{p6N=rkxESDxP!{iOfu zwir{Jn*`faHep|>gF5bRPw#%8`TZ?&n;QJ7XsbA=+wk$9zF0m8TJ6}gdN<ml+1OL@ z{!DA=k5#_#3SV0l8IJlmFwW`yVG4|Ouq~ZC_LBZ1e*tB`M?qvSP+x@OAK&8K{*R?^ zk4x(Q|5s7bOvx*GrOV39l<rb0tkts1k~K3|URYVVZUVVYOa$-Ol(tq@nyk5IS?QXe zCM9xFkX0sYW!5w<ht$dooJ={&0e)}${{Emx0_VKn@7McvdA^>n7w4@m7b(8URumlQ z#?=#kpLy0uy*-oFP5hOg)}ro4Q)V7FHaDHt_2&$t%6@8(Rdvw%Cv?#)6KkHClZ-gp z;PZ#N^R1!ky;c7Kq#wSM+h@Lc!uq$dc|PUQjNm!#Iq%Ls3a{5P`Slo$Sn`Pd&{oJ< zIdGTvWlrHcW7Ut-%V%e|$5hf1*gpLACBhbfrkPKYvcYB#dcG!b>VaXM093Z6d6G-d z9hu>7SnyumX5cTc?n_&s%>3eRCby-0x(r~|k3fWSfD>s3<*iq0;XzR73av3`gE%P$ ziK9`mwPxwWD(uHHr@k#j!S<Os^>j3hdwA&4lZ3tIJ-yU;v+K~v6E(oK6DI>39)V*g zQ=byPGB51K*Djpc49rsB4C-CjHIyRq*OMpX)q5xVE>X5}bBf#ht?m<<ZwWWZpG~?q zs@I>xd{zpU1xPDQBZ0JY=;_C-)bxJoDm|65eKMkVVr=&HYWN}gDHwwoXI|Z#UHmb! zgA`c(B5Nq(DL)}6;``}W0M32=_p~?gJ+#J0An7sg`(#2niyAoCi__A7abF+OPu2X* z{%WSIvGsKOx4skm-d4XH&0ItKnbZ2%5;bxDt+IcVzgm6Ka^qc?*m`u8f(S-Tyh0l~ z%(2f&0dR=i>^@QP#vfF4P{A6&c18lNoVb;CiMxZl7dR9BeFgh3{xxv}K&~anb{-Nf z1#`&(uy2Oh&AUbbZ<~}M-NbABgDreHYCE&9kv8<vXI2A%z?~HX{g-g{OB#_see6RE zC=Q?2of_(YLd<L-tS=nS$P$wACD3h>9p4|CL9_*@9$szgX-L|1@7nt<gJYWqr*kW! z2n-Lkq}6~ygT#!9>4L(}BxQ4Z$>$tSd(q^*;}>tybZ<HrbE6wlh1S;8oXCFI_~(hA zM3W4V(|}5v^(1pB^IyFB5Iy^b4E3GavEF1e#Qz5i!n$c!|7sei@WaV?Yr}o9HSU!< z;^m?V7qHX(?H_v!z8SLqO1L!>(5SpR6W<-||3C*QfM{_}`Lysu16T{^URpQrD)-35 z`*Z1omh#zh!?KC&H-HAHefQ`F$7Z7X&FnZ6KZjo8?gUt9uacMfa_Pjnt?=pB>y35F zRp#`ef;X8r0Z-?0!!pZ!sIQax|5+w(j8PuNUJ`Et*6`#b@atP`&Et&4X7^cLCLYA> zw0;h%a>RJ`l8NM5u<*U8mp8rYgZaeN&P%kd;ysf!d+6x!w^^cbXJwx}sMDlSJu;^{ z*5a!r>lir!`EA<oSt~?&)!Hotndy!mYg9G=kaK3l+~2?Il=Z@nSK@X5h4pb?6Kloe zKO__O>NCHUqd&~-1rdn-GHXcx4?n^D=`3?wCF)7JM2*_}QKh)8heb{~i9kRcrz4^b zIe&mo2KKEPv-4nR>R2?*bokcDSRlQ2Ky{;cEV_8Gh8%k#6C|YgV_8?s-&^|?W4mT) z^qHdRn;*oZEv?q{1LXf$J&LK9ZSA~O{416h<ZOlVzUeUe>}*uj>yMw#Rot8f|C_Lf zEork;Xs?6UOgw$d{p+Rj2*=fYqPIE0e7ZNmxq8|R^sw3c@hmyT&nz_kpAAsxhse|R zD%#c4kJQHxi57r<7=4^kZF*)l{-HiBq5wtrzcFic;s@v_Gc}FGn=^klD%nXx3BaDo zSKd9nA(}g(fAa|J@N}KckZ0^`xZvIGDYaYo@GpAM4PrJ1PPD&K2e!6ajsqSP26Jt) z-so=rjo&z9cgz&>%U}FX_tjz^SkBWulwB0g#>Erde?V3A!bS_J|B0zi2kSpk(K32e zx{~MJ4cF)=TL_PZIP<r?)~gq+xVz}>@W0vqv-~mFYog#y%*)Zfm6RGz<-3v_gM{BN zh$Txd(PruM8K6Pt@6D?S2cGjm`w-|MGF#71X9JP&ZeE}??YF$EK1}X8)MF*yG;w=} z_vDB}SL<i9Xk2ghb&)mx67C~9)mg7~Q-7s_^0t~sk)r!&JQK!FQkpMOKC}LJg#XU3 zbrvD<uj>?^-=n3Rb2_8f|KZqgH>bB)|Bsg&Qgj=C<K8-bv+wx(0WGqNj_RixPUl!& zo&|`?6|e{9S7P<~>F8PZjN41uZN31=x><g6=d<^qFa%rkX6Y9Y@y(gkp>w;=iyA=4 z=NGT$^ElVvDQ=8VVw0_(@D7RAgPGh;A-;Xg#sgpoO5jiC4S}8vP{15{oO+QKO98Co zu)5+Ru7UR3OnamH=FD?mmT;CCvNY<OXKK1*_+8Tt?;;z`;`;xrH>1x@e+8t~ibmN@ z)W5B1B=g=)T;~K#;NL24kXu0M0o2-WJ-vp@K0>!{=n#V6u&05tVFf^v;_I``0GEeX ztIq?*&`f>B(LEb$g|2n;KK6KwB=4p@K+{jB-n6{>F3WN|HjB)UEEv}P5#03ErrK=B zW;)D%$s>7108~w>dcQj=a9Dmo;7iU6*2J)IRjbY^6E$aEj1bAVyd36&^y2Kt-{n}+ zuD)M2IQ;NV+RJRqvi=o)!@T9na&)@m)AZ)xme*4*ds@}j8PiX1)7nx*>e0XX;{DRW zR~H{oHH53*nS?)5d@d=&C<XyzKi7vjXp`ueshz`uB_AEC^Tc19bCns69?&%W{Q zcAb^gfhNra>&F7QmV+FOnYP|UA{?@00=+an>sDW*o@_C$pO^rrLYt#L`V2B!-))_3 zn3)lGpbj&kgt0Jd>JaT8%3m+JhsY}STS}uyeBWa3ozzd34O8EMgbY2<&1)bWY2kOE zJ7z)}n}44<)+nBhHi=+!$vw~b8!WSSlPIR21Yv2|Z4li&d9oL-zrB$ooIJ~22FQS! zZ$85F!1{-%2UtUOe5)ArEZqNgH6bGp?Cr2_hjn(1`%)jWX&>F0^}-R$hMc3li6<$& z7kQJR!~FH8uI{wo>9>Fv0IuN6p|mF@AW@xotnH@%GTTQnTtisN{mGICN;~4ovLzFP zK09X9aee)mgzY)ww%#<|ZM?=OJW`Fd7EgzKIDTR(@)C_Ij++!;x8Qpd&V)_Sz+%Ug ztJL5A_+fYt{d>!m(5i0Y$Gw=QW)1P4RP$2l=H66GcusVL>3YQ=O1?N@I)rTfoVhpY z>Q67yRt*o=Qu|~hjCoa(&CH*v&@_ptDz4FH4C!@vpfGKP6Wm(w>>MAH)=#j?ZF*ES zV#>K7s3YQ%J*KBm9e++2UW-yCjI<T*R|8?VTvTome>&;Chqh@FcZs;g`Xxvi6Eft3 zmX9@JB|i4B$ie(fFcog~n9#i?0t{ik)^~~a1?aZpR)bEtOkmQc<9BrrPy&!K{pyTQ zqgsYW&g^RBH_T);HV4v%p03cn*R@UURaUP%AX=H@3FvlZ!q4DUxb$a$7`nz&tk=s9 zi9&!yA3rUa>am<Qdp=_0GR*Ls!`6Od-v53TKUS~#p;i9?+_w%8cq7ea7c$V-$m{kb zbIRRQiGz6$*Hk|;eXpM2yjn+k7-&?9vsw2>VEx1QfAhGD?{NYX{+<lH(WGDhy=g=L zlj`luC!PWXK!`ud-Q7Di%ufR7!Qa{@is$c{oQ!*jdIRk+ZDr0j8#SyUaIbxM3KB=O zt((1c=Fuz$`{c;-OT^j0{ogzIvy+poh5y72)jS2nfjMmz=m@>g&_2SgoSyv97d4h_ zB^^CvA+^Ke_8Iar0C_un?^#op%sMX>eN4$t1#mO*N^|cK5kBW+O^(Y@@Du;$lu2=* z_5Ra_{bAhZw*7VVKyi8VkokOo_?T`BO?KrEV$j|HCRum)PQN~ut!x&hjGY$l_}|j^ zx?V<;vV7esbMeiQgiiyTLFUkU<fmzWurJixWd7OxIb`j3L6@u_t0qd_^l){S`0fe% zbaFPxUYibyg3LQ+q0e8{(+fXjPxSYvEWXI!PB_pa?qSb2f8U!e`)*bubmVXJ01yyy z?`)z>xpfgZfR7p4#2kF}^tU4<l~?8%{szc+t>2KBm<f&i8=!?!pYqxNuiO~@d{)yc zIah&S;onoRg8{QnxjjVzq6xcph~qOWnV#yA^A|t@JIiRPS`S*>b3%Kqji+@VMh4-G zo`>&|4eHZ<y2QnUqLD1&L->?ON=bsw>0^rz<5#hq&q%3Venz1Xd~*?173srX9%w9i zFnw@E4?a=5CB2R^<(d&4M0Kq|Spl61&uLArf08R7&)m9JRdV+k{KqEWOZqRs-u4{J zKJ`~UWzXKB1`yde`@KGbp*!O4=Giue*k1h}vvKf{#Rkyek0|eAKxPguN@`SIn^8Y} z#C~5ndr|pEUU!H0A<@T*eNTknYITX|>SGZGv<yVP7{#s>^8tw`p3M208gYNT`BKEa z`xoASIe5Ni^oqJx{rWy7`i0lD<$uM4db7V$+&Gdt$^LumQ1DYasOT8m>JD(0n0<R& z_w?7dh*gxmKTR{h#u&ev-57ECbl-=Y%U`xx4s<J2-6raZsl<!QZJ;%4ud;+q+c(>8 z3z)8yZtRonm!mDKDL<3Jv!<{2D?zP(IR3CD;k1rR=YDjko4WZRy97BnQL)Mj+EpKO zFcYg<w~04_y52cVclHy)m!MICGJR5OUOPa*YQ7x6#Ax8eBp$*4XJv?3waBQxA+T1p z#E%v|{f1sk7&dpAb6(zVQq-S(7~Fb4h<}-$kz8lnZ!sYe88stn)8^^%_0y)YY|(A{ zX~m3KGLwEk`MK5Mu0_nVSgVJ>wgSgRJpPdK0Yq5y^<{u52+UFM53qiuRc1yG4Jn^c z0jXx(wc?0{J|l0`U+ZZ&ePbd-d4DyZTQci#IN?Lse}=)DV0zR9?yUk;fE~IMR1Zc% z)|*_riNC17X`%ehewh3(VNZMOyY_hN&j8y|<JHtaE--=q-fD1m&1~jjK7|AD&^ViD zs6?P8j@@?8I)^dV(8y_g*9ThQ7S9s7)|8==r~3GufL_IJ^QxhUCxn))=>!1%xxGiM zwbO;!zj2!Yfkb7izZ^2pl9OmHXw_1_{6{s|m&U>8<kVCXWT^VXrbcVCk+N~-cK5LQ z(L_cg_tsytX7hRFJ?kt-!kewcwwo`hW4ZC5|4F><*_NTyv5(E*eDxz4`|!*c>rEZq z%B#d#bk@?g%KEdY=H2ldq6_bED`_Vv!_@UAuU#)WU<PCTtHgZKm3Jf8MOE)ISMoKv zA0lU4MHcj?9bF2#WI<KF{x2FBd*kE7oY~?`;`P3Q{outpzGQ*`Fd+r>t%FT@^?a0z zo$c5)6Az2RKnHYRd`@yN_aNsJb8t=0<Mpe>mq9|sah@1{Tm53xdeE}iOlxetZ*6+) z@AtH5;`CREedK%Z&fOFRPI$lVzd=6#F75`oa60J2!vE{f7E95CGyaW)#+j>)^xoK^ zW&jaHf4&R7$qAcyfMZ&&f*#Y7>tyQL?u3uboKF8)xAhC!w#jqxpuk=NLNoX4$)a8u zuqu|F*_SA@@UXX$c6;W0;3129I}`2vQ5^I#F`1ASX-NU+8}cGoaFs7!O}>4MZaqy0 zB?r}$-06%Du6wv!Cc9{EZDi3d_G`Z4sWs}w#H&TTh6>G(B%2t`*~LxfD20_uSW@2S zI&F>Q{XH>xhsBMNxn~K-AL%C31dcu5?-_8&>{!UMooWvy^FlRZhHI_mqQJHZ#P)9n z+?0S}TN-eN2hBr$c(M>Ko+^<W<_>t2Ku=h{s`5T9Uhpy+#wqrtBn4(lqnRt~3O5@Z zqdaIbPeXPTreUM>J@gsNx2d8}J5M;6@>;1lV;!~zGXi*|tNq2wiK6RV$WQo7BJvw+ zVN-r5<G2t{?07IOc@<mhOY3l8ymNxTNwRAlbmqkhk{p@yrv_bnOPJrYJtL&523hnU zgrIzX-FB9HP<7d$A{$<UI%Z$-sUCFxjF9BgCw~kF1mtl$TMfRb9k(MP%WlDlFRUZT z!WfOCkcH%5SLULd6l^3{B|_N(yk-0rYgKqz#%m9wR6Sv<%wpM)a~0Y&R!~(=tk5T0 z7cB@$e_)&GJ6@2f{SmRNt5RzxUW^EljZKw(hWy8K**4A6G{Zu+OR!)8ht~pKWN&IB z#O6in7P01%bE|c<EQv9aTp1nyC)e96O*+Wf9OcTBsMxkDztIw$?mprhRNRu{LFgJ} z=sKYFg4Kk7oTaajO@=R{&S523rsyCfW)?uu32rH0=fld{4(}h3QBenL`MG2tb>}^X zhiIi}(NxzM!(He=mo_j~t9~(f^(j_0l~!xdAj_M|C(yqqrH4UFPDO-v=b*fmVJU~c zOOPMkurRFnxb`%QP?x8BZ+mM@5J+3bvNcNehHq;>TxP8gFYnXXuxoMG(fkYpMx4#0 zux*J_qG46-<b8x3Ua8g=BauO0Qe|~4hn}j=J2+8Qfq}*fh|S(Cyk93+TGffU?oJAI zlNTA>MtL+{2uZaIP9Lq*Yko%-yLH{c$l@5wg?<T=7)A^lVEy;Y+OZ2r2<`f_0L2hC z$^`9U`Slc2wSOY+O+~2#Ll!ra_D9k@x}@Fkc~p?%*rJrO46P^fN!1TAC^o!2bs}H7 zAgaBRwLYb?RU3%3wLxF1=2ZuAyOuEaku@vr#IKz%JE6(h&vCH@sj5_~#MiJiX-@F; z_NY0Toi6ZqLabiG)K?HRD@aGNOy4B0h>kG^A<9Q7GjA;CX?a)VT%9>tc7wo}7ObpN z#}C*xcT^bMg)WrNYUWp>Ki-Fh7oCgpYL$5#77W<&ItvU*Lg$#Va87xg_9E|vg?S`t zes#xV=H{pXqbv^oMCeqaT^KFPWUL|oG2^D!*wUvIqr?{kwc;@x85NlD8gqSwiDBEd z%AfEVsN^k!n-sv4y29lm=+2Adxh!IM9#QuYiFT9S<CizPzMhgDbu3HNy<@FUuZ++J zA!~#3Q=>ig9lr3%BtOL*cdX`D0Y3dqn&y6iT&%l*1dSKhN8@o_zJ@;*LYI-qI{Rto z2I*p^n=oKli;Zj63?hN5f^#AbQdXgfSu77^o=Ev4D9;7@oMcm?dzC69z^iIUuOU7? zB{XOO>Wh;;KqQBk^%N?#Or88_3e&3eOuEgCQsu69!pk!lp=<(9i_M8jsi11Udr=Va z!9n{!mQzpJW+oGz-`b&Wcjqa5;jIJi6vbl3pKot*M}fsHMOFvpQ?&ZD(g~q=pX|2b zXp|j&*i{<IsCfzX31k6GG;>r*igc5OF^N$&xXu=X7u(S|=z5O|vjc{yux+g`U&=vz z#!I7pN)w<6_QJl@fg`@H%Iqo}X|ct>wL@{C0t+FbvX(nUQMtdC0#ivZu}#FL622z< z1@{_jMNlynx_ncHgAWDh>PZ0!l2(Qb>VfOny|=;$r6a4!<!YVaxNN({V_2TWNKPWC z<(^D%AY(MifnF-k%P1_XXM0cwmUZ(e?;W)9j8V006UjTMAbNd8rfw`!)(3wcFuBIq z45pL&NPAIuAk$_%w?UV~T0He)2`4{$RIBH@Qzc6b?10=pO&PK*rHrWUL~N_xN3<GK zv_`=bGSgk?(I;~@RzzxNSkB>(@Tgv@GsFi}or@`3-cRT$ph3$?I|Qs{>1T$u(=6bR zl-e4^o0I36U22V5(Nj_a7qYSFU?#kG;I#mm>n0}}^rVbEaDyi_C3wHR374LS*EAu1 zb=|mHdBsvr@gwLM9+38_Ea$4zyM+XNN7=6x&B-2Vildf!)rv`j7cdX0*{~|guVE%u z=sc_t>)s(7>k8tMe5}P4x-|mdD!<JE6XgQ?9(Hn+N49DnUvUL?iJGV2g#=Z!Xg9nd zG|R>e#WheCNtqmuYn2cUP63n)Ebnk$t7ZuKB&f7m8-}<8&pKYl*KI*cUO=^i72#Di z+8r#P^nwVe4)F>q*LAtmyY?BplN_@L@DUyRn1m!>VkcKua>R0nl$HcD(8VcbiI9_U z?r_c`Rmli6A|UnzP=$Wg9SzLQXt0}nnqS_kok8rzc{Ip@w293mg`dGwJTs*k)3&+s ztmmOjlB$xfizIEfW6tzJ&<jF@WRt+(txE?x30=Ssr7Zqw)1Sm%IXmWz@4CWFML&#$ z#_j&~i_Z3X5J`&=61j}8=_h3^f@6{#tUhs3-Vx<XQb6cb!^dkk-eH|S!L&u^_et(e zZ_2&LvR9qqX<87Mscju&a{THviKnjOxK8g;8VRjst?kK6fbJoro|-Swxs=ZBKmExr zlTE`{WzcElTMs5TAnX!raX62vIgPAJuZ#=Uz5l8l!+5Hfx4^zaXR)Gzxu41`e|?Zp zi%*cmGjpPV>_TC0_WbPM+!Z?)hL^TLHc37>Stb100G`k_VYu|a6F5QQ>2Tr_MH=xA zrKz+=6DuIpooRr=NONg&s^P=jgZe#CrC_e8um&Oua6Lc&X!cH!xFhqbsxLoM?1Mdl zIu!Y*Hh*!8lH^8}j=`s+f@qSbYbrcB#FQUDPja_bCPD%G<O>Dlx+0VAG0Rp|u=&rj zHCd<3+<C1Xk6J45x(rrC6@N3^0WZ@t4%e=&6gW4PP;@VmY|$?{p5c{L-Co2wh?m-M zI9n3WI7zl4xo1j4;XUm6bN~{P(TJ*ZHDh6cMl8!ds2HyaVc}CsiI67}#;NrD9Un93 z%G<y^IAGKFNHKLL?Y*sK;zi3@#KEl#ZkHVpY>e&n|1BRNlB#}9C(Bn<#M6o4(Atfd z{up=Wfq}UZ5+0K}(0m<$l`5lFE|)bkIv}VU<mJm2h8I236$^sK%Oaue0!m6rS~aLk zsL%TZKakD5ADrrNWqdy1(<;L-oq{ShGl`VHxV2@(FVFmV$&AU?9us_$ex^;QV6BMN z5>xVaLjD4OODR_O^FEm;gB(Rj=seDd8I6mLa*J3-R8`>O-Nl`EZ<c!=KFpQhGwdFi zlh(X6sPv}pr2tE=tcHS-%z(%mWXY8LN@E3vNgA(AeLk;QdJ;Z>f(I7&>DH>CND%cN z<3H`~x(9z7P>9zuSwvMXQCERPTh2T+OQsTbCgG@ZGlTaZv@)up3R%S|5kKm&>`th4 z5ALjFI*nH<bRn!Da#?+!Cq=fMc_sil^TK7gbIBcIdeLG-5;~72YaOXjL*uTpOBtuE zgauQbsYvdZ_<@EyEL(80su07KaWyY?y|lnz)NZI|ZE;}+qIo#4%&t4Ea|2)3dX#9d zAq#r~KI!?n#?<GAMkf^!YG0J;H5H`Hhzs~u`QQWteY3Ex2n+3EEhiV?wcT0r5ynxr zQ$*J=?8kN?NC}3VfSV1ZW8}XmqeV(x6EcUKOV@rfEnjsSfQ|nNR`*m4YnHRtq?anS zQ>5dz7jPymEC{J9>C-BZ`8_Xc`u+RlPh3uMi`PJ#1<O@WVu1e}#Cq~H?uc7TQN51` zzr%uTOfTnaZILyqO5R+Ln9y!`#g<w(nrw+7Es1~+STSDK4?Si%kt>6>c$RGsZHv%1 zL9RuD*>25UzFZ$dmn{-xame->oRYkS=OhIYe3u8Exyk#+Dx+vC1Vm0rjP^4!Bo{cU zN+Y#q);dukPKO1Tc&3Fc?V)@%S}~$qDxi!PBxv6vUgX@+N)K*_`-?V#VBlNkW}z#! zYkOBI4(dh%!_T;!*I2xaokoLSRN5_M9Xa3g=R+ph1~@0lJFRxXcz%Lr6@p2r%Ak7j zW#<fw*`A8!OJY}TuXV=BI4qa+itI0ZtY?OGU$SlZU00A#kC*=o9e*mTWQg8E=`Zj+ zX)hcioJZ+6Kq_u#5o38u4TONFm=9lCsLCzrhNik&nI4qq5j`cTk9~|?aq!n{XQGrj zRNAUhA@hR@o3-x9I$+u7-KmPV26oaM?rW^WG0m0<`ALRj)O@^bC*#4FaC|^<+|S;4 z>-jN!U&kOLW56D(6S3^;DsP5+@g-rf=RnpSQl*$h2rndRFC(_&MfG9c&0S?o(o{z) zBdGTGTEU|^%*dpJ-Xplat_-FN>V@lY=6Lb;by|vP+G5hwe&)*9qBO{EL?+e^0bG?| ze}4G=oe1*$rRn7*C%lYOvGypkNLAc?!h_b)&-GN?SkQE5Uy=v0a}rJ;!0@}y!FR(T zjKH)P<{t?PZd%4E&CpQ=>wDTZNBIp8gs6DLQ4h83Wafl1v@BE8!RktB!j1n$iwdBV zmXQnVizkfCW2i&6uH*bY?uHd^(uS(iVU39u$tg)qaL<fd-cuNnN<;0j&{~D8{SLuR z9?z=)&p;)`$1^W@La4yLsVY<lKr2p>46=(gpP^2?t|vFk@S3@-z^1}XLs3>Iqiqe8 zgM^6kTWY<zz>og>E`Y~K8F0mFQikPmhWX$W2>_BO5lj$g(`a0Q>0AZG5ezMX_e9Mp z(N-cJKM0j-nD*1<0gA2`S>04h(2@n+-s!j~7j@^Irt;M19(v)@@Zy_E_&!N8b6#EX zur7|}!YNT6RQf{^EdSVjiR`)69eqIjbBvu6^gqe)a-ka?Aldckr(>9as_1v6%?GJM zxJlqdt{Q>ta9^uQ1e)Xz-<a$r<bpU|!VCZE8=;&6f6Yv@JQ-dQ<=QNZf!zY`20f~n zfW)e@5$%uM@@(iOYk5jRtM(P*GX+#KiI(J*rdY>xO&Tl^tO=Ul9Z;_0xB~>EIVV`c zDaX|RjkkPqLIM+pyHcZM=iz_>=VlQ3!-ejANrT~gbPh!U+sTGp+FNwBf;s7D5;b=O z!A<_Vq8#<|3P$IA=$zo|FW}%L=U`_qtR_GZIHgEst_dhsXnXF+cN&5N^5W#~6xmBd zrmMV&xe>)TmBw`)&e7arEeJ16(}o}`Q;KL>JNTa2|Be}Y4_r%G{gQb&$pgdMT89$t zX=Fuug<5-_v@7*5LXy8}2~fs9xS93UA~<FA{MT$8bz4Z!%Pnm3UDh%;bKPVS4su1@ zIfX8#%U#wD>UC1YT~*4Z0$>{2kZL{NWhrfE&P&g4g^rSbI1O*A4HV1Yt}z&ETG$9S zDP(c~nxN|K1K!P&#fH5B<v3kCEBOc<FC=g!Y0S$$kV#<2;T15i-GWY%;?~3dQTXBX z5X&_7uY{xxk)~ivc!_}6bm^SglPig2+)9EnNJ}^s)KukOs9&&hcIPhMlfSxy56a6i ztcdc|cexniqR4#2^n6rZB(r5L96!?vQgkPBd7GDyx~ssT2DxbO*3o^1BNZ;tX~FXG zy#8rMRG0IPGNo?*HMx?>32417a1Jj@Gr>mqNR(TN?mQA8s&aubO9_kxu}`W-c%j;O zfw!m<t1CP#Z(%M_<tw1z7fM>d;!+c?)>+&&$s9X1$|ud|b!Nb1wiitrL^+ki46prP zyTG=m0;}<39m;~0f}@|qbOE7CQV+*Pd8W;57dltVu#5%dg5YoTJ0Nd?8yQe2yM*(( z(irB98&nc6yK8v;-zZP8H4wHF`sh2jP^;jxoT}Eq>1<N4n<5PU;5fjAHnV&<`Bd%K zwvd9fq^h^f#7*+UNo~QeUW?SaUS!*X5l;nunW!M=kF+#qa*|VP$6ZEd)SMVi5o!Bk zI4H@@TDF-1g%8w`BFN>Tnqk4Z*ymqIIR>9xq$-S9>rIiJ-2X?;4}+G5N`W8e*@b== z9(eSf_NPEut6?JcATND@pXrk(;UvrMGUEo^Gdt>G8<2>MEf*EH>5NEPt+0)?D7?4; z*;LlVS{YOjtU1ggb8>GwR@58kwaP9rA_hE5v@qhHQgqJf9y1maRP|KjG+K~q9Mm76 zf;?2A6$DrSL-ZsCN;AthGe6jZbO5KS8qqu=sXk@qt010WJ(*nEk5^0U;p3?PIH3cc z%j<*-<X2x{(*nB3${yjosa<c2%UYqSPC1c@I5Dfpqm;#R4rv}1x+91LJE|LD1#<F; z-|%)1sB$*cY1uFQv6?BCefq|&0l=x<X1ySe;#ht5%%3;|v|X=}qKa5(M*CbqoVwg? zjttM`c3O}{O}w~Cd_wKQbY8||uM&+1YiZLNBBY#nA#yAo4ttFh?hFHADg!>9M8AhP zSpJtk#$8}~x|}(0s_Q1>Wp9Aeu`Hs=JwoCx@Dx?WXwneBs<yqT+pxTBGfAW!6%Z}% zO2tWL)A!IFM1J}&ESvNN8le(ys!dyI1w8m8L1cK_?kECIT4Pwow&N*`@OJ@&X%`51 z#Rwx+h%3>&sgYGM1K9JZiay3Ni%YZoUP&oV^B1dUJ#)SYFj1`j4MExglJZM<MUpK+ ze%r7!pcs=`$^$5Y41$bns(Jji#fB;?g8xfC!DA7}OBCZnti0pn?s_RaRZi6UA%Wv} zsI?4|0$=N?l=T{xN7>WJ5=&uBQ3m+QGwMs1g={S~>i$DEj_2}$rLJ*PY{!)~>&_s= zT3j$8gj_bEq2Ve*wFyXYl4+T-nl!iyK2qz=mlhdZ(8aMEcLe0-Fv@k%5rNG(Z>P41 zg&`LlzoMCe;z&=wg~O5p#a+qFGv}bg$Pa~xZ&l9T0Q%hi;GW{0e0;UkmG~!DBjc8q zKxbIK;b(BV_edEqrYA(mO|Wd7SEGShpSa0yGTuK*3hF6p);>U7!rAe)Su3oBY8jCk zo%GfZ<mgUBX(D`>9njzxobp|Pi9TRlYQn@$oYk#KDdK6LB5s_5i7GtTxGl-OL3$gI zDM3U<4EzHdN00`23fhAz+8O1+16Iv<0&Gu#;vh}v)hEL;UD#NoY*lc1iEe<kv8jp( zWUgp{u!7Dt%sbl$f|T-l!|!;g7sTJfr{dSFHJ8RbtK}srOjK4zt4KRY3@Dz^Pz<|J zeELkWIj3Cknjg>%KQ=-=$RlhOk@O^{iueL#YzYQz6y#~@+{65n2yG-SDraj?(UZD1 zNBQ#=*@o-a0U^3+EfYO@Q2Yk^OfZxQEfrAb!rRy@erI9A-4oe?{PM+B5y??&>jd-D z`JV<9#w_(v%1l3%@*u)bEdWPUt=XIuINTA*+z^mgqpM*#aS9r=xw9EyG`YeA;H-B~ z)VVBbI6*AA&8%1pX^|Bvd7cg4H0fqAHHU^Pax-PBbC{XR4h`&gA)ntK<;&&o5;~`K z48z;dS0|W(beM;b(hK#PI%Hj4RW-W6;##c?5%G+W5($Z26;r#hS^!8T4CCm4f2N|v z@b3U*CLJd;&)kC=r>9M%7+WSS$%88S-f(Kbhad@tch>u!27oOlO6C39es(o6N; z9#rYNITZ=IGQ>$$Nz-lrT$VLdLD$V8?cL1`t#u*F>g2LECYkMOf}*ZMlOU|+CLT~i z&?ZuFUH(q+hNq~Y_53{RAGzkh>aIQ}2A#{3ChVxdX<bCnYw@3E?EvE0RH&PQjRu>5 zVgO(Xop0fsT7p;sSn8rtwZJB&EL2-BaOk1!MP0^=xpFBhGN_bzP<-kHzd|;72cKTB zQ&UHppRk<hrq~(!hc(<seSKLEU_wqIE_KB&2_DVzLBpyftXdkz{CP<dH_6F(Yemx; z>|Xaw1>E?jg|RZFJY%m8$vYR1R|8npaSf_oC+lV8Up`?ag$3niKo10KQ!0;ZFoGqb zs%#C9WgpxAMHB|#@d#vH50c1DdrBrN;+_GJ0FmCFVy;OFFm|21Lydk;tOMlBTH7Q7 zdi^Tt@f<j&mY_(Njg`e|my%LbXPN!xj`sh`2#{pK9per-XTZnQiYH3L;AEi_w*z~> zwB;5wHTDp8?(3*z;G*Wxq%O>7>3~gJ!%4M}WA9(q1^49LJU|)n>g!BqP^0Ga6mf<f zXinx|F+z9s+KFg++4E98bc+;Ad=6}EB$YPc-`7>cY*ayF!(p^@KkONhOVKe&nSZcW z)fH1U6NsBApQ1~Ak$Huswn?Xst~#q*EQ;JF#3cB4!}thAGXq!qT{~-j4{uoej<sgI zJQW3MOLI%Jc4R9`&lNJcQG1iziTnlQ1?GnGU??6SZxEFe0FvURrq7G1>9XWK(w-8m zZYrSzf<*TnJTHk+%$noYr7(QY##1_WuP<+X?A0L0q?MWBPom~!@<ZziqBp-J!&z** zgs+!zs&ahFqSu#UHNUYI^^{j@e`Q59ol)w#kdX1hr$ir~Bnw_N;H2-k0>`m^(oDP9 zxIS6$g;E8?WQEk_<23t7505Y}9Uh=T`vie0RV9Eqo8R;2_S&N^M(PV}0zd^eDV6=u z#YFk8ze;O#QUNigs6iWtEa4REPIv~tdN@{A0sYIeNe2|Fno)fcI>(COoKb5Ctu5pq z%4?vz0)i!<sCn1+HD>@9{9<8Bxxa2}o7|HTD)i<njEpPo5G!(@TCmcs%N3p<<z(y+ zPRZp;OAJ2fT%h_tl#PrJBV{!~-{fe2DM%t)d^0;+V5g)dNkUI$<RVdF1Y~4Urd~aU z(ab73vUL2+8Umi)dD!3^kjvM(30?%jkxBl28>MPR9L!*oK8wOdY*<V_lcQu>s}gle zz>JBi$F%u^6+uNc&^iG&oKdEW2&zo@#!4a8LGP;NPmFhRlH98$=H@>+@K*zYd`T*N zTxi#DziX!J3H?+Ke6~M;HdR5;{YO#;f=5lv!^y>JZ>1!0JOh>Q0+tEr#;~CBxS)B# zS)YWLX6yV&_L;I&!?!{wV&`o_hDldLdbg>{s3fK6erLG_l@PQm1EQ1I_GuD4b7Ae! zJ;Cx6_$O0#z@)bc>n5W<j_S$YCPda539JYUCV@?yitL76nk7_25Q-NS>OlWN#|>uw z;)C>nGo6%jy(Sb{!#NX2@aD=kGn%Ql=uva&(l|p1+l3;(L8$-}pX&JDkcgXZZ*&!; z0{^d;kNjE|qq(&TbTAyPMM?cGJth9SYa}ndREx~v<OViB+A!+56ZIU=jnPcAY*PRk ze}y!@J>B{OS^$`c&U+A8^n1j+sl;>ZA6Af%*oK!ApdF-yB<ArbZ)!)iVKqBYFVBSI zlOpR7jH>V{AF?X&Ce2d8Qny{p((~$<dKlN|K-N_KsP6UscQazAe;=OH-upB!Y|l2= zSKaLs!Ucy~w*Pmw;c&#!`mcgp)?{Xubob1iID07c+YcpQBYCe&mVGXzeOcJJY}35P z{4Jk`e7WG$JUa(FpB4EYgE!_t`r2%A=8!6*$C$0}KJnH9>*Q-q<l*d|Y1IVE_7Vpq zIq)5g5-vt$i&8aXxCAtp`U{8q8x$((Bm3$1<<nf#^T6Sd&d9Gjy{rxhKBxh?sZnFB zPUz=`R7%<V>>CgtJ6!i0LX}2J^cZ5U*gnPHiWguw=*e>0+!Pz@<T-C}=t9|T7TrzQ z8INu<@bko2OSYkad<_Xe(j+uHN+4Tw9a)J){O(P_4A(Uw*EGsJWp1SMQx3-Jj(|hX z@(AeB|D`GSM7fHF_LVnd5~R)cYHkhGFDYqVOqLQZer}%deMX2pOOx<k-C(()KP8tp zW5v4Va;`IHs<&M1Wcl2XlOB^}r<%)I$O8JKaYV*6_yUSECz@nDAtyM9eZh&!M5)zP z<ct1K37Mvrsch@)t0h!haE>ciNV5)W{15_oy0m2ua#BOcRpUe-GRi5K*n$G%Sb{{F zJ=tuJ)hop=0m5Kw7{fqDKMe1-=Bb_BRCF=o_KXis)yC>?svX@_JJlu!xzscq%`ntW z_e-Rv*H-YZKerq2jn$VZ^9ziUevKwa-<MZlyia#9s?`<`RFVBJ6^qrUT33@;`k7>n z#{7;BKEF<kZYHs4Gxj7FafTo<8-EesBC(Xy!&0fKn>)u%m1rT8Sd{6vwA}&161GQx zkd7W;7*gPR>vpEW!oUx3Y4ZbwI224-r60^(?xxbea&}Yca)Q8Zjjd8?_B}mVn3@w5 zAWX})Hh;$b1LLNuNe1sJM2-PMtjU>S5RDXwekZY-C-;GQ^*WMR)Jbo!f@cw6hOrcT zH&tl6jhl*)^M+E-v8V3z;ntmA{4V%`5pR~opuZ{OAK=Tl#CX*10loqpYU+d3P`^Y^ zGlt5_)ox@Liw*14SMabTSZbYPS%{D`L&(faPz*S=LS#2^`X`8w;d-J0jG+hR(FS*e zAF|Z&NZOi5BM8JvFwJ3HN|-xPAhr>KgD?!&DD_CNxCz;7NR^cEe?@i}DkN((k<t=L zO<g1Sm6<d8nPITT+sc<v3<RvUK<&(tdLwn<uRu)&cQ4#33Dua;3TTa{q(E<Dor~O~ z#?@lQwnBfl8=7QTlCV5Im$3F4@(E&xoY(AZUCzNE#|)96mmo~@RHH1=+gbfd=R1r! zm}wm9Wbl_z9Vnf<qg+#L^_a9Id5omlE>n^wB|1`n_ZB+}@#wH^nwJ>Mc0qKSW3liR zO$0c%l6*da4M%v3#lIkTG+1wMiYt2Ms9b4JB`3oHEQcgpzOB)YQw*u?)wUd0#Fx^5 zC?&0VYS$)89ITK;<csIVM(>1MrLDPoYjb(#iOpFUdfjf}l0W#Ln{7G1hz(MsS&eAo zw}~Y|=s|<(CY+=3)KD;db)_CdGoO$TOQ`+zNa#<5rI5b)nafkF0~yD8Ee=tAaFd5H z<_NJ-*rwb>4b747XblHOep^$Pxm>i)Kw#q$CxoN^iam!Nf~+86L^dj1?5kTW=P0bj z8&ni8OSp!9X_|z9;bW{j=LI3b#AS8parrsT2E!Ujg9Iy0lkPG&7<OW;maQ-WYspjQ zQ}Zb}GR6{wL?KtLRUgnqITb_4&>TRuPTC+P+Ve4LCy@==6S0Q>mZqT~O<)YO1!E}) zmJUmlHdJ9Ee1I`$z=2@Px8vIZH{b)rZHL4fUaPf5lk~+LX*C$bMYBdzpqbG4u%PI2 znq!^4+6%#PxZr+l@G8jzzmXOdAkh`5o64~c(+aTlQG=@{Llco3YzdlnuC-I!lI=wP z>^W$uei26+0v3^Cc%ALtoI5Nb+VSoAKvv>VAfZUGjz~?J5ePH-4UXdn1a{02!te&u z@?hJd`wg#6-s-t^7_}qW87vFK`Nw#b$XdgCN&yZ_<w&+8+i`4x0&X?<8u~F->9C#E zx*LuF|HG>*QCm>}+fV5FQCnqLFTPC!P&u%2uy*wvvWv)tZOay0x1g&0_qaL?1p~&M z&vqPe;A8oA^qB<@DJ*})hv5QT<ysbil4i|LsVCvHY3%IQ#7M#nA%;gle<SjUz(3ZZ zE5Y~O(9MSJh9wk<v0x35-v-0)iMuV*en|vSkceDrfihp2r?;W9?FR|9b`+=t;V|Z~ z=Lqp^AEBMdhU3n9U%$)>E^7n!-&z0;6vvQpst;<!!n=wVwB|KCwo2lGthXCB7>-Ll zhrhG{*`Cxa*0^ZmG+48f8mF2Iw9K{+C4HQX9r$J?*h_G$0%cxAj@=*uhy%8MN;3>< z&S_49kB0M=1=QS#9FLD5IS$N9#uZ4$jV&%SH6rb<A7_eT+XK-6z2Q6X?PxY)->B)3 zpSgwrpg7wNvK%kIBMk^NJeQb@%MYeh&WckU!1h2JfU4l^Ed_deK2|*(JdeWPjoKSN zLEeI~J2gI_6y?BKg3Lw2fUpt^4Cx8z<bo)JSzlq0P#p=j;D9ze8W!wS5Kx9=hSzC7 z@}(IXUO}RU>w;n_1`ZNrI09r5Ymg0l5%c3TG@#gGAE0-AnidVU00d~)IyCAXpI>Ov zgi3>@N=Lpe5eS23ullY8>H{LRx((QIgV=uT2w=KD8Wl$FraRy~N?a~4cLWHvI#-!L zYf&5m>wU#Pz|?{1eS%!YYfVxrFk8J1&4z*(zTLS@ukk{>!A?ZvQS;O;z>nJj)o#<2 zO>7faXelfgpxMiTW;?JQ(VM_h)L1He9~=o3l|L87a)B+N5`Ml_(*U+3P3lS8on%MN z=lTj=!Lr>A{XiXnmvH1_fMGnroF!|53xciN;TB1ThGx&VCt$%@XzRg%VVYf;%PlK` z-twhkh8%)Zj+AQ8cL12fR%la)HbRbI_HwZ86dOKPj1j&)ew{Drm#FPqCHQEknLNHd z*`>~rk0k*8Pm|vSyQH>hl{5okTfKpNW)-d3(V{Mz8kd3@lNc_wU{<rb<*zAg4&{W9 z95{=?O51_ti22HVE3h#1ddY%zi^C+I<t8Kmm52hSS|J^la-CEkT%R?7A(VNE8hswM zfH3tG;TXJFP|bBU&}$EHqdsYaglhw&=?`2;gY=xW5ut!Jmz?M@7I1yojzSl9kPzI6 zUe0v@vTD=#0QdV;g9BzJo?C}pfCxY-Vklm~Fy@dQM00?h&2HvG*86-&Z99v*fJ2=N z9I77>UW{g!wFy~;>zp-S9~Kc=E0{yZa%@=;#Y;S=cGg?kqqe~66M)qN=w!or-3go3 zdu#2Kc}8%fYDt4sYzHQr3?`e1v5E^mxT09KFM_iWz@qC3d58_r2>q{7xvjumhZ$VJ z>VSn~fV;+7RsuK7m)3|%rZhj6at)q9(HnrG9|zwF1XqVjfXEzGA9Cb+;PAO*ApVoU z6HqC0)EJdroxp!=1IfX%#1O!81wvj9u1Ew|%<d!gnH31x6y-OQPr#5}dvcXPyMrw* zlVRWjSD;-ZU<kb<-vJ2J7ELz1#(`6oJl?p7JlOUi)Xzx*Hq)G^%%eHfAqydwT08DC zFnBKrEV9&JC<qhiL;&l(*qZ{ZBgKJlFSZ9de%g>_pcO=zx4|dD;B*H|9`W=F6hm=l zy8&2hL$+6app^4*u^_3g!&sdK4gez`H3V*AY4k3fj>U3;^#*<#%~d#?6i#M35V6{( z4$H?hJ99cbmoD9#9*^z^j@gH8hpq!2sGb<l#*lF2SpigP{J}n?Nh0znc3@*|kt2o+ zicqo(CkXK|+>{JU^tNg@3pm^M7pte2+Cc^43WtoO8;(mn3A@ouO@)+ZOShwa*dnja zO$M%NBk(XgfjTBi9Smb&E&R)S*y~uKEVm>_f}_|Es07(C2Uxlf^5>(o7R^mys$w^g zU~C175+eop0}K2qw0#@bU~BMY;Mi-BN#L6j0Ui<KfOb7R_oD@D@-T2tnR)72;I;rv zrWFL5c=X~U@YzjC4M0>&G<_h1^KI#lv=3{*y}SfA95-O*rwzRtilcINt#bifbYe}! z%}zoZ#sH0E=o}!ML}`S*8UsY*j%@v7V$W|B!CZj+4gv-7H9Q8Ms6|6BpxaV7YyKsm zUl_)~4orZQN9|zoLOz>E)3iyelk+}UFGA5kG74#p#ENG-Bj9LoFh_8j9i`#}R+;Mp z*l&L%LIR#G?*O*b1*A9shJjhGe?aw88<#xm%O@;iy%$3G9d$pOoV=}WEKiV-?356& zbW=G*cN_=4%(_kVMGtL3d)@EIN){Gz64<5Kisug4SvMf|NCt>j^jx|PmjHabA=F## z#F>MvMTWsH<3O0~lSCBE1|VR0VR<63D6YLa=namHvm_XjHKy1Qu*WNaSoa!aSIRRB zh>lhdmZ!i)WRHra=QMqJ5d~_;*gW7Q94&KLZtRzPf5Wrfff+?=PSWDhg+RviykQBB zx=@_kS}+?Jyg}p-Gw^e%xmGvuz3&0~!EXGUs0jh;2P_u20U+aH;AbPHF`{Br{~67& zLg3JpN6n?pB|CFG5l6#q;3MhzbbHD&*Bog=F5M28plzl!qG0g$9!l7|lJos%MVgzG zst-1FQQ#mRz%&PqKe=EA&$gZ7`Xk0Hd21fM1bwCPr`$%K7<VV-=J>JkqrmlX_cF0U zJI)f)WXS*0G#UIjbhlyOn+aFLW7-xrS_nP;$GX}eXNW!7<F(LX!<=_&0BId8iwy?^ z;LQ2rNH4Xm$Q~v(n}1?^%usCE^Czcc4f1brNk}1t&r?b*IE?Wh<Ey-EL$xFnu~_Zt z7>b2c9!$Q0?9(Jl`tlRE@pYOutu<7VahB_XIKIi=xqye<^JL@y9o|hT`>+W`1CVqX z)q%bE{YWzaMQVE$>hKJwaRwIl^dG&+w$t*bDOBXFJ&7S~nn?!8dD>GG_m9yi4SSQ} z6IFsv#v7LWEv7Jkgx36RtuAPlav}sp$UZx&M69;se|}o%&9=AX1PGncXv1TJbrpUy z7eH#f&a_igb2cSd8u1ywuRyuj3gU;|OpbGHzNvx((k*e4v&eTajR1ndwB{TG99rW0 zn}U|#y3hhp_gph~z943r^$zn3j)g;<-lt*Mo}<(}>SyX!`*A72(;Y^xKQIm^Zi^Xf z1w7ALYZHc6`N6c#@X34Sh@@tr)u>rx&{yO|{i_4Prj*}ZFppo#_h5Nw+wIx-j_fro zPt@wga+@~WAwMA2v)IM$SNWbRU+>gpY~#_ec#Y+*CUJo^<-sYA!$dXz{EB}KO_*bp z@l4>>c%0Io_%h4Cc7memn&UygzK(btGEFNmZyzP(tQ)20bGZ&=SBukYmw$%+|DepZ zhR+<8pVI{I^f~#3quxE*Md+({KX31{rvu^!R&wKXeMiytmFi|V(2q;gVd>@X5Bt&k zSi5y~UBrJ8Z$I%?-I{W}r@`c<CTi%%gm16zHd3>`eP-_UYh637el|)y&Ti=%UT4Yc zqMrWx=jMM{#?D`7`qr9gy~ue#^>6pA*vA&yS`(HW_3%bXjF{WkSwCLA&f;B3e}+cZ zPaAQ5+*q9++}M4$mH#Vzrb}#a3KJilBK9J@wbRC<>=Yg0*oxtl&LsAsXV&BEL@DRE zMMtb#<rH^A+d5O^TBEvelrVk$y7|1HGHUs9F0%W{hyA^ywBKODF-v<)i}mL&_0!jc z={IkT*Mb7iQ+`84wh7=ix;Q^^ypDQ|UEO890aKGb1{Ftz`*dl?*xPiMyTrf4m452) zwyzbDXa5o1dcaN8nJ7yi;(C#<DjU|S>Y2J#PYm2$I`tD|*JV@dF(8ICK<gQ^68ZXP zqvB?`fZ#va@GY9*M|jSP*WtfK=TxeHfg{(6;&si@>u1{4PXXSq0P=2FE83y^v+HCf ztqCR^N7E~n$5BirfpPR_LNgq<mUFqww=!+5ihFderRtdQcX(%b<%Md>6Xe#AHO!Cy z6#3z?)%p(-97GsY9IMS@KNBB)%t_HTb`hT;y?)|kUE(^+{jSX8Xm0S9=~I>b8!)+& z_wB%Q<a0l(sEgYOo7P!`UDiezw~iz6tVdauSAw^WoV#+_{JkHc7b)y&Sj(yD;y*z~ z{M4DNA66fWx(ySL2^(RTb(XM7>!&*LKS;D6cdL&397(SvidOiEt7$%Wxy4<kbt%0_ z0<q!(U;P{$eL0=^Et*nEe>$MP3SaR9x~D&eF0Lfp{rtmQxjs#%4}pw(;E_^V0(u(C z`~t12P&>nkp5hU?-XZbz{qi@F73$`4^>#SB*XQ0}t5?Boka0hpeFZV+A!Zt!-Hw>A zBIX~F_D!heYgDz26H%t-m#X>YYJQozMy^-N^+cII49eV!s+M!OAsl-DqP}A?WDlwe z;Y3uZ)urk-xn3{RM?;x=QA-M{3gzfM#l{LXrBqERS7T**AK3H@lCup>_ZIU?)iH8? zDwLUCkz~4b5h+A+zCy`i9KO4_U#|ZJ3G@&jm+AMzkt;Y9B1gP{BVNW)dW%Q?`ulG1 zDv`Ii90@C<?Lyx{eIDZB3R)t{*@beFQA;(_z76GUMpIUB#9&&b>YXzEHOMHI>kmW5 zQ?Mxv&Mrc(c!;fwIn7>TwU4;3RIM*l>nqep;kI2Uc?pN_EmoGPhvj-V*p!dFqM_j) z;tILGL8iBbjGw~UXOZZy(V#^fN*Jd`rau4~8E|$X5`C&7DWm2h0{KwdPGtWNF?zt+ zXOQT<XizYRhZhHzsy*fOuh4K$ad3rt5Nh3rHq8@*p@2NMpgwY?r}!|O=q?^EQ}2e4 zm#c{t>YH+XSJ-m(-{||_!wQ7%uU#(TRSP-XFb)^U)kBP1JZ9n6S*%$bx7XFxE(?5N z8GZThsOnNt(Z7S&rZ2s`^h2BQFHN*~c-`{4qwTK}LkKt5^}DpohqKN%eg2E;RzUQN z@aDfRPwwx8I!AZhdt!L^n>?v4>tN;oqTk$2I9~bZ<E)JD?+#qwAGZH-O8x!%=SSB? z4$AL;ej_mDRbqH%^diRdxBKgb`)~fU+sEnIh1;j~D~Q=A|C{XT-CMmKcX(IUtMrPW ze_g@La@{$T+?zhNKjr+XyV>9O-h960i?BU=g~yu5?}n|eY|K0;9r<^^{@#$yC0EBE zA|Jl`v$t;Bk^`NGg*ok~Tla=!-f!8Z&Ayg+eEk<!F%`<1EBbZ!@5Wc)G6rKC+7>PP zHtX}(*4S&wiT}&7W}HspRq(T#<MD^jEZ;Pd(%P5)rLzQS`|@b{&${=^uPn-Y+_RP5 zd%U`BSB*8LZEsVHC2ogl=!-Y6{z^!>d%4f=(V58QZueg2CEpAc*1i3%@Yu~?KVfW0 z)BO7K8_4?2z4p=XbzfP3>3h5MZr#FDZ>1@Ze9R))a(Rg@+kazF&dBD<z4uP-+4BDY zWI&t03KtcJ8s#=q9UW@aEU9r#x!&`HuZ_-9v%T8?>U}#8&cw7lnuxvi(S@unkR}wZ ze(aXvYQ`?1wMM#7q(w3<?X8j~XKR^skvK1`EfgUXF2S0Jt)<dMEUlGQgbT)KwRC|{ z%cWV_S}#q6Y{7Indn=|%87&!UA8O4^876gYt(qo6w``iA*}7>0Tnnd(TI)GY#@5mq zB1UVcNyLOfw0gP}n~G%XXUJJwKwXOa7+XuI%Y<7))6Q%Wbr~+c<B~OD>qxpXTS!fm zX(e?@OH0X#%rH4W++y0S2Cb&emXGh4)>D(VwV;MbjYvJSB^|Uge!aP)xmvC@4CDRH z?#_nHvDFEqTpnuFYpb=cSDh`3PpEa*CL*P7w%2Zp9MI=I9t1?gROtpawH~;|cAwW> zX;v4G*RH=_#Ln`3S$=-MNEjXrO!qhUmAjP{;byknG29#!m09&buREb)uIjbxYf?1y z^-5*0Eb_-OZ?;)!map;J9g$b|_g4LaV6#&tZKBjJS4yIaSrb)s%WHSnX1c;+vDfuF z%1&hFev`7h(dm{&vZ_y=D9!HjJ2f+{me;8Ie`;oadWOyFYrA?4<YSo5irS#-?dx?_ zjRVuGJW<>CWIH%8@O_)<`Yl)AeBN7a9`kgo?KPPVulCBVnd(4`fvE~KY9>P1S8LQ( zd#k&b=GtDzQ=tz8R8WxVdpav3Z->{f9;A_I3q9EZDz|-!d68NCl$C#W{Twj6OU1wZ zO!e1XS0vQ_h1t4jqIR{Lt3mn*qo!!l8og$(Q(rsOstUh5e&9l}st`GVV3lCIDSB-u zx;tuB*)A`8qGZ&TMB^FA?C_S#qB#|<<lbhpwXa$Ar0K3&-Md<3r+P$QHtD;&-fC1r zWTvY8xVk50bpOQ%E!3{}W<-9dqjHtTB8&PuE2Z`b&HYTPTkQ9a+s#9v?C#99YsmEb z7xp$Q<+=#48cG7)YTm1ebQ85wZ+Tf%s6t{;Y^0bU%lrLq==Nq)q*WtS1??}d`cbsM zSFg|2MWJ44)<q#SB0s1RqG_l8l4gFwMvVd|(v(fKLmjV;gzJz(dfjPgs0+w1(}W@; zoBazY(z<C!s3YZ7e$WSb`xmzNq`6@%vS+ns4F?(5Ft^N*_=cw6J8FKVA_}TuMGpCe zmCOc)=^(2cRzauPVsWe)B!y-rvf)v~a9_D~&@#s$EL1BZ>wnR4wAib9(w;J~v_@NC zM@JMSY@ZicAzy2@;hZ=t3cMvt$kJmmTs3Df_AeZ;O?n99mP|zvgx|L^t=pnhilLE3 zdr|&-qRl(zS(5@)p<!<GiHHDMcum6<(Z=ZWwW2J~?<FVbq9xt1M3ZAP<!2u(g&=Bu zfa+0Oy<eE=HpN(4w5(}Y!|mmEyA}~@*i6wl3d@D#<yNeKXd4ZQ1MP^jeWGn{uZ0X2 zTD68uZ=`vjMR(9QDf#m#e%GfDO+Ok+Wq(|tn^yf{k%<4&pbho>Hb$EHl~|?ib-k<V z&BbzkJ3<+lFLXr*Ixs%eI4){l(J|}vWb;z;`w@Qcs;lyt-(1XlOCnGE{pgZZqf!!O zpd(6eU36nh$5PU`BfTwER*sgI%CeImHd*eK+f`*G3P-yo|Lit<qH89i$p0YO@hr(s zY3cc4lTNeOu6U*HT1)(=wyMO}>eW))Tds9P0WU3yZd^&^h*G&)E!9@b%Th;QMNdwE zlqzM>p^h3ILk~}xt#+1oHQUF11<Re5_~!1?L}~GQuicywuInPA#J@5YWDr4*vu_Y| zSEEK<(ZQ_;MlxxYyS+l^z*P2UwQj6oA$u?u<7>)dc<g_|!0K4Jy|=v9?1lYTU4}mD zstTipo-nDX9)U8fb%ZwM*|1Stj$(8zMZdHq+R@Iz=Aie`Pqy-sU-u5Uv(~7DScF_! z_OoZ{`Kl7_TQ&V$)<@sER6#FUGnU@e%ZqYOsBhCoP99_-A=LH9!bVugT@@Lpb&I(k zD$J#io}3#itpptpn+Wpjz$zLC$3@ms6GTfvrdw)z0)?ht<Jg4oytC5R!H14lZdX<& zL^f~9U)__vTE8i}w$@!ik*<lHFi8A>4lFHoWIJ+HmhZN=OHPUUF0~Pwus<jYn;H-a z4Y!LTEHc6>%E79)T3KzWe`S5O>gNeHHVf+$wo!@<So*)SQE68F77XScix17Jh!ekz z`k~9QjLdp-<yt#1?}>aD3~F?fInjlllkKV1qSsk5ZPX+gnm6CFA}hmouhK7jee>3u zuZ{e=j;KI(tE#7Od97DI3apC0e!Ceq@z4s2@02|n^}W80h#%3dZC2zcw;HsDfelJ! zfT4mK7!8Ve$OM&9U^4GLzgH7Il(17Vl<bD|lUVb|EP9OBo8_t$RO3fE%>m=)(L=4U zk8*?>@=?^X3tpodCBOEu7`ZT${T5w;pyD^p!`YyX;cW<JjJ#r)o5^p8R4EyhKHsE6 zCSqrhM5VIdeIPB+BQR_mqS-YCq=KTsZptDxFbO4qtbI!86Nd~=)B@GIYK^6<K1+5q zA~_BQ{=mbl%H}3&E)4qI(H(XIfmZMpQuqE0k7^eCcCrkFCV#@_sxE0EPoofs`Xe&$ z5w?bduHOePtqLDclvGMZ&3fpKb-a)>z@b`I{T<{z*mgx_+*bd}I#K*v_Zt4cjliHG zYe~Pu(&_dVON%u*Z#J=2_O3fypXV*L*S22UY#-gaAd95PVpIFdm94Yoc6UY8CR=A$ zyvkA0q<6MPCeAdPQ2qWbgIRCUv1+!vQ>$?SZSU3U)vdc_rohCS7ShzBFM)ZZsNI#q z2iU7D-np_NI_Bm2))R$XDVNzwsnwjg@)woeX5H?JNjcLe(xa=4uah0cjGJ7(wCMMg zYho09)Emoj$(7D!HZ84qb&&yKD@{?Mn-(L7HdVBTHs!cvfKyI-yf9tgZ)H?P0TLbQ z?rMuNpK`LaRgtuE3j-@LVh}A~9o@f)$kN@tonxcQ$b1?xnXITOdNrVylN;9=B7Q?E zI%8_}W%{VMHdpShOgCzEzsZ<ZIl4HsGb3XUn={7@aw_K#IW(7{b7(HRE@9_WMA!v~ z4!hv4OW1`h6?TCMySOf47xPrDkV-MtLdr37u0M>JjnBXE(jqB8$Vn`oAiqvIPM-M+ zr(h_jhH<9SqI-cDHSG|`ro~j{#0eF)=-nIEn?svVnpaG!e#|a^uHLKmS7FWYG<QNX zRn<%{S=?@kx|I<(DMn>w5e|&Z0DK`)n~UDveo?Wjbr`#p>~(2^gn!NB4X;glazNS& zmsicsiVkDNYsmriV%>9wZa#8((yEXlt%_toBCnHem}ojvm`L1x&CI;MO=Jp_0;~u! z4<jSvXsYDLU#yg#YUT#6q4#T!w@b#dt78K+!G=mrRZw*E$&O|qYt{j&rZ$@y&Fxt2 z?UmLbtDZlNaUEe@?&wC>(d8@QmejZ{JmLBHEusB6GgY-f*15N{L%f1&G%=9cY?D$Q z;SP*d#z+nCZro1T*kMjloiL^kM)ugriZeff71s@#B^cdQZtw*XWrXksoO}DjBDyq# zS^@@>)xiwMb-G>9t(5Z;LAN4gYiz{4Zepw40)v&(&ep?~X4RW2w_01}0=VeNb++#C zj(K%C@3M8SUhc{jx6W4a0S6WiPqknWl3CcXC$M%>qT!wDRF7`$b=q5NjY_>&^|l7H z-dpAL{?v-hdg)BOp3wrQ$;;Iu)#D6(nDjWCK#=vh6Z|D3)!*b%>#j{Vtg&mCrNvAe z+m=4{A^Ak2?5ET^2O9hO-){t7(KekKSu4<c+OYB0c&20QcX;*kTAa{y+iQv8Nv*NG zQ|^wLJ}zQ%ujd_ST?RJ&HFbXiHnCi}DwiJ)HjVy5VRZLK^RRB7jWijh7L6Cz+TKzy z59|9t*kM_@w62Oz6{(?nF-tdD#T?~`8FLqldeRF^Sx?P$^sSX<E|F#1Fw{nf(W0|? zhu3O*a#5;!MYIy|w}k|?g)wF-m`23}8$simaBW(RoQZQOCsS^kbd`2US800u#f|9b zaiBl7p$()4&0?uhwjCIY-MZelHXE5K*(4nld9`7+HH{`pmIfv4i_O|%Hc_(H=V71h z0#;MmmC=t<Y=9n(p%Mmjy7^?#CzB;8und~fM8bjPbkkqz4$8RUcExW8?RMRAtxnlh z<SyXtYeDZ_)O#}Yg|3`cQB`PX+Ls|iHoI`9$Y4^=u&en?Zyi=Y%2KP!^a5t2QmHza zW8lP~Qv%6~+C)9X2_R0QztXX#zZ>sfADCEm3i|QB#pZ#<6_eGboC#9Bj<g#mW%MnE zbTU#8V#qMC1Y~KqU1k+awL8NG<x*V)w@3$-raB{OrZbYxF-hoe+(jCuW5vuw9MTPy zic=Y8COuOaC8((^6<Jwk(IxAS7FLD|i%FO)l?Ad)FELwWQWK{Myed*OpGee9)e+p0 zDVs|(%WIiYgPY1xk(Xm~Qm!y^c;pgZp2<ylDpK;yd{;h8rm#G5+3f~Hy>upCE}FKn z^2g*VUPm78l*1yS9tM?U<;J-*^3^y4y74s#79Fk2kxVglQn~fhptw$6k;TnnH(aP4 z7glFXv*RyBty2uRq~b19Q8;d9{WPFz4#(w|bJZRYo3k{##U)MG*Z$m+D#}ibkXc6$ z<$}&GX{N1l(#7F}nsPGkC<+R9Wai8;)uof6HaIw3r@}$6V#seJI~5Mst8lU-M2T>f z87(5SWQ?dT2c;yrTO-R=4mmPPa$Ld4(FH?Ir^XZv2x$eQ6P#M#)ogpm{Nolw`au^J zu4m!oVzQGhs40i+RXAL?!pX;ECn7L1TjaU)Eu_eVs>mggxEc&XL)2h47j&`|xIA6R z4<D3pMeb%Say5~f5*{`%dXp44TkI5L>Sk+TZi<RVH^nr+Zi*V;xG6?QH$@LteDw}C z<A$DnF(doflySIka58lNw~cn#EwUnsl;C<1u3O-g*jH}F&8GxXiBw5*s-$UEaD1X3 z^iHw~1QRKg;pR~?bc?VgFHh>LL*|ygSR!Sz%pOEnHRr<yCEQV!tjo2%u4sFykQRGO zOKM?8-e55unlg_YoN+FV7+ME!$U55P8W^__GrC9|zVM3FfZOfr7Gj2FLugQ>cDT4j zF7Fr9>!$&k1B+Y^RL#)(Xh1ceX>QwZIz>fYnroZVDY{;-H0$zcXH1nENSQs9;hc!< zPuAMyqu$<fFrC6o-1Oy4WrlS`md3Qp%@(WS@z9|OhtvQ$%}!~nIqea`OOxNn&W5L{ z;eVPN3a8UdSEjkTSZfF+yTYj~AUGsJcWO)rMskntnojo&_ko$>c)?Dkvt;?rGF4wX zn;tu0s>VxmZEjkPcgG5ttmtxFMW>FUj1zE<nkq?ir&-cC&N5EG)L<o@<1$xn?97!X zGgqF=TzN90@?0g6&tbPrjH;;5iwT9Jr97FVwrFH4gZ*Qs_^Q`l9_;I*?fubWj8Kw( zb0)=1O=MDZBe+yAce`FAwi6$S8Om(;*<3%E$~Y;)K3GE#B2J7KZoC)iQ8X9ssL^xA zVKQOH$&DCX%zCNa9lbQmEe&MU(!lUalIs8&ZXF<_)&WKcj%xKYX)d@lnR02SWyz>< z_wZU~sOi8AyFMPbKu!fmPG)Dg$?Qzr8aWvp8JXNFd4^mj&v5JH8D^opyW-bEbYs-0 zl)JQjd3m|*-*JciQ|<1qvb;ZLZBSR223t@^ai6Ff=FX003UoDW1|QX%oKa*PCR3Oz zG6i}9gbcU8dyYxWj@R9TQ>x7djxr7>9X<M-B?l_J+axiRb+}_Ns;yX;@P%hoKQ8Ms zJ=d)3tfLMt)i=w!Ts*kz84oTU58NgkHKJW79nxexq`7zyqg<*tSCcygkCp4%WZ_Wa zp+gKR<L5_qZq7BXlV4<?C7WUDnrwzlbarc4mY?4_)acggaTDetL34&@Xjk<2a|7S3 z8u$($oN!4Ec(dGqH>(D`qXb9}bhF$*H>(D^qXbBfGqc<{Gpoj#BLzrJUS#uJ8s<k% z!#tUW1uhK>WW*Gh9(1<Athxm%&a3<R<ke}II?D~`#+*GH#{;@laf=99+?g>>$WvKz z`5?<JA7s_?!MI_QIgwj9$f|{d@xsoLbN{&%^WC`=RXyam9eueJy(PLM8XLLdtY%*@ zy^~PbtkFkuNpGcfm~_agF5PHBPUXn)c#a#7=Ui$`mvcE?MYoIU0Vp-6E9H*YnXak} zVuM;?I5$bU+_@}!`w!E_TAKEUkzTzMOs*A@$tF^Z+aR1{b_g%k+8t)->RTTOE=Fbs zLYiQwSE+cN&a^i;E<ksFdAEr^zsPOkR@-9MCH$#8xhFW!O>^c|t+ZY`P=zSZ)na+3 z7CT<9b^SUwd?J9#o>h4{a@+(lgp#CQp4)<)cj#Rn-KKx>0XIAk?meI+TD`@3t+T?+ zmIqHDF`3`LFPKq7*~>-Ac$w>K^|hG87!lD#5uD+&MTX86^19w;uWRlh$<X~sn-jCY zHHLe#xyy4Kbn<GbHcr68532i+=bDAQnywr(Xle|a=VmqYY5+D~(Bw^cd2YjQo*ath zb6j@JF~`rmdhM9kKG298HHQR;7&TL_RE8VD9T@?6E~Ano$~?COnOCE~;k6Vl3!}!1 za7zsi^W5MtPYw?A+~6>;PS}s~jfD|oM}A|0EPCAdE>CU>&KJ3!LXoWAxV^;rBHhR9 z?{V)J9I|PNh?+%b1b1|8U1XLC3uHH|z>V(;DfaY?O5yPBFtTnW`(!p3W=l4@a}hN^ z?rVwawZ)@eyRkKR%VTh-hq|L^oUfs3yMn{i1O<nx2@2fi?1EbP7(-p*MQ-f$6P{3Y zL&4#$OC=AE7hLv+S9k2McE^o4`PD9YM=UprFOZ8T1#ZV*LGAb(>#Nh_Mx6X=a^0oC zt-BP`WMpyM?F(sYdt@QQm8XnD)_}|M4cqN&)7{`rp}2jA76)eiH?nK8WhijV`vtX9 zF?z7V2Qp@JT;Wrl-EjiWQRDUkcT}v9BlYF_k%fGGPGI&dG}I{6rFSJX^uZ@18FyO7 z7cuhIF!FS6;^u}5MJjHK+;mQn*|k=#*JHo7Zd=Y9MxOlIqQj}}(9W0|tmx2v%eL1) z3&kBTw4a6=&IR+$OzTm^hO?o960XR=xasYp8*>7e2#mb`jXN7wBsb6((@eckOw;v( zuO2g<R+f{4aVO3KDKoi;b3&&#cPgxyiMd|K8kTTIwbDgyYd}$L4H!N&s{dEy=CF!5 zWHxMQ<g`_ho3<*dW_b9}s9s)?o2e?QnW~{fBPXYd+~ia-H(D;qk+~$t<q~oid@;vW zU3vN>b<Mw8-QOS7i5b&JM3c4Ht71ghR_|dc&&kEwu%ubwhj&I7dTwH<h>4-$!xK*F zyEnPCQTKd~6e2mpQ)KT5r7sEPZwX~CfbxulCcAr4Su?3eamXBiYc#tt{ZA>8wEtO+ z?aNwbc7_nAFB?d4+X96xoj6T(C$dYH>!yAa@=(%@%G_#^u%+kc)h=8AvH6&4BP^LD z5yN-S%J*BF#|L|REA?iuq@E={KY?>2D%Z;|?&c-->Lu0DTrV}Ghq?9rF6kwC7lp%S zd<Pq1*YD%fR6oGs?^|-x>mAMHe2=i=t{!pHbYy0@+g)&h(mH;Ex<6@MbBgLHubY?j zy<}Vm+QF?$>ljsJ-`a7w&b5O}m)27gI{R=PZwI$Et)nJnpIlh6WszJm7FJxN<dBQT zVeQq81k?RD7L&@GbDpC*X4(R7x3I8Hj}@-;fzBOyHg~8M-f@Cfo%1mwP5MDss$4hS zamf4lg%um+#j&HD+#f5f*oFW*WXB1beqNJ(NzYZYo?`^<l3Q#Y+zLeoO-7fSVlP@u zQ5O@1)vbH|!`BIg%`whMF6lDwa+9vYHamKt(m7e+U2bVo*cQhM*Ci`|m+kMmxEFim zaOv#BElN5r-G_C#Wl7OLPZ3)r!@BklC{g<<t-_JRRPhlK?BYrytKG|!$oppS7<c@c z$jImTGfz9!Bln#oE`kl4xG6r~f#s|xu0t5nd2qCL7+<^-UZvOdW}B<4<p%E3mQSAz z>&~cgteKJ>p1W$cTEEuP@R=20sw}qu=BoZ1>$jAmODZ>uDs1VJ%FUySQEDoQUgYiD z!itUae9m~|MhwXeqpWFUc^pTK0u8fF$~4P67Be$cd5fp{CXdCf=%twt^_bzxM%*xS z%y4BhVwkxWw`ofl88Z&#rBFunrA)UOn_Sk6=Zqz;vKF`5oGF)+O>@6+`xpGny0m(r z*VWDUH}}aKDQk`8*>cCzZFe-~GdVJAsk~H8_Fkb&KT6I#Pn0f@RvG#!^DO;JQkH(y zNS*GqThYqrXf^V*8fxRK)v6FuBjJNlPKu5u$Dv<%a$M%oUM9gX6K1zdGww1>co{lM z944(DCb2PxV7JRLy5yKRV-noSGw$+vDqW{Anzg$tFnSgkcSSlrF`gpq==5_P#+}22 zmuB3h>G(vqfv8XDTEk`1-DTp_Ei!r*>9lo=ba-jz@#{1b*XdM|%r9vs9nwygaYv_7 z+NEp8befK{beeIOVf4&$c63~)nY2ykn7Ga{-=1f5Vajwm&wP6!O{W9%>Ru*A*Jl}r z4ll#h<r$_f&oK3MhAEpFrcTZ<b#jJjfip}KoGCDV7MQ*OljpN8onNvp<BqA%vT4R$ zhR(ZLuG7Ng`7D#?vrL}PGWj~ov`5(j6JCMNOIfCF%`$asmZ@8FDcW5w#q{(XI=|$Y zvXXNdU9xms=a_mTS7bVnOkI#?zAw-8`SKaY9n+@fneWRp<u=dsrSdsOmpr2j6Q6k| zf99F|nP>86zR08l)6XiT=sLN;<lTb9JlN{c-%xPrZzwQN#}=4;U0~Y&0#nx&n6{&k zVZM)P9|}3<8<>81fyqmSJl)SK6zKRYGJWVGleR^N{)QscRu!4{y~xyAMP{s4WJcb_ z4D$_4J62@skRnru6q!1t$kZXl9HUE~iL-F~r=@!_&%`HFhZKuUc>Ht9^v4TJx<@Z8 znPGD(#f&*q+@wJ&oD&U~OgGd?G4+M8<UWO|O`H_dYzfN(<1IINkP7#n43|uG<KVS6 z!jkDA3QN`{JC(yJlwsnQon3Lb=ws(z9Hy{44pZ74hbit3JOAP^od$=Ufnldo9H#6# z4%0z(9HxirxXkchSTZr>rkIH5W?LMW=>|A1mv3FBBjC7P$#%K&>2m4mG8MSvGBvoc z%unoJkjIYO&H9%4nc0KhiLRQdUg))2&35<Rer-BNJNfQ(Uu3gQ<ci65xl-!(jnzJ& z;?T|zgQ4v}WBM`DQ`O@JIz{ggA;X=bp95uI9$OcEEo(<)(WLV^Hz7+}rRima{R_Kl zb?@qOqgwZ5#@sN4#jchrB?G(713MM{^5paG#`bdMs5~Qzjq{npu&#_UvfbyAp7I?t z^eJj13|+iN$Y%*xm&5=<YTp$quio2vWS~eBdmMc7-)IXqt0)t1wbkt(3sgpnwZ`Cz zFlE&Cy1n+`o^)lX?nc)PudlW6>`mCT<8}9!SN)wByQHGJtA?<=E-uPu%kAz;dD+`K zyW&-jHhWzy#&qh(!HP{6O@pb*i4!Wz^eWwmRrD@5b)Ws<alTv<Nu$V&;B2Ip#CCxv zcd@Gz_u-NAp|n)=gDL6NAQpq;(S(Q*eb#FN>Cft)wX^z<t4QP0Gc1`zA@)M29H|iY zCe5|IW3^_lL)^=sAK7^l)wxskxNvcu6p*7?I?L7S-Tq~Sbe4luk`Ke1>qKA1p|gqF z?G~p>AeBfJhuin+6i8K6Jnk&_AKN8!Y*;dpO35BCHv{U(1U75^sLat?P-Uig8MCq+ z#sR&*jk{XK$<Q^Qyt6n?b0sr`<`xHx=3EavQw+D%kwBi;tTm>6xge_~k+d{cLpu}S zLb<uV*01zgk*FG+XuoEpglrv^Xg;cx8}^zuLzXVPn?&V|J=IX8Yav^Z;df7D#he|{ z@p|^^*GGvlU&FRIbGiHFT&5-JUt7L?P?$1o*$zvalM16brJvO0ZeerDTiDn$3U2>m z7`v9&u82Wf;^+uVCn+K>_wtN9hQPH5$x}*~9wMb!r*uliJqS)XOEYIg-L%U_NAi@? zr4yx8vUkPJz(j@7tu-pRntG+&SoW%s`-c-cG1F`e_jJN#xU!OomKEEnhkgB<vV!Xr z;$#!WKKIh5+&E7L6{(2z0}-aY82vCq5_4m^Wk2`O6MD?<w(zFZgwr$ZJ_&kKkzH}* zR_VA!9d@mQw&NDWxFs)UdngV~6L#E|VR}0NyJnRqQ*O#(lE}$3an0-!$3am0gdMZ( zgx}sv$BWCX`MS(DI)3Xfv!#~Z7R>0vELZxANe8w+d$zRunwk01<)y()T1igS!E$!* z%)&z07UuhQ9-J}l#9!OJm9nTo+6z6u%eVpNNOg^xY6zhjPcBATR)BcSA$Sb%N}IF( znWV_P0V9>5#%E{yh74hfe2bQyn<x-p>ouz3qkX!4r6<z0p<;}RFt0lslA?UlrfQ87 zMurKwaLQC0MhVdKN-6w7W|7du?PWt3@|Vs!-Trm`8=#0p^}%XF#1M-L@_XjJZn@Tf zZJ;_+ksUAC_~F~E<g+B@wr<t2g;e#*b&*`x+3Y%9uSHr+lQuK;y4?<c*<F^G<eXy? znYP#RME|p~yz`jXUJD=o4Y?j~xSeyx3Vp0vhl#l$A+3?q=&de#?E_0YYNCtTt*`Y{ z-~U#-8@X`9JF_N)Qp3-se$6e)NPkj{ln&|x@i!+W{9>&AP&ns)BFY+y5sInp%;Tx% zc}Vl*BYiN&sQ023KuJ&CIQf`_=AElBrb;rNlS%rYl+e?D?3=ZB#6gU8P?gy#c$+_* z2>kLZO!*Md#_1|W^+87|Vu-hkLY<`9a;sdab^G@mM8#FJL0H5)*LznfUS|ASPV-vp z?wGdy=e9_Rop?dbVqL+vTP=_I_kGTL6;Gs~-TRetCocT%)gc+X7Qz=_N5%){8$8Y_ z<1VJgGxrLavkkU7u%rics8O%2ilJmR$Y_b{#AsnCRr>CExoEn@Nr#g#fvg{)adKWr zC{zbUr0msHR78&JHcZu|RZ5}4FaHhZw9Hy3FpBmniTcIOP_{<Rl2CNLHgs?|W@pmT zkMcxwEayYLg+Qrx=TJxV54VRqM3y>EepZ^WOfpf)-Itfmn!)ZIJT9q6=fF16z7X!o z*t8jNsMahE?p(DB*fzNYS*lj;$FSe&?DsV=2k#^nPqf#BeW8xX*X@p84)pG5!U{Q^ zpo(@ZH-V6|Z{)C?naJcWtYGGm$%7yCWO2@%91E&fqf2R#3B|u<B8{tp!<Dap>GB|( zY=l}^S1H(esF_dJItuz76GOtxh`NO6Ktzhv7D6g&V3b5cLG(YPb)w<<@p5Z-BY}4q zs#Dfl;WF}#9<9O9-|Q2ZqMcT)vDY>rqI?ZyT|M(@E-ZOhmssEJoT8~|E<Ufabz<k? zgY&(HycTWeiLTe^$WiFMo&T*mH781P3$v`RgFDt{x?NH9dm`{3`}1&>?pn)}FTqKj zmc8!oRm8*YMyFertBziGrCFWWzpx;5Y%Fi69q*<}va=VMTX&5I@pxeA(EQ%%o+vOo z8zPd0cz^B-9gJLYUA!81_TJhOhCh9ew>DSqt{m#tL{nAs?)6O1>ZVR33?fw*P_cVd znaVy@vk_b*nAq9&wH-onIlU?0U*4nnHKJF$<ZIogU;7t!)cnbra(m6shghqhsa9*< zjZg)}E2xrWAhp>hrDA39xOPchcQ~xOF{fJ+1}744A@mG*LRbDUd?EaWu|;nKrZ%UX zUie~DdEQ^A71Dv^z5RWrLe2j6&X8$;%Z%ETBCV#IOG_OuyxTJ@zv4d)YqRN=YjwL# zSv^EAhl4rVe*6hW&0BK`LjQIj?RF{>>~?yOGvTC{mL4S)e5{z#gxnhtlC|zD2-`=F ziQ;C}4bw%TRWpvSM(tHutSGbV;$%f!&JV<=W96maE4Am9D@WDZ!c3!ju-umYzoq@2 zSM}mU3~4v#wPm+c`6N3}eTM^gqUj8o?`+7SKy@%Gkk)e5qt~i?8>q60>Vvu_Vi>7v zd>eTxQDn~<S^TwHC+ad(=|n9;bxzbGROMtz>vdSTjreL=^Neb%f3#I9Qu9QuMyz<E zX;U)Ph;zWzKoL>PLSMvM)=2*G<qeQwp-3})^Y~;%j8?jyg6O5>YB5GLYsj0D{d8~& zrn&6^hO+n1`|K1$_jY~FZ+QEIpkQ6ykltIqzD5bl`OwTTF2)^cjS(7V+ilbE%$})C z<Q0QxK?~m;KObzDyCOK3OW11XaSeMM;VtPe&l)1;;>8g1^n-rfLzm95!Az-JMTXN% zUT8z@ZeyREP}ltorJq9{v2fUDAk>WoLk2~i5pcMda<Q%0e*Zb=Y=p?5U+dzYQpbJB zLk2}25K40ggw&qd;eyJLU&XDzVOzG<8F%fx_7Go4x&B$UlKvL4MaU@K!?~bOBxboc z%hY8@!v!^k7qzT`aWSPXPZ~NfvJ_>xQj{Z05&L#Rf1S}#Z*W_}VEZm3Wv1tFPUr+> zpQy@P9@LEuE7-C>$^pnxLL*;Z#cNMgXqnMMqaJK^xWn@}w>WHQxQE<&qLDiorj9!f z9~xB>aVUZcEjL<d<e@k2us)7F4jr09pP^)O2~J859~#v@vClN&l_u-)K~70G6RBpf zqrmTGUJ=>Ol0eGxNDn7j(f5%haHB>fL%NJ?8{<Wdy={qg8bT9F{T<$7Z+TgaP_LM* zH<t&S%&pckXiI}`5lXTd#LaPMXLAmt2sZl}S=}a;OckyOYfqp@1Bvd#iM}>WNhVS$ z&pbmUZ^{b?B=_d}!IV2|jmk>9*=Y7U{sPf~HckLdcY2kI*Xi`LPHDWo{OK{nPZS45 zCRx&|u~}b5g6AD9%A`|Fot9Q@(Yh-`wccrNXqeU>Bed#KU%R$k!wKV1-LNH+eM9GP zgR4^p(+=3T80<cg3vl_7ohQi-Y3?~^`8E?9`fwi?n)At~hIg0fbGQ@f>9plpE_45| zYi?J|no^dhr*h`&TRF>yWz+k-xr;7uJGYVGEL*~jY|J&n%;8Yxig$;3ZpGp5LT1jz zvNr^C7a=oGsyNJ*-41hQH-8?Q`9AguCFX24cS$dI4R4Y0lX*tLWu8%RnP(Jm!w6x= zoTFyWy1UF(?Jo0_2X_&!%RJYSX3l~qett-|WAd*5<d3o3=~sosQmL}rzo1qG<TB%q z!8G!{y&yrUrItRG-R7vBT3FQ9oc1sH$7z#^4)!<1$p$Mq@v=f-pXfi-D&<ahw%KTS zm5mU+gjU#LYq9F@VO?nU+Ld5M2wj6<sA6+hQGYTL<zBbhmy%ucd?HbE>S_dc>vd!z z&GdgWDf-(xxLkVOFDkXA?h2zvC{>xH()T~JqFsIeE|*PWkKo64QuH2&Ypmkh;-nP* z@`Ntz8<*o;4H1HWP|L^urtDC~ZE<3+;cbG#*k9t_KszO(`e6MzVi?&eVcQ)Ml@9HW zh+2epM?@_u&0eFseQhTWGl@n3cM^5IX*H(qO#3qS0L!7h3sIZ?$<t=lYug=ra_6rX zBV;x|QTs)66Gc=YvWX&U6?0x7nmnaNZl8oE8`&oj%9s%`d)|$TgnI*fYfCbL?(K|g zQ%Ucfz+CkT>H-!-Q1Zoa|K0>u=Nwp?X)pKuH_x$oJUyl-35K+E^EQ0gon7tbsw$M% zjpCeg6&}A^-6LJbbstvWuQki9eq<hOLdoPosA-bpenmA%*KwRj6ePD6`xjm=c-;-U zxtLc^6`VjO(FWuF3;Ubh+7iyY%z9Gu4RykVS5JMhDPtTLDOalp7R84g^V++bZU3J6 zX3*)DwMA}xe~b!a-8~(to4xK@Oi{~_%=8|)tj{e0ld~-JEDAHZl*8fpeh*+H-R5N1 zD>$iXv(ygETLko5knB?S8<RNML^mffzAW}14e6V)@^J?-tx;F9gkn9`Yq}*5`C3GU z#ZI{)a0874qWWMQ5HSq)FqY&lX3~1h{*U2nXgCqI2n{Eq7XE&(R=FeZK{&V~(sFsl zpM~<9@<3|Z>a<c9&O|Ndj|Hp})**!!5B4ENRLC4sXrEo~tk@Ok?0kOD-wsUHa<+UJ z@x;v0nzf&lQ!)bUURMrqm4WCmRb}24nP?X0V>dv~4QqpZ8#2Ns>RFkx)3wHm*RJ`; z0!3a>X4lyxEaZh5U17`p3-bH1P}$i~oghjv)%^+E8m)R|rQB$E^@BpQn&^UyGO@=) z7dV?6)%93)!}^7cr^QBk8*RN*NRvy}{9NYv@2WA6r)6AOx(~_omK&&Lit2+B9x>GR z&qwV-?L^c9o9Zn#wq_tIVQmJYB1AI~6*8NFsC}pz&=lx512$KKHZy7=@AwjSc2_YS zrf4#hWEf_}7!k5ptWgoUl;fXYdrr^mc^j#3ZB;9{Fx6t$&lCO-s5_A8w=m&@NEQ!> z6HPYB{sQ6#DyEu3k&{gJ^S!~jrjmTbAgT1YZODirO_4_vxMzr*aY7vHI%h4k@Hy$I zP57L2)FwQyu31H@Eq!~TRVv9&AMOZ6^aRBq7NeKKMJ;1iwMLmJ;C58d&1&8peMSpQ zsl#3r6%nTP8HB4;dHKb%DB^SN=83fpP&Y*NK_wb7?AM-x<Z5xhWs6Fwbv)5D_vezW zVzrL{uhnj;**;!wS9gn?sOGioUab1p=lD@8`W9YnkZrHiYBs8J(wdhOJ;avytL9Y$ zi+f-JIvU|C)~Hk`&oy1_O2>2!qM=DI{UnT&vqXiNxg&1u<s&L04b~dv)mmi(HIBMQ zXdN}<NTVP-YHB?~R?)%s(O74D%h#{%@LFD@Dooa<SFFBVY4as|Z>DY=YC&|XP!nSM zsrPSf{`zVW_UN**n)g4A_TymO*NdL^AlevR!eVqx1`;t^?T89e{;k7>jajoWYFV-* zV=-PT)bD4c1~HJ#NB{GashChSlAgmT9QHq4$wXZcHIXiaGBs88uS?&dXjblJ@aw6K zbm60U)gyPwqjtZd-86jb;ug)m8o9<Xn*Bpk(K?B`g)wAN?ktF|W%!B`OM7KrzeuHe z%r%N3`~3?Wcl|eJ={NbR?_k%(Oslo0*4<uf$b0iPz$cQL>Dxl0*3l`uCX9_e1Bo0p z{dTVZYQ?Ow@AtMMkKjZsgR-K=`qPWbKed$F_ft+jW=3;6_PpzQgo{%M!#`oZZVKe6 zGygf}B7<Dkl3>wlNwd-~1BqD6y|AlgxiPR_UsJ2=UME;T@ARkHO@EQwY*xoYZ!kqH z)Fc#<9T9If+fZEEted{N{@7`EW2s5_e;_Jl4M^+QaAi*4uH(<%cAHAvUroj(k1=I8 zxj&6seNbfA!^3X7+~~*)x5oByzdzoo4!+pz5)M1H!5oIknO9_oQxOj##K@?;7$X$Q zcrlVF4lz<%PBq*2u(-X2k4Vg`=dI-SfDP4mvnYi=oM{v3%WWZKDu&T8veApV2MwY{ zm*5qrh;*s{>T6Ob<L^3PLW*=wEpl3GU<#D0A!0mgd#lZ3ULw(c|2OEs?krbUNa+!8 zYO`c3`VMlNFnPDRO}N&m*BYU(Hy@Ltg9yuq3$NjTDCDM`F!j^@V7n~rq-GnSoa-8) zkZZ>Fv6m?%%L=t&mUM7!644H(Kt+Ehkev;0;Me6_>LN<qof9jPNG6$3LaC%;iRF?D z4k0;==uoo52@feftoYFKl!L|4<eY97GvlonL{*<!o(+x45zmHdLc-{(cC**=svG8d z%BVh=y^a`SY35qh-wmQXDst3Yy9d@fqPnfv0v5v&QmL4fj`}XID7PnKM9$0zQR_j! zas#Aoph?hUR2ZJt3yeenvU?uvY`O>1GSFou8t_t6bg+&`f{xf5<H&(s;G*9ss=c7o z&F+fV4lJh$H^wbXhJf~Lpv^vV$B|7yf7wr$VPBuJx==6E5tflJCuCv@MUYG-El1FT zMha4*fqn42Uc6l7d&nUkX`#8a5C2%pz7N94zeaZhEj&i`3AS~I4Ykd4QM>RSxu{M5 z;!2C17bdGjy?p%|D<JYqb-uQ|(#28Gc6Yk%ReP1-!L{6QZpNJfWrj=PUDRQ9h<(@* zk@>-r(MD<Mqxxv;)YfaMuQVm>kGYaE<B#5>UWY48t9~Pnhof;*3J1fl2NIovsI@TY zKjO5JHbPpILRZ1G3HKT-w)#mQi-`ST5h<AbR1u@jyjSV9J0ebk0kf=O3d6b@D;Jw9 z_=#&BQ$>4bw8#n5J=YxAD7(b^s-V^hc(Sun78N<RbjjmKIof{wx}@)IC@=TTLZ=<4 zm*fs{5goycs_8;9*(7@*9qy9koTikTHzf7K>!eA<lc?r$_fa~UYH9}F^E=&Yb<1C| zXf9zjL(bzbd()M$zJ7Tc@xDcOyx<dkKX+@co;2P5u)d>brRU2%-MV4SR-df7i*@*= z9_H>g=IS=r+{M~2uqFRn82eB(m=#zcX0NsewxMD^)iRAlhtxYLlC7cLs^w44mp9t2 z6%oD6d$k6ZY7OvstzL&|a8FPvc*<=!ck6gTg&7={LZWvRQBL%APSKyTd}4774-(b1 z{F$%hq03bs{qt3Y);V6g{`$HH+u)_9B+8|kd)(8a<iqExf0R*{t&(mO4P}UK#_;>x zxf>`$SMKTeS<d_CDMbX^R%^7c2^Dg~N{@^A;8^QM8Cr$4K@U1)Bqu5T-7D9bRt<kA z#unW;bRauTSgzM`Z0oqrEpQU+(3TFJIrGG*d!Qk8_8FGk$>;qGhvxSVZu8n$M|~;H z)Wf<FYvaVKoP?YSU3xq(=O;Sojb)2tcwpp#_493{TTRw4_$l%!m<-dP(0kyREofQt zzEXNO4}Hitn-AS+vbZ5;7(&Vf#|HZ*gBqpnAFkw{8W=cILpNDPIaaG^zSKpc8#=<e zXw&_gRrEE3sGUB^9}bS2-<RXJ%rGv-ukk|xHT<Ux%<t(EvEZo}2P_V#xT(<bB3zk| zK7=Ddy9hI67ki;)k`oig&EG>8!?bzqB9zxlGIm)3KRQ{7e)O?YRek@9c|*-&%ndfu ze*eOba<{yp+C5z%)!a$b1W&&Q`-Jre<lXW7xJMQn=KC+Q-rJEL(qyp7P~xPlHIK{7 zQ!728OQXB<gjeZ>&VB`QqF~QZqSKnJ(yVWd8v%8pYIVjYr+cPmz9>;y)w;>$*JaP4 zA53_uJ!CXE8m{j^jELY(-sw(6)chD$-uRf29jkuX=+4vQInRveJR6N;&rkGVxZ~RG z63sFcxd~nM{8%FYgDd~76SLgRY|82H;8kU2n3D(*mBPhv{da(%YFV*{+<zavZ?2M5 zH<j(CUP;t~^^cuaH=#_S*$my8NOB<4G4JwmaucONuzrV0qzkk)tagaht2HLnl`2*F zcCUz?uz>$^_mCZy@N)|Z-yJEWDJN3}=D~|pige~Mk2l~MSi&9iP=-r>8UJ8Ok$z;t ze_+GhqU>ki64@3qPOMEGEg#CUw2)q88A-p;#QM}&rbYB3#&{MHh;GG}668K@-%`%n zNNqRH)LuxNV3W<jXfpB+UD$${P_s*{!(5)OlSQQw_eO+cATn;zr{V^3mZ`Xq<zVR1 zl9_I%BeT2QNxq?W<j1OLT*hjb(~mPo4xc4)@1MBy*EE;>s^6>joh0@na$Yc2I#4mG zeBujPiI}90ki|O;H05q`wY!bG)Rl1Mx5>48eRv$G(Z4gV)}5@XYYPwcC&*m8-95Nt z&bSb+W_hJRnT9k9Fa3m#Lw{pG%Z92TqWU!Z%l&lGZw4DPjt09GFvYMK9tB3dh|XAQ zc9E+RqIN@X&#?FbHLZ5xBNkDcUZYc9@(zY;oT$KYuY8oT4r0k_8Pj7oyWX}wyk$2- zxKhDq$B8XkyJwov;9KJ)!_gKe8$^+H$3<Kn7Zs7u0|fVF$?3L(Yb|fC-0p0MO%=3i z!OI4L{pP5Bu-?-R4yjF-yZ$o>IG`Qlunbo-qd4mLFPOzT!7W`;SII(B`?}FY&*RCo zdpouIdZ116VSlYY*~K5><!sY({4Q|cPw7(Dy1&qD^m|!-OY8lveOuycSKmH7nWqeh z$LsVfT$N$y!dGQ5^y5f@Gve!*PqTd2AQ@B|Tx);1C6SnDL_}rO-QTO%I|rL09y`3t zsBY?8!$qxcC7M1si5UC-ZC{hO*)*09M4rkEMQy}nNxnK9G3j_h?P}EDm0CM$vefLg zyDOScOPWc&ta)vDH7W?RyFFwVRoZscss9*a><vC4aTO!suIv@jNREym1_^bj(Nfxl zM-KfzvEwwcc%sQub&)D{$*LRrEL&*&&<K0XM)n}l2c)?VNDu$Mo<m<=D*VeBJp)ze z+MW;7uNy`kXSuSNw_&_vtSqrj_-~aA+J*4gpl{agE8Gorz(axq({8w@GuWdk`asvV z%dOVEze$47O5Zm+uu=sdJ-|KMK%zgw2u2j^JBu$y3Zf#ZY~6YIpnn(J)QZ2VT3i=h z#~qj66KYJQ3-^@QYBlX1@tNAclx41$&fa4mI+Y{#b4}%#m9rf6j6#mtgq17aV;_;H zJ|fS2L_T+q=~JMtJS#H$&D2umJ)#emeXRGWb4_H*C2Km%Htg`x7G1xf${YV74dzMu zEd7djjy`<Bymg+ZT@{&^>QiYs@bia&2ZPJU?)}EhrV@sOx;eI#%zJW8dSFow4W<ky z{cF~|YA}Uv_j@4NHm-T1g~KbvhLpTlFCs|#7c(1fL{Kz*dzVUgWOk(tiO`^717wTP zL3OpJ01igKO|>KOK;+VYQ$`!_SS7mpOJEi$EseH>#S+}r9q~5u1Vi-Z?5Mxk)E_mB zp3%1+&ma2zv(i{6?Xu~SLLImJwjRM^v$d`3!?e=b-1>!2?cm8V8+dY#md?=|82ZN7 z*IKwo%b!RiER&2{3(Qkg#Z+?dr;1dssK|6Riv{h&BJYs|hAL+c%B*hR!AUZksXvhx z-TIl%CJ;2@Zg^MJ;e{#3<&LAdRL1eg{PYAvR{MT=Q^sCz$#%JhDac*J;UpGMG)<Dp zF<+6%>lvc4W+*KB3raPoXt7A71Xl<hqZFzPIENZQotlYC*lt7NE<y<vaB~iqeWQ$j zo-FQVvQW6mr<`S#m>=1>c|2&H{8Hs>-F%~l%1(hBv=m&u3ow}6ryg<(%r}RJHD+<G zG*?B-W8@0Ml~x!B&f=FuEgKZm!ygyT(%a{9^sc)iJrXL?Lo3X(5_ZfmDMKsi<mh{m z9cEPK6qq-q3+4o^+54R8PumllPz)EA?JYyd@S(_g(YB~8yz0h%<seQ$%$D}0hJN#4 zuH6*nySo+~iP;dV-@JPI46#K<eX+W2ExZRLm_!M^bU&Uy(b|3}|7IH1S$``^#AkiV z$=9@yxhH%!TB;vIFe9CCwOt~>^r}>~_+$8(sf_bui#GX?tvxE#p<Uu^Zsx}p6@`(f z-fe?M=9_XE|2!P~Ir;=@|Bb!D2DDHC8;ot5z3$-CM-8UmHxUxSE;L)XV|YJM(%4ZK ztvQOhdpZ=O7Wpv;Ne(;XmnVMAnobocRSS%&g?mNSA~l^9Grd7AgmB}}loQ`@k_Fn* zw2$bSt=O)I@1koax;}y6^isRIiYs*N)lRZm1@7owCYN9{Xwj5OuxBIT0je~8YAH<* zOfs~q96j{N(O2~3>97jS>Ju{@OEE*IOwm8YbIfaOgkADVkKj%o31VEntJbJ>R{G}z zm2u?MjBkS1m$nQ{`e*We4BuF2wI6FrJmjq>|LY%f#c3m(UF1*+zBD);D@pDm#au{K z$~GCLY|Q<Q$~-jN5kzTZsw1SC4D}v3ORAD}B^+EcymX|DMm_N4dtU16PYE=`FFS|N zI!SBdjFhs9<`Z=Xk#0D+sYtkcPV}+*d%s+13ZZ~SP5b%Jzx>L-NHEB|n&9zry?(H^ zs%|_9y;ZD<g)V+A_3s`gWyUIfHm{8fY^4&pB$7!QvozDCNEaA|5?z#A>ffL_vL8u4 zBEu|JWU|(ez-5{1UPVNM*&@0o{=|AvX=qv`ttzPIoNg>L<{N8T;fdU_8LBLzV)hC} zlL=261+SHFjH9%SX8KH4)LQH5hTdQ=1&*W}-F_rLWv?{!OudZYnR>0<3HvM3nG1Kk zW$=0V^nl3Vvf0@w7jyhW*)kk;1>!FKiTkkSyzx+d*!C)~>))RkHrwZkUblL>q}ywI zk<T3V0!m@e=*h^MYBR#YS1=;<M@1bO%OWafA{oW+aKS_0caa|RWjUp87Y(j%7_#~( zgsP8(V+-c?0>`1p0*=FU>*Xbj^Zp@Nzp9++beff#pM3s}6UMci@}Qb-==WvhkWgS( zZJXFoH`3YlLjT2TIk>T>Z-jehrmMz#Ep{J5x673(Lh(lMUeJy~54&%(<DjUVyoGLC zmi-t{BX_USV)_+zcFFkHXsGyUc<ll6+Jtv)P-<wmzuCoNw%OU!xuofu)LAEdtwF3b zcPX3IiM?&NiwcW*f6v&)XxDXhP?ExC`u(>NyU+!=5%d1OxWO3PYCrC_v&4Q+Q5({k zetW?d8QR4lMOI|JMh+4G!_P`bEXM2wJIoEzMWgUUvQ6ZrVXYj51<e8#wMEiR^+cV$ zFu3bCY&_?WwgZz!t!|MMroPyZsc7x+Cr7Ib&0f1AyqJi{mE;cTsmi@v%uS7&qO%Y- zy+#<y+lW-dWwqPiTa{JV*1fgGc3FJIY*~z4I$JBv)v0nzo?|<)*x4GyLb+X$eWBpr zD|6Yc9p7r}1dOIuMdddm9M)7Pv$OTE-2Wu~+8W&DDB|{*SC_NSTMssy^~#FqpFwVi zx?f`Igy_V<W^1q0-de9M%0T762&lALt~5I*rplXxkegSCto{pooouNzGe5gm%9QHO za`l*RoKBUi)lzL$3|LDm&F0aPyppZ0BEBWUn%m<z!poJC+&b*F>&j84R0_hAr>w$` z=A@%uX9eD;V<elcIVI^7Tjj0@M{Y(dwVE}VJ33nEb9p7xUG<%0+=1u&7yJW-CF=C( zTpkj0PTE%_cpg@Hl}(4e+Sl{D*~-WM!OK$F^wr5krFGxu9LHy+7Szs#!`e~vZ-5qg z3_`o~<DGMk8y4e(P$A^QAq+N~(6J+f7|0QERItQR$a6lTiWVnHV#^w8DAGc~8V6&; zp(c&Mg-l81$AVTcMB%X)hFm0zOGSiAyBnQuxl!@1DYt7f_-G(=dn(BGZpP~RSXonR zuINKeSS+NJhOT2cl})ZK5;al(UItNzSh9|rvr2B4Eu~G|HN;ifPT+I6Dlo;<rq5E5 z8QxKz4r6|B6@{(H=oOU_T#S3YN;KS8c@K=}=}4ENiE1{M=d>&uWB^yoqGE)*)V;>B zX47b8d8kos?khLsu3-P+no_N^r`D(*Sn>zQTGlhlOUmbpnxm0rCEfN~bukoF^A8aL z!}Ttsye+t;>vzsA<Vt9fA_d-8vWgNe$G5z4>RTP!3;&KHbrEZ~)?MR$3t~E*i}7%~ zY?or9O?W2$|2!k3?qArmXWv3;soYW3rfdKj&Es+=Bbjz?!SJjWc$C<WV$_e$j!1Kq zFq*Q4C&4>kLwl7rywWTBSdRj~qS?XsOB5WD{_UDNBNJ{L_?#bUiH*od!7r;Rrnz!0 zT2@54oV^2>Bwe~K+-2LgZC97AF5708(Pi7VZQHhO+vZ>2IWu$boSA#ixqsxdGb1D7 zS$jvkYrnBGB3G>OQuTGZ+J-^-IqiiV54@<`!di2CG6Ulks8sD0e+SElaP1iygG_ms zGT?hoMetxdtw`{K2T)<~5jIM5tMRG_kGZmj*5YE=1{aJSHTtHFB#4rWAz$QJLB~2) z$UjTIY#t{9+cg~>(J;kTX~>CjCv8UZBZuk<8e~^lKKDWGrL||K4O&iW^H*{;8`O?7 zEja8@$YT4`(!$uII243aq>zk6RAcHb+HKl~4GYS?<_Zq3(Kn9?OQ;<nE2-lgAY0B| zX8h><MZF0%4cV*MzsN#k%od{dcoKw}p_FVEj5E&^M`4<mmF`X#T=mGH$`w+pV3=f5 z%aYn|;mu6S&{1$z*|`^d`NfR&hBCWX#icne<9}Yq6TQeh6#on@Wubh~URYB<socp0 z_tNxtCjj032rf@dbc5-7HkjU3mPv<qD=`DtFq5QNkSVq;^pYvO7@_)r=@F^R0p(5j zL=2=hSViu8_xb+&%QQLc01NYkZh}}_Xa7Mo!l#yp?vQ}uc=9;C?}(5wlY_+&Ost!Y zLMHU1WI4L6u;?E@0nYbs`y$M@lIE7vR0bZg#V)p9?A4g*+1VBOq~J+d^K$(<Esew} zXN^DHr3jKSjOt0C(hPK$&Z>&rYHQV$iW#A-Q&YPKA}R;_zo%rwy<qwrXpvc0n)ojl zgavuf>Z=eSDs+5Lz_t3%9kYp#eciHp!@qT;*|qYsp3N~CB6j4b0iAA-o4&%Mvuu33 zA|Ii~W9fP;SK#>eSb#AyKW<eN$>#y8SA#IUv<Afbs<;-@+<2%MFWTtT*AbYNKYic% zul&^`pNcGq;Hrl$#00AZM}u%<N3r7eiMVi2bO(oXq+^0SQ-%mK?p^d+t-rLDTGkqO z7RYR4K6+4A#uBAZ90P-$;;gEDI2}?N6ieCb>ui&324UoJJIP>m=rvO22ZRlRGKwn4 zcVM$hFYXM2Dp=RndW|DX$~+*yzc@`rH418vwGa-4a&q#1^-6{rQoM&decwB`I)Saj zKVk<FY^ij@u+yczO8>=RzKY?@1cusZK@7H-_JJevnFW^C(-1wl-;9xY7}@1wD>+{g z-aJzJ9Ccn!Ma1+&M{Hgtw~oSD0^1w{EK^HD=D_@02bwF3+$pMlx9?pKGyiZ^2gM`D zwK4;3dG%z(l-GjeWl@Td|5%%2{g-0%6nbd;{dX=?UBR}|>CSqD##j{2A+pk#eU$wx z!af}zNtcgfb>93sx2$FOrAc?E)%BvpmY5aGWdE2jk$PN`#+;&3p=-J{{_yL%7on`@ zyk;9|YtTl+N#MiTd2M~N*<9Ch<H|HIah6#8N4)wGpMlQTTSWJa5@f)i0<9~vzQJW) z>$<I-g*>dLicI3wTWNCEs}P&x`AFB#Qw9B&TCbJcp2A-ss3Oibicn{VD`FomTUQ8I z<LYz+wjZ$<!vyw=6=E0Cl#CfI`oCn|^eBp6j5+JnY1!;URvQa2)NPcYEQ#2Xg(v~M z;Qr({UW?8{`K7HBs?>rc3PL>5otx9rID+C(_E{a%vh~SqoESG@y)ruYfz@@;3xjHD z^i5{%+;EnA#urqK6%R(H!PUP{-K4ddGcET~ma4PKjFPVla$=N#!(j}@3wAaShj(w> zlk>MIVmPLZEzc@iMH`#@IYf&0>JC-E`#O{-rvwYO5=<4CBs0Xe3hOOr7uG5o8l~(w zEaK3V&(LAkbLf|zSjLD?TvM%jf|17*r<4*k6DhDBE`}ob8PNJ0+r_q0yX9XGkEC$N zr5$VJruc~br7B$i+_-pz!!q7I$Th>Fs=DM1(Y7OdWBR+Ekf-#9MfWQI&>B|kU{Tg@ zm(x{vi)us$m1`fw8FucR-P(LZzq^30-;fe=Xrep|RB>Vl&n1@y|LR7pZtl*kweu0o zxs;rXLBJS?CmxEkEx*M=Y=L8O$2Zk(zCfyvl6*ZTC5}rpT;pf?Wb?hy|3OM<*z!lE zZlBvdu?*YJFn+(;Hzp4%Fm)=J0v&!9Qsk?AywZ5>E~_7F5w5lPHxCpUT3m)Dzchzo zRqswKiVQC)7lKdB3gJ|N4S_JJqHtyM(1I>JW-e%5OLkmA_ko#X-o$Ty2$g*a>ZkO; zyhFo4m~idS-9n3WeW?vgm~rV}GslI=hfC7G_ORFnj*knEdqS%=dyLno>*x{<3nm=@ zrX=h@<?s{@A(r<&6K=NlQP9_EL1D{66eE!j;DS6ZG*ha^sQMQvp>xvx0)f4x4s{Hp znz7@G(!@(OKZLU)$(fy1RoX<{R_C&Yx;#_ftxWpK^sMmucDTKnOk>m)jGAbhCeR+L zz6e@KADVUy=I=N3b%F6}OK_Ob`Pp2J{aa6l4o}Qzj_Tn9z6I!tC{V?_ltWgBd<Dh% zf|f>#jNG#ai8}44-wr92@<0@IL5%5fv64#{|No_gB3g}IDw#Exu$hJ<(;1j^J~8Wg zZH03@eIB}n?Ap}|C)8@5by5pSlZ8XD$)z{5nrUgudmA-?q*R=jRx$OfhU_xk9Ok9O z6Bi0n26?;e01AEy%unzJoNP{qqj4!zQ%05C7{At~hfmyL#}*h$b9w1Vks}jt4I}Hp z{z%;@RdsMLs|v2Y<qe?c5Puv(KY1IF3bXl2KG-##vFLN%_$23yJ7rBg_?3jWn)mDD zl@ov?kPSkyZHC>Gr$RZ;A9L){r_kqJUSJY5CqKxyak-f#YG4i*7x?TX5HA5Ru5<E< zQ~-s;V=tVV%xeBNV?1bXLS-~x=V?#GFz2N2tBe|=iB{-|iCe+2X5>O@5|IHF6(Mbs z$RtP_VOr;O4OAn)s&s)V6i~Xln0Y)nIB0C5Hb442IBpxgbw5(yAF0=cTPD9mQtDeT z@s{$b44l}`bBkjN4ev9Av==Vqll6|?d31JQ2wAyl{dhaY0wa9VB8!j2H6MuuLfN#6 zMIYr{|1?-oE|+}nWh%u>a!kpzSae+c1(xKVyne9Tqc!F7`^06Nb*C8Ng7YMrbkFC{ zIRlkQi=xeB*Yb&KOQkd_ED7$aaQM=f$o~=%j`7f^OhkuFTEmRp-f;zCZm9EE_i_`P zPF_P_gnoKjZ>K2%ZSD9W(Ut(%Bw}3~FL*o0{}}PHPQ*GkUf}y{-qtt~%fxtr-9G<E z$w-)Grexpyuvs$MTy=MWo=<o(;GEwiYO+!j-+-%Q%}gm;J9FyDKZ^*{1F^~WOQ>7i zqYo0{YRzAC*Q-a;hiR}47kYbK^p1vGzBEH$E;U0-aqZS4J2gW$5jPMbA~bE4>*$g< z#mOxfkBM6Hn`SwsIQJEktn2ZM?Dk!_ha!gTX;})#TGA_X*MuK_#HY?B*bSXYsVroq z^H<QPrx9yiY9{h5O*qsf7JlgEt6TxcSp*o?hRpA>f*&R0^h!231!1(lE`qIcz0Rb{ zRnL_vw#%5TVqv3Yb9J?^31v<36elYDPc?+O-N1h!jv@5HNyIz2n?N|OrrWq%rN3Ng z*tnxID_KbX5)oQmKQ|iXY7mQ7$Y1{c7807q{2L+RIFCcp)bvWOhQ>o`M`cS8vEUPt zmCX3(BKl=Y6J^S$sW!~QAcX2Oza!qQW?i((T!I0pbOit1dbzPSO!pvEYWp7Xl-2S? zoM4T6q=#ZWhv(sf#ZddBkH~s42Qhnpaf)35<2v}|F!-=NMgsP)!<8Y`g<~5Rnt-w1 z;%}!JdA~kxHumwj|NKB>%=0wR>tBx9QpFF$W$PS^OY^-Gt}K!xE@QK%v+Wdnx_SMx z{st0csZN+{JcH4LqoskCV$=(`GC}!!uT3D7hbK>--JQp;9BYI(Wg=iDHsVrKc!C{Q z4n?X*@7w<;2U5pp4Nglg491|Cs(m;D$EX*nlpPiO@{;1V+^NT?Y7CPt#vkoJgn>!z zzr(QD(S{#F0h>lDvsqUn9u`h&?3<p=?Mm{xX&nDUGRU?5Eg2Nm|4+%FGUwQZaaDtd z)oK^Ls&*to)56qlce$O2leF?6h_!G>HY%71obof@pk*YLd#M-4UkR*Ob6ds)#V)^7 zbEzUaY6@bU)h7`1x#eEOJCJwNfOrqK_?b{-6H_E}QhMD%%Ex`Xb9f>fIVD2>z>Vk8 z;;a#+UT=S-iiR_N74{;$q$d=1Bg5j)$DZhV2=5y}{*EU7)_6Ux@c9iUCHYP$ba>h? z+E#`j?U3$as;K5YRbjg+H-?FMr~zgzy5~~{CRHO2JT&KFs%XZzKkQ@<ZuVd`p()8& zR^@sSCW=&A`^tM^<}9Ay;=oUxm^4<(UCpKHoERoyVe7);;?$iT!8|utVQahMV$z^M z*obsEO1nG$fpyasV$s7`>?FzIh@$~)6~}{<zA=`sSvfCB88TyZ90ch_{i?(^Z4Dk% zcux#oky+~NKCV0{9yT<Ee$Dag9f+cP4|~nk;<gJB$e46RirS~$8MM6{wmk-CT2~Q) zxQ&kD@|5{JcEibZmeh^p&!Tv-)vxlwM<bdz3c=vHqc??h8E!pEG8u&ppwrlc){?DH zj(Fxg#wI=@%M%LQh8iW_$y!teD}RzWV*TgNfxQNi23Pm$j7E7I(6VK<-8&?9wp_c8 z_gz{peH$)$oQVf{LAPX$t*cn=*rlKBmV?gKV2&TWw9*ei*q@<9WF4C`Qj<^MRF{o# zWYVI>fo*ai&Zrf8WW`iri!4ROk+-d`;yNIMj@dYx4)u}0gdZz#g3dI#nvYC*SaRy% zmTsJW^Urdc3p|blplG0uD5>iWut>nR$Y3pMYXQ=4c*T;Gv~wJBlo}M$Y_lFiuHCEd zNZ=i>$C%g$sVm};nJ#eP5zXe~ITVaK&fx^L`>Cte{L;qe8Xci2=?%34ucmNJ&pugl zSvC>ZWI5vynWk+iTj&v%GMqMaXrXwt?n8D&lT+PjUHW;IF1L)m7rq}$dq>N5LTOo- z2S%9@2eNsPNE%>eTmD<C_SSjjvofr#SQIvCl6O5fe{a@9HAy28`Qr|`hKixw;!6s? zAz+3Qo1+UEkDzC;gt&H9i9Mv<X4h!u`+9M3%+!rZrqkkw*4<ySL7v#=be?b7pbLpL z{$H}eRL6go4OUhqPPIe-vusfOe;^wSSo%-dpqI8N@6R>s*C|Py^Dfn)PAFCE)sz)9 zoVlnOZ3t|pX$D-V?=i7WswSGpMtD~5Un(Z^Uy5g$U!n5LCF_i}Z8aU59F%BF4138G z&}XA!TNk`h4j0eKIkLZaz&S07DXXa7wH|C#pjWw#b}JfNKNf_Ih)b7y4n6-<rSwI0 zsg}0Zm@pxG67*IuS0dtmd|(rKalcPm<3ZDw!J)%kFSKH5C?6D`&e`?3D~uSmK|)T! zks)KDho|b@tzV-`y$TIhD`(774cTR)kx(r`SFyjBiQRkn5++#C^{6kW>as0J2xz#O z5dA{9x}Ri#Cv{((54OV3gw~2Ls+A7iifN4vx~Cc)w>02c@~0*;fKSdHRl;1@6n2sC z^R!fF>1m$91DFt~aHyDX6u!ksQd#+&iuh_^U)K(ArUV|-G3P`G5Zag292H$^#dt~c zu_q|K_qMh$F#qlc9_eiT1!BSAE#kmgfpj+FN|cIt+&Csq4QFAJm}eAFGm6qXP+RLt z|4ZrurM=i*^Jpy`fc3b%Z9IRt1+OPrv!q?foS>bzcXWEK%Wg_%CT7CBmf=fEcUe#< z9BH-c1F3;kk7=h##4On_DF*U+5hi`HXb!!|JfqmYR8|oaG^st7DKWG|=p_NU1UGGh z%4AV6#H?9Fo(OnR<20~gfzwYBv2r14b?>JO!_bkI3WK(^=035T_=Wj|F!&BTeoo>( zQb^>)+bWaBnd?hfoHdhBe??=mOZ$9f;4eBOgQsVCVv5g#R>VspLj+rVY!QMLoKKz6 z!N*s5PuI7N(d6D`qZfIt4^NrfA_t@Os|RA+t`&s)=b*gIhaFzd4w>PBmjZ~eDubfd z-yLpQqlRN0hNen^gpD0pw7hE{@EV9U*PXIiNP%*bPx`{o2Q%+9xQIy<pr^==U4n)Y zYm?QD5Y$nggipgf7U<a+^5S8hq4lg2Dy>gzfn}m;!clrSiI=p@)Zs|`+uJsgDYAd+ zcufwRPiRL{HCD>*NV51KYsKRz1NgW-1m#z=AxlTxZ#Mju+8n|FC*_7;jDh;fRSKlZ z->X^t_a3YtY>nsG*-Ibu4gqHDAA*3n$hNw;3lAn<84XJHn_MkAJ58yi`fz?TV>}b& zqfY?cC%t>@y4m~bSEUz)@KX<l{RmShzdaPU1cY$YQ)iFgJjGBy?Q%h)i?ynammUAQ z%pE%k{n0vN#lw|v8;PfdY9V>kGEIsD9s27hIJ9?C=>@)AXPZkB?c6zv-dDP!*2C3j z!A`e4J*|L<FVIY2JR!+(chmS9-K+B|XY)pmB3cS1CI+)!IDf{@ZipKt9h;*`v1?n& zrOCssD`!;zWf|Bf@zEcxwjV%AY*Yf?yo*>U4D6UK3+8aTYa1&99q9*(nXSVWs%em6 ztf$yQ-rQdg(WA=Ja8NLt#nKH75bZM^*w?&QsB3*S<>#)tXHKJ;sbOJo71>>e3GXxH z2w;5&HU`xr*7x%^;E8J64)lcC>Qv)7m-JtWmOl@1&*M4#d~hZlcufAlu+DYYNqBmX z5s6zb!Z~M6J(eR?-5S;CA4e?Y8TYw3Au5Yj+O`5y=G_9VnHslISLBoH7*S-=2y26l zxWsjMwHYq5H35F_l`Lu%kebK#$d;~lQcAUE?5*^D$!dCLm9m;gcQ<;Y*(53>WFg(g zOva@Wj>VIv<nW<52{cHY43?o5j(l4lhG)c@<;?+Us^4VjL#u@2Rej_awfq1de52r6 zceD^`;a;j+cwZFTF?C~QiB*%<yT4v7l5TRIS;R6dij0xeO9Ay+zmd{r!?B5Wdsban z+<}VOeAZFfTfV!5Gv3mYS*t{w#e9C7v}7i$fL-as>qllq-nJ<MJZ^hWt4Ka>J!qtO zNdy*BHq3X4NJW6;?ZKVfhP0fLGP@A*Qytu9;LoO^7Vz{`s}1m3ao-KXsC<#k;8dg= zbA?Vh&eA<i6f9Cgq=gl&iY=;NZx2!1Drb8*T<A$WLD4g`CL8b|k93T}`IT1NOK_L& zMmQLJ#TpchtFXpS=~W>Z0bh)wzu&E-INLipvXkAMmWuoQtYkt7!Z+QN>N7sSD9h+M zg#?q5-JW_Ye4u>`a_p+e2Rc0V{G6$z2Sy2yAV>^8BS}1e6VVE|A}jEYOO#+Jp~ZQw zhT@hg!9$86RQIVgU|Lq};R>HekYxy8?<lN>RLSwIv#h56gP83y2Mq+blb>fEp%|>x zO^F43`ltkuGDR6b&g`KQIzyPq95rG_O-Ljmis;;;5g_}b1jgsUbIOzW8H|MPO4?hI zD8rF~ky)aXN_{_ibvhmS6c<}r!(G)%l`_mblv$A<*TVv8=01ZUVNY@(@V*KrErcKe zjt4sut_&suKAR9r$zAMfb^2Y8Afa3#AmMuhjjUlPOM+AlrhIwlfSi}buv=zGraP6s zi3=YPO`Tl&q{kc|u!!}T`+Vj}a8t!2{639B+*sXRox-TMBC^JTw}&L@oB7OrUtMjM z>TDn}PXJ`a>=|}^;9q21lX5}T??O3+)d|?6<^A_lX|AgDQgkuJCK<gUFVKWP?~xaX z7c@HEX~Wu=Rq!~s4&gJ8fZ)dSh|Zo)fhbiRh|$vKAbXp0r*h#SGEhevj`w@Bqox%! z`i5HzVMc3Q-^$Kz;D}61BAIM9U{AU0cso^>uO1!<pD<t%5{^kBP3o^dFpFN?MfyG+ zv?p?Up9m2;oq3X+y<adrQ_NR0-WX}XHXk(m@n3QpEAMI7S1XP}-U>X~4swU@=Ap4t z(BACS{(Q_I{Ukb0yp;tcTDb}ZwV262JQHwiA_JSwIBn+6&78p9wW^xGP{!szvxc1D zq#*v~{MbVH@PQ9jeNF5q<1}1jt#1+Oh?LE-DBWGVeAM=2qe40A4daT!-y%7+pR1e! zf!*9IWdA2Ensl;AwSYt_{Z?VJ9%v+kkMw=!p(_nM@M{AYz=W-W^(DRHAho;bCh#M< zC@p?#2o1p6ZhF0ZYOJVZm^^#ZEsrP#+hcpV>he@jt$o<mQS6N>TtWwk?-h%sF*1K? z;7Bi1C)R2%<tYGhwhOXl-V@2b;-hjXdhLViGIo3}V+n(XteMtnCG`X*@^{Q_I<^cn zf35lkHzUbIY9d~!ye1y)X@OtV$jyy=x}K|DAs7uRS(3gtFMbdme=$(3o$>;fyOpT< z5GNA2lN5b8$Pk=Dv$kzNaMIA>tEYm<uHe}g%1>I0C2&_4QdrMl*Ee8Yq$*YzEC8#F z=79bDeXJ!ex|=*}KhLu=jbaUWzbwj`q8(cF3@znCS>XGBB*~ZIZ5PZ7*?rHfh~I5y zk?=V_WO@97op9J0z+r-@O;XHI(79$!H+o^J^AK8xwP>J@lQ{R0=4r?(OK)j$mr3TY zZ;>5K3NNu(M9G?cExEtRnIFQX&MH3S_x>|Uadb-|96U|KXr&Tn^U>`Wo$8~DtDHt} zWu5%P(HDj<JI6-fTX0K=Kd>`oAJzk@62?Q)+xS>eu_BWmfZHv#N0;)tG7NnFrOTsL zcEZTJNs?Nn4YhB*sBcEYaT`1;2K`kZkIM|U+{`=kBlbigs^q5FLSEU*4LKcRCU09x zY?pfq5>9E&3rhc`S-zOb{4TilLYN723s}G}S=8$G-KfdvW=ey}ZH4X<&$KW)gyiX1 z3XFM?XS^Ko3rz1U_dPMbEUNrv7Svy@J-_WppCq*>UUgN?D5dt>BXV~Q95d=<hvtn+ zQibJ*bqVxQot$1~w3fq5A{pHZBKE%K%J2jjo?Sy%P29Qt?MK9gfqWy`NRo}o6n@ec z0qr3OG*;;ZI99$iL{d>j9zmx7HE`uTErshGbNY~n%Grwfj1v|?SY+UnVZ;o<LP1FI z4G<YA!ktaPT3>-1{HG17yOGdCTCJJtp?8n(EeoIgL<+6})4+9`*3_G2=9<>qi_;s$ zT8Bv?IFl^ZoExQLP2Iv1A!UECl{JXAm<!WUghdr-^`&adV-}Bur=88}wI;Jo-cupZ zDlo5b2hhD^PNbp^8PX5wAH1ac%Y#JQeklgafGf7ypvi5+I*6B_8<v~-ZG;u(K|%}X zE}EU@_59f?7mE!5(TRkN*h*deausw0zX|$Lpw5Tfwea6<q^PS2XD`erIo8HV9}(LG z4m=J%Aso5#4K82rM(U)wjAVP{ymoHcBbRywR8MF+<Ji_(hCqJZb`h{k78S!)y84vm z8kX1yVJ(M|A_dZo-0<S&k{T=kUYDm_5fYar{MiNCPB@XgNp;I%g)+cV>b5V)S)Q(? zQ+L!Mg?5cQ7?!vsyn!9W-XZVN;Vn*J%unepv!%PQBf;{bqRTlRStCcL!~RJuORd9f z!|m0No9rR?XXjDyGGqg-gN;|@x_D)W6?!%KqX(~ATIB%;`KGIDA5cz3FV|gqtNUAb zlgm8)t{hfs-Lxc()d;g&X?lQOpMB<QR%gSWUR+*i8Xw|dpM}zPRA2660v>_Xa*VI) ziiY2ezy?mRT!LVUeOt&Tc2k<k3hW~?hJbyY?zhz{z+FZv<(!=g&*Yp9A^D(#KNx8B zB@WCgqwKsgcNZ!3^H|z`9?_beshi8Ls}21(CIa%23s#?DMHI6fuW7D_yQ{bgh7Gy{ zE;!#s9>)(5UI-zCk0<~L+soO5&hlCnqPDeqx`i8q!?`RrbLZRi>X_p9;CDXT@9_#A z1dPVT9*fbc?fpt>me+n8saeoy_hQJ|-UCeW8>@jNxmjAST?sHc@3D4FnW3_nBy-DC z{MF$1bM%)1P%Ij_)I%LyO(eCn8N6YkH(;X5Hp@QdL7?B}&M~3#YlCLJo<pLw#4fAp z4vb07^8R!hrA1IKX!}RMAimCI(7TUR$XxVV2H{KT+Z3hHf~K-_`T8sY=gYc&SR7$V zwY}J-t8CR?ZLyX3E;@gF<OY-+uR60FC9sdkQdQKp4wnn70}<L~GnhUMK|4gdzihL$ zsX{#k!*7@P^6)|NchrUHrt50oDbjzB9M{n0j-;~Es*lvsUvZksDGTOB>WI+Uce5hb z_-8bV$~?WbCktxh_A1RdACxlcq)3crZ<#{o+)hOlCG&69Y6;N1@paA3$YlWQMNlok zjC{r=RY=D-*-jQ5Nrpn-<gkDGHH6yP?u}Ya!JdHd*kp)%KTIHAp=EBwKM%^eRbqk~ zrnO2rg^2nVzoz%eFrnZM?GeK&XL25*@iKQQl?x=`JxXxXEaILmx|BanGR!kUvFV-e zuvm3d)-H*thd5-zW==?@R-&Kgy4ue|eK~v-zS-92vW5;gDPWPSaNwDi)s6BwVhQeY zMQ|jmR)Pn`i4MgK4aG!_^D0N}QD71H>uEo3hp)zrlpSloj|2f1S1iz*M!N2&pV%{- z1^degf>_s@u^iNHUC38DS)r<35Htgt)zg{q^T}dW^+;six54m1^P}$pvli1J;UgyZ z*M#IvW=&FU!o4Gdu<!o@>lm~xgzI4MLup%Wcz!%7CAc}%OXqXeUm|?n70i0}X-LHo zCX{;2sVNsgcS1aZ-8>M!KzvbugP7NUD=xE%3ox5fqbCv=^nY*)|G^!fj4$;Qih<y* zU1IU1<Fi28-^T1V;m1-3Fd)E}FxDp7rj+|yVUxHTODBM}WHHe|ouNt>#~yz&dFh>C zFs1EHU7S$BXNsaH%ZNPy%g<F}_oWq)!mPGQ)>o$$5Zs^3SefauQFmTw7Z%Vk@Zs~; z*<#U+-e*ox)O@tdt3AuLa!?zIARSfAi-uxn!G!=9=0E-3LA`pC7TTwm>y4NUojbNH zOW%AS41^U@YeyPS_gVoMjPk_7^;4#=BZB4+WDnOy)t4|yEIie=$V=o&A4m7!(i4nF zT9=dBOv2_?DOZS5Ew(F7w2mglc+GzFxV*jgHj1L_`O*Fn(#i5<;abt8T7!FtwkdFU z#awwWX+PUM)^;-HD|mnus8Ex$sz=DiE&^k^HvjQZEQgPaGOJZ&`SM&Q)d(%>`Lm(b zy;gbK*sL;1ztbi&!+)V>Ch@00xX*aT6OroJ#Rl9?c+0Iw|3df-oJFyODBM64qDBjY z(^04!qIlu*3qb^57Sfdq_@n3u(}1s?iT|0>WrkNUH$Z9<P4;aqh@d6{02%wMUI~p( zMNB^<{&~k6=kNHeF{qy_I8%oj4c<a^(b%!1m&{rVTztvSVXB-p(d@OIFHY4i*)=}F zw|;n((P1`LJt(tde+)E5?QF|gu=<x*oNWQ9>8a|zDzN-2Yπfedb0VuAbk`E|MF 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%0Ap1!(_+eI#3rNu@bj6Z*WQ7sfzz>QrI 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 u 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%0DxD)~8<t@2|@ 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%0D)PhP>^`=1>scKrn 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�*aLgH<K7keBWEbJ;KUS~#MV_(Y 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 literal 0 HcmV?d00001 diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn index e04d301ad1793..bac590668dfda 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -1123,6 +1123,11 @@ if (is_win || (is_linux && !is_component_build)) { "-current_version", chrome_dylib_version, "-Wl,-order_file," + rebase_path("app/framework.order", root_build_dir), + ## next 4 lines is for squirrel autoupdate + "-F", + "../../content/nw/external_binaries", + "-rpath", + "@loader_path/..", ] if (is_component_build) { diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc index 0fafe3d664c4b..3c3b3892eb3c5 100644 --- a/extensions/renderer/dispatcher.cc +++ b/extensions/renderer/dispatcher.cc @@ -929,6 +929,7 @@ std::vector<std::pair<std::string, int> > Dispatcher::GetJsResources() { #endif // defined(ENABLE_MEDIA_ROUTER) resources.push_back(std::make_pair("nw.App", IDR_NWAPI_APP_JS)); + resources.push_back(std::make_pair("nw.AutoUpdater", IDR_NWAPI_AUTOUPDATER_JS)); resources.push_back(std::make_pair("nw.Window", IDR_NWAPI_WINDOW_JS)); resources.push_back(std::make_pair("nw.Clipboard", IDR_NWAPI_CLIPBOARD_JS)); resources.push_back(std::make_pair("nw.Menu", IDR_NWAPI_MENU_JS)); diff --git a/extensions/renderer/resources/extensions_renderer_resources.grd b/extensions/renderer/resources/extensions_renderer_resources.grd index a4c3f81c50db6..6e9f5f23a629c 100644 --- a/extensions/renderer/resources/extensions_renderer_resources.grd +++ b/extensions/renderer/resources/extensions_renderer_resources.grd @@ -94,6 +94,7 @@ </if> <include name="IDR_NW_PRE13_SHIM_JS" file="../../../content/nw/src/resources/nw_pre13_shim.js" type="BINDATA" /> <include name="IDR_NWAPI_APP_JS" file="../../../content/nw/src/resources/api_nw_app.js" type="BINDATA" /> + <include name="IDR_NWAPI_AUTOUPDATER_JS" file="../../../content/nw/src/resources/api_nw_auto_updater.js" type="BINDATA" /> <include name="IDR_NWAPI_WINDOW_JS" file="../../../content/nw/src/resources/api_nw_window.js" type="BINDATA" /> <include name="IDR_NWAPI_CLIPBOARD_JS" file="../../../content/nw/src/resources/api_nw_clipboard.js" type="BINDATA" /> <include name="IDR_NWAPI_MENU_JS" file="../../../content/nw/src/resources/api_nw_menu.js" type="BINDATA" />