diff --git a/apps/DEPS b/apps/DEPS index b1638ab8f021..e2f3d6958a03 100644 --- a/apps/DEPS +++ b/apps/DEPS @@ -34,7 +34,6 @@ include_rules = [ "+chrome/browser/extensions/api/file_system/file_system_api.h", "+chrome/browser/extensions/chrome_extension_web_contents_observer.h", "+chrome/browser/extensions/unpacked_installer.h", - "+chrome/common/extensions/api/app_window.h", ] specific_include_rules = { diff --git a/athena/content/web_contents_view_delegate_factory_impl.cc b/athena/content/web_contents_view_delegate_factory_impl.cc index 8eecd2659913..fb0b27d502ce 100644 --- a/athena/content/web_contents_view_delegate_factory_impl.cc +++ b/athena/content/web_contents_view_delegate_factory_impl.cc @@ -140,16 +140,3 @@ content::WebContentsViewDelegate* CreateWebContentsViewDelegate( } } // namespace athena - -namespace web_modal { - -SingleWebContentsDialogManager* -WebContentsModalDialogManager::CreateNativeWebModalManager( - NativeWebContentsModalDialog dialog, - SingleWebContentsDialogManagerDelegate* native_delegate) { - // TODO(oshima): Investigate if we need to implement this. - NOTREACHED(); - return NULL; -} - -} // namespace web_modal diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 612d4e73a433..df8639fbf3ac 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -684,7 +684,7 @@ const Experiment kExperiments[] = { IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_NAME, IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_DESCRIPTION, kOsDesktop, - SINGLE_VALUE_TYPE(switches::kEnableAppWindowControls) + SINGLE_VALUE_TYPE(extensions::switches::kEnableAppWindowControls) }, { "disable-hyperlink-auditing", diff --git a/chrome/browser/apps/window_controls_browsertest.cc b/chrome/browser/apps/window_controls_browsertest.cc index c88ec8c35855..7a6936eb48ce 100644 --- a/chrome/browser/apps/window_controls_browsertest.cc +++ b/chrome/browser/apps/window_controls_browsertest.cc @@ -5,15 +5,15 @@ #include "chrome/browser/apps/app_browsertest_util.h" #include "chrome/browser/extensions/extension_test_message_listener.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/common/chrome_switches.h" #include "content/public/test/browser_test_utils.h" #include "extensions/browser/process_manager.h" +#include "extensions/common/switches.h" class WindowControlsTest : public extensions::PlatformAppBrowserTest { protected: virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); - command_line->AppendSwitch(switches::kEnableAppWindowControls); + command_line->AppendSwitch(extensions::switches::kEnableAppWindowControls); } content::WebContents* GetWebContentsForExtensionWindow( const extensions::Extension* extension); diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 654ce14052e4..ad2739f20871 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -1331,6 +1331,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( extensions::switches::kAllowHTTPBackgroundPage, extensions::switches::kAllowLegacyExtensionManifests, extensions::switches::kEnableAppView, + extensions::switches::kEnableAppWindowControls, extensions::switches::kEnableEmbeddedExtensionOptions, extensions::switches::kEnableExperimentalExtensionApis, extensions::switches::kEnableScriptsRequireAction, @@ -1341,7 +1342,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kCloudPrintURL, switches::kCloudPrintXmppEndpoint, switches::kDisableBundledPpapiFlash, - switches::kEnableAppWindowControls, switches::kEnableBenchmarking, switches::kEnableNaCl, #if !defined(DISABLE_NACL) diff --git a/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc b/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc index 2f826d718205..28ffe4e39261 100644 --- a/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc +++ b/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc @@ -7,7 +7,6 @@ #include "base/command_line.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/api/app_current_window_internal.h" -#include "chrome/common/extensions/api/app_window.h" #include "chrome/common/extensions/features/feature_channel.h" #include "extensions/browser/app_window/app_window.h" #include "extensions/browser/app_window/app_window_registry.h" diff --git a/chrome/chrome_browser_extensions.gypi b/chrome/chrome_browser_extensions.gypi index f9d6e77f8935..b5249d04e82e 100644 --- a/chrome/chrome_browser_extensions.gypi +++ b/chrome/chrome_browser_extensions.gypi @@ -104,8 +104,6 @@ 'browser/extensions/api/alarms/alarms_api.h', 'browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc', 'browser/extensions/api/app_current_window_internal/app_current_window_internal_api.h', - 'browser/extensions/api/app_window/app_window_api.cc', - 'browser/extensions/api/app_window/app_window_api.h', 'browser/extensions/api/audio/audio_api.cc', 'browser/extensions/api/audio/audio_api.h', 'browser/extensions/api/audio/audio_service.h', diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi index 285cdf3ae8d8..81c6a6af12de 100644 --- a/chrome/chrome_renderer.gypi +++ b/chrome/chrome_renderer.gypi @@ -123,8 +123,6 @@ 'chrome_renderer_extensions_sources': [ 'renderer/extensions/app_bindings.cc', 'renderer/extensions/app_bindings.h', - 'renderer/extensions/app_window_custom_bindings.cc', - 'renderer/extensions/app_window_custom_bindings.h', 'renderer/extensions/automation_internal_custom_bindings.cc', 'renderer/extensions/automation_internal_custom_bindings.h', 'renderer/extensions/chrome_v8_extension_handler.cc', @@ -149,7 +147,6 @@ 'renderer/extensions/webstore_bindings.h', 'renderer/resources/extensions/app_custom_bindings.js', 'renderer/resources/extensions/app_view.js', - 'renderer/resources/extensions/app_window_custom_bindings.js', 'renderer/resources/extensions/automation_custom_bindings.js', 'renderer/resources/extensions/browser_action_custom_bindings.js', 'renderer/resources/extensions/chrome_direct_setting.js', diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 3227fc364840..4b83c8b8f36b 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -879,6 +879,7 @@ '../components/autofill/content/renderer/test_password_generation_agent.h', '../components/autofill/content/renderer/test_password_generation_agent.cc', # TODO(rockot): Remove this once extensions_browsertests exists. + '../extensions/browser/api/app_window/app_window_apitest.cc', '../extensions/browser/api/bluetooth/bluetooth_apitest.cc', '../extensions/browser/api/bluetooth/bluetooth_private_apitest.cc', '../extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc', @@ -1075,7 +1076,6 @@ 'browser/extensions/alert_apitest.cc', 'browser/extensions/all_urls_apitest.cc', 'browser/extensions/api/activity_log_private/activity_log_private_apitest.cc', - 'browser/extensions/api/app_window/app_window_apitest.cc', 'browser/extensions/api/audio/audio_apitest.cc', 'browser/extensions/api/automation/automation_apitest.cc', 'browser/extensions/api/autotest_private/autotest_private_apitest.cc', diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc index 1971f5ba6e81..64b03370d5e4 100644 --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc @@ -399,9 +399,6 @@ extern const char kEasyUnlockAppPath[] = "easy-unlock-app-path"; // If set, the app list will be enabled as if enabled from CWS. const char kEnableAppList[] = "enable-app-list"; -// Enables the tag in platform apps. -const char kEnableAppWindowControls[] = "enable-app-window-controls"; - // Enable OS integration for Chrome app file associations. const char kEnableAppsFileAssociations[] = "enable-apps-file-associations"; diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h index 4ad34ffa1112..2c70bf5ac1fe 100644 --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h @@ -116,7 +116,6 @@ extern const char kDnsPrefetchDisable[]; extern const char kDumpBrowserHistograms[]; extern const char kEasyUnlockAppPath[]; extern const char kEnableAppList[]; -extern const char kEnableAppWindowControls[]; extern const char kEnableAppsFileAssociations[]; extern const char kEnableAsyncDns[]; extern const char kEnableAuthNegotiatePort[]; diff --git a/chrome/common/extensions/api/schemas.gypi b/chrome/common/extensions/api/schemas.gypi index 0c82c443cc5c..3cd9af78c3a5 100644 --- a/chrome/common/extensions/api/schemas.gypi +++ b/chrome/common/extensions/api/schemas.gypi @@ -19,7 +19,6 @@ 'activity_log_private.json', 'alarms.idl', 'app_current_window_internal.idl', - 'app_window.idl', 'audio.idl', 'automation.idl', 'automation_internal.idl', diff --git a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc index 0e0fefaec91f..3b7bbbd2b48d 100644 --- a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc +++ b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc @@ -14,7 +14,6 @@ #include "chrome/common/url_constants.h" #include "chrome/grit/renderer_resources.h" #include "chrome/renderer/extensions/app_bindings.h" -#include "chrome/renderer/extensions/app_window_custom_bindings.h" #include "chrome/renderer/extensions/automation_internal_custom_bindings.h" #include "chrome/renderer/extensions/chrome_v8_context.h" #include "chrome/renderer/extensions/enterprise_platform_keys_natives.h" @@ -97,10 +96,6 @@ void ChromeExtensionsDispatcherDelegate::RegisterNativeHandlers( "app", scoped_ptr( new extensions::AppBindings(dispatcher, context))); - module_system->RegisterNativeHandler( - "app_window_natives", - scoped_ptr( - new extensions::AppWindowCustomBindings(dispatcher, context))); module_system->RegisterNativeHandler( "sync_file_system", scoped_ptr( @@ -151,7 +146,6 @@ void ChromeExtensionsDispatcherDelegate::PopulateSourceMap( extensions::ResourceBundleSourceMap* source_map) { // Custom bindings. source_map->RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS); - source_map->RegisterSource("app.window", IDR_APP_WINDOW_CUSTOM_BINDINGS_JS); source_map->RegisterSource("automation", IDR_AUTOMATION_CUSTOM_BINDINGS_JS); source_map->RegisterSource("automationEvent", IDR_AUTOMATION_EVENT_JS); source_map->RegisterSource("automationNode", IDR_AUTOMATION_NODE_JS); @@ -224,7 +218,6 @@ void ChromeExtensionsDispatcherDelegate::PopulateSourceMap( IDR_CAST_STREAMING_UDP_TRANSPORT_CUSTOM_BINDINGS_JS); #endif source_map->RegisterSource("webstore", IDR_WEBSTORE_CUSTOM_BINDINGS_JS); - source_map->RegisterSource("windowControls", IDR_WINDOW_CONTROLS_JS); // Custom types sources. source_map->RegisterSource("ChromeSetting", IDR_CHROME_SETTING_JS); @@ -268,7 +261,7 @@ void ChromeExtensionsDispatcherDelegate::RequireAdditionalModules( is_within_platform_app && extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV && CommandLine::ForCurrentProcess()->HasSwitch( - ::switches::kEnableAppWindowControls)) { + extensions::switches::kEnableAppWindowControls)) { module_system->Require("windowControls"); } diff --git a/chrome/renderer/resources/renderer_resources.grd b/chrome/renderer/resources/renderer_resources.grd index b31f0075faea..9ad5486c06f7 100644 --- a/chrome/renderer/resources/renderer_resources.grd +++ b/chrome/renderer/resources/renderer_resources.grd @@ -33,7 +33,6 @@ - @@ -82,8 +81,6 @@ - - diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn index 9fe04b21d758..306d2d4d49a8 100644 --- a/extensions/browser/BUILD.gn +++ b/extensions/browser/BUILD.gn @@ -41,6 +41,8 @@ source_set("browser") { "api/app_runtime/app_runtime_api.h", "api/app_view/app_view_internal_api.cc", "api/app_view/app_view_internal_api.h", + "api/app_window/app_window_api.cc", + "api/app_window/app_window_api.h", "api/guest_view/guest_view_internal_api.cc", "api/guest_view/guest_view_internal_api.h", "api/async_api_function.cc", diff --git a/chrome/browser/extensions/api/app_window/OWNERS b/extensions/browser/api/app_window/OWNERS similarity index 51% rename from chrome/browser/extensions/api/app_window/OWNERS rename to extensions/browser/api/app_window/OWNERS index 79c559bde2c3..1ecba6c9b2d5 100644 --- a/chrome/browser/extensions/api/app_window/OWNERS +++ b/extensions/browser/api/app_window/OWNERS @@ -1,2 +1,2 @@ benwells@chromium.org -scheib@chromium.org +jackhou@chromium.org diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/extensions/browser/api/app_window/app_window_api.cc similarity index 94% rename from chrome/browser/extensions/api/app_window/app_window_api.cc rename to extensions/browser/api/app_window/app_window_api.cc index 9b591a71f558..e26f89b93b02 100644 --- a/chrome/browser/extensions/api/app_window/app_window_api.cc +++ b/extensions/browser/api/app_window/app_window_api.cc @@ -2,14 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/api/app_window/app_window_api.h" +#include "extensions/browser/api/app_window/app_window_api.h" #include "base/command_line.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/time/time.h" #include "base/values.h" -#include "chrome/common/extensions/api/app_window.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_types.h" #include "content/public/browser/render_process_host.h" @@ -23,6 +22,7 @@ #include "extensions/browser/app_window/native_app_window.h" #include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/image_util.h" +#include "extensions/common/api/app_window.h" #include "extensions/common/features/simple_feature.h" #include "extensions/common/permissions/permissions_data.h" #include "extensions/common/switches.h" @@ -31,7 +31,7 @@ #include "ui/gfx/rect.h" #include "url/gurl.h" -namespace app_window = extensions::api::app_window; +namespace app_window = extensions::core_api::app_window; namespace Create = app_window::Create; namespace extensions { @@ -83,9 +83,8 @@ bool CheckBoundsConflict(const scoped_ptr& inner_property, // Copy over the bounds specification properties from the API to the // AppWindow::CreateParams. -void CopyBoundsSpec( - const extensions::api::app_window::BoundsSpecification* input_spec, - AppWindow::BoundsSpecification* create_spec) { +void CopyBoundsSpec(const app_window::BoundsSpecification* input_spec, + AppWindow::BoundsSpecification* create_spec) { if (!input_spec) return; @@ -195,7 +194,7 @@ bool AppWindowCreateFunction::RunAsync() { if (!AppsClient::Get()->IsCurrentChannelOlderThanDev() || extension()->location() == extensions::Manifest::COMPONENT) { - if (options->type == extensions::api::app_window::WINDOW_TYPE_PANEL) { + if (options->type == app_window::WINDOW_TYPE_PANEL) { create_params.window_type = AppWindow::WINDOW_TYPE_PANEL; } } @@ -257,18 +256,18 @@ bool AppWindowCreateFunction::RunAsync() { if (options->focused.get()) create_params.focused = *options->focused.get(); - if (options->type != extensions::api::app_window::WINDOW_TYPE_PANEL) { + if (options->type != app_window::WINDOW_TYPE_PANEL) { switch (options->state) { - case extensions::api::app_window::STATE_NONE: - case extensions::api::app_window::STATE_NORMAL: + case app_window::STATE_NONE: + case app_window::STATE_NORMAL: break; - case extensions::api::app_window::STATE_FULLSCREEN: + case app_window::STATE_FULLSCREEN: create_params.state = ui::SHOW_STATE_FULLSCREEN; break; - case extensions::api::app_window::STATE_MAXIMIZED: + case app_window::STATE_MAXIMIZED: create_params.state = ui::SHOW_STATE_MAXIMIZED; break; - case extensions::api::app_window::STATE_MINIMIZED: + case app_window::STATE_MINIMIZED: create_params.state = ui::SHOW_STATE_MINIMIZED; break; } @@ -314,7 +313,7 @@ bool AppWindowCreateFunction::RunAsync() { } bool AppWindowCreateFunction::GetBoundsSpec( - const extensions::api::app_window::CreateWindowOptions& options, + const app_window::CreateWindowOptions& options, AppWindow::CreateParams* params, std::string* error) { DCHECK(params); @@ -325,9 +324,9 @@ bool AppWindowCreateFunction::GetBoundsSpec( // new API, the deprecated fields will be ignored - do not attempt to merge // them. - const extensions::api::app_window::BoundsSpecification* inner_bounds = + const app_window::BoundsSpecification* inner_bounds = options.inner_bounds.get(); - const extensions::api::app_window::BoundsSpecification* outer_bounds = + const app_window::BoundsSpecification* outer_bounds = options.outer_bounds.get(); if (inner_bounds && outer_bounds) { if (!CheckBoundsConflict( diff --git a/chrome/browser/extensions/api/app_window/app_window_api.h b/extensions/browser/api/app_window/app_window_api.h similarity index 73% rename from chrome/browser/extensions/api/app_window/app_window_api.h rename to extensions/browser/api/app_window/app_window_api.h index 164818256d10..f735a6cd6060 100644 --- a/chrome/browser/extensions/api/app_window/app_window_api.h +++ b/extensions/browser/api/app_window/app_window_api.h @@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_EXTENSIONS_API_APP_WINDOW_APP_WINDOW_API_H_ -#define CHROME_BROWSER_EXTENSIONS_API_APP_WINDOW_APP_WINDOW_API_H_ +#ifndef EXTENSIONS_BROWSER_API_APP_WINDOW_APP_WINDOW_API_H_ +#define EXTENSIONS_BROWSER_API_APP_WINDOW_APP_WINDOW_API_H_ #include "extensions/browser/app_window/app_window.h" #include "extensions/browser/extension_function.h" namespace extensions { -namespace api { +namespace core_api { namespace app_window { struct CreateWindowOptions; } @@ -27,13 +27,13 @@ class AppWindowCreateFunction : public AsyncExtensionFunction { private: bool GetBoundsSpec( - const extensions::api::app_window::CreateWindowOptions& options, + const extensions::core_api::app_window::CreateWindowOptions& options, AppWindow::CreateParams* params, std::string* error); AppWindow::Frame GetFrameFromString(const std::string& frame_string); bool GetFrameOptions( - const extensions::api::app_window::CreateWindowOptions& options, + const extensions::core_api::app_window::CreateWindowOptions& options, AppWindow::CreateParams* create_params); void UpdateFrameOptionsForChannel(AppWindow::CreateParams* create_params); @@ -42,4 +42,4 @@ class AppWindowCreateFunction : public AsyncExtensionFunction { } // namespace extensions -#endif // CHROME_BROWSER_EXTENSIONS_API_APP_WINDOW_APP_WINDOW_API_H_ +#endif // EXTENSIONS_BROWSER_API_APP_WINDOW_APP_WINDOW_API_H_ diff --git a/chrome/browser/extensions/api/app_window/app_window_apitest.cc b/extensions/browser/api/app_window/app_window_apitest.cc similarity index 100% rename from chrome/browser/extensions/api/app_window/app_window_apitest.cc rename to extensions/browser/api/app_window/app_window_apitest.cc diff --git a/chrome/common/extensions/api/app_window.idl b/extensions/common/api/app_window.idl similarity index 100% rename from chrome/common/extensions/api/app_window.idl rename to extensions/common/api/app_window.idl diff --git a/extensions/common/api/schemas.gypi b/extensions/common/api/schemas.gypi index 9d9c2be55df8..ebc2af0fee9f 100644 --- a/extensions/common/api/schemas.gypi +++ b/extensions/common/api/schemas.gypi @@ -15,6 +15,7 @@ 'main_schema_files': [ 'app_runtime.idl', 'app_view_internal.json', + 'app_window.idl', 'bluetooth.idl', 'bluetooth_low_energy.idl', 'bluetooth_private.json', diff --git a/extensions/common/switches.cc b/extensions/common/switches.cc index afa05b18da0c..cdccdae50ae2 100644 --- a/extensions/common/switches.cc +++ b/extensions/common/switches.cc @@ -26,12 +26,15 @@ const char kEmbeddedExtensionOptions[] = "embedded-extension-options"; // Show apps windows after the first paint. Windows will be shown significantly // later for heavy apps loading resources synchronously but it will be // insignificant for apps that load most of their resources asynchronously. -const char kEnableAppsShowOnFirstPaint[] = "enable-apps-show-on-first-paint"; +const char kEnableAppsShowOnFirstPaint[] = "enable-apps-show-on-first-paint"; // Hack so that feature switch can work with about_flags. See // kEnableScriptsRequireAction. const char kEnableAppView[] = "enable-app-view"; +// Enables the tag in platform apps. +const char kEnableAppWindowControls[] = "enable-app-window-controls"; + // Hack so that feature switch can work with about_flags. See // kEnableScriptsRequireAction. const char kEnableEmbeddedExtensionOptions[] = diff --git a/extensions/common/switches.h b/extensions/common/switches.h index dadd95ffc971..33f810b353df 100644 --- a/extensions/common/switches.h +++ b/extensions/common/switches.h @@ -17,6 +17,7 @@ extern const char kAppView[]; extern const char kEmbeddedExtensionOptions[]; extern const char kEnableAppsShowOnFirstPaint[]; extern const char kEnableAppView[]; +extern const char kEnableAppWindowControls[]; extern const char kEnableEmbeddedExtensionOptions[]; extern const char kEnableExperimentalExtensionApis[]; extern const char kEnableExtensionActionRedesign[]; diff --git a/extensions/extensions.gyp b/extensions/extensions.gyp index 609fe007224b..5ae98869a411 100644 --- a/extensions/extensions.gyp +++ b/extensions/extensions.gyp @@ -303,6 +303,8 @@ 'browser/api/app_runtime/app_runtime_api.h', 'browser/api/app_view/app_view_internal_api.cc', 'browser/api/app_view/app_view_internal_api.h', + 'browser/api/app_window/app_window_api.cc', + 'browser/api/app_window/app_window_api.h', 'browser/api/guest_view/guest_view_internal_api.cc', 'browser/api/guest_view/guest_view_internal_api.h', 'browser/api/async_api_function.cc', @@ -678,6 +680,8 @@ 'renderer/api_definitions_natives.h', 'renderer/app_runtime_custom_bindings.cc', 'renderer/app_runtime_custom_bindings.h', + 'renderer/app_window_custom_bindings.cc', + 'renderer/app_window_custom_bindings.h', 'renderer/binding_generating_native_handler.cc', 'renderer/binding_generating_native_handler.h', 'renderer/blob_native_handler.cc', @@ -741,6 +745,7 @@ 'renderer/resource_bundle_source_map.cc', 'renderer/resource_bundle_source_map.h', 'renderer/resources/app_runtime_custom_bindings.js', + 'renderer/resources/app_window_custom_bindings.js', 'renderer/resources/binding.js', 'renderer/resources/context_menus_custom_bindings.js', 'renderer/resources/entry_id_manager.js', diff --git a/extensions/renderer/BUILD.gn b/extensions/renderer/BUILD.gn index 8128b34161e2..1650b2dc1dc2 100644 --- a/extensions/renderer/BUILD.gn +++ b/extensions/renderer/BUILD.gn @@ -13,6 +13,8 @@ source_set("renderer") { "api_definitions_natives.h", "app_runtime_custom_bindings.cc", "app_runtime_custom_bindings.h", + "app_window_custom_bindings.cc", + "app_window_custom_bindings.h", "binding_generating_native_handler.cc", "binding_generating_native_handler.h", "blob_native_handler.cc", @@ -76,6 +78,7 @@ source_set("renderer") { "resource_bundle_source_map.cc", "resource_bundle_source_map.h", "resources/app_runtime_custom_bindings.js", + "resources/app_window_custom_bindings.js", "resources/binding.js", "resources/context_menus_custom_bindings.js", "resources/entry_id_manager.js", diff --git a/chrome/renderer/extensions/app_window_custom_bindings.cc b/extensions/renderer/app_window_custom_bindings.cc similarity index 96% rename from chrome/renderer/extensions/app_window_custom_bindings.cc rename to extensions/renderer/app_window_custom_bindings.cc index 35dd1bea7adf..e98cb1ffb1a6 100644 --- a/chrome/renderer/extensions/app_window_custom_bindings.cc +++ b/extensions/renderer/app_window_custom_bindings.cc @@ -2,23 +2,23 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/renderer/extensions/app_window_custom_bindings.h" +#include "extensions/renderer/app_window_custom_bindings.h" #include #include "base/command_line.h" -#include "chrome/common/chrome_switches.h" -#include "chrome/grit/renderer_resources.h" #include "content/public/renderer/render_thread.h" #include "content/public/renderer/render_view.h" #include "content/public/renderer/render_view_observer.h" #include "content/public/renderer/render_view_visitor.h" #include "content/public/renderer/v8_value_converter.h" #include "extensions/common/extension_messages.h" +#include "extensions/common/switches.h" #include "extensions/renderer/dispatcher.h" #include "extensions/renderer/scoped_persistent.h" #include "extensions/renderer/script_context.h" #include "extensions/renderer/script_context_set.h" +#include "grit/extensions_renderer_resources.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" #include "third_party/WebKit/public/web/WebView.h" #include "ui/base/resource/resource_bundle.h" diff --git a/chrome/renderer/extensions/app_window_custom_bindings.h b/extensions/renderer/app_window_custom_bindings.h similarity index 81% rename from chrome/renderer/extensions/app_window_custom_bindings.h rename to extensions/renderer/app_window_custom_bindings.h index e0f942a25066..04f7194aa75e 100644 --- a/chrome/renderer/extensions/app_window_custom_bindings.h +++ b/extensions/renderer/app_window_custom_bindings.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_EXTENSIONS_APP_WINDOW_CUSTOM_BINDINGS_H_ -#define CHROME_RENDERER_EXTENSIONS_APP_WINDOW_CUSTOM_BINDINGS_H_ +#ifndef EXTENSIONS_RENDERER_APP_WINDOW_CUSTOM_BINDINGS_H_ +#define EXTENSIONS_RENDERER_APP_WINDOW_CUSTOM_BINDINGS_H_ #include "extensions/renderer/object_backed_native_handler.h" @@ -31,4 +31,4 @@ class AppWindowCustomBindings : public ObjectBackedNativeHandler { } // namespace extensions -#endif // CHROME_RENDERER_EXTENSIONS_APP_WINDOW_CUSTOM_BINDINGS_H_ +#endif // EXTENSIONS_RENDERER_APP_WINDOW_CUSTOM_BINDINGS_H_ diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc index d52d1505c06b..edd4e40360dc 100644 --- a/extensions/renderer/dispatcher.cc +++ b/extensions/renderer/dispatcher.cc @@ -41,6 +41,7 @@ #include "extensions/renderer/api_activity_logger.h" #include "extensions/renderer/api_definitions_natives.h" #include "extensions/renderer/app_runtime_custom_bindings.h" +#include "extensions/renderer/app_window_custom_bindings.h" #include "extensions/renderer/binding_generating_native_handler.h" #include "extensions/renderer/blob_native_handler.h" #include "extensions/renderer/content_watcher.h" @@ -501,6 +502,8 @@ std::vector > Dispatcher::GetJsResources() { // Custom bindings. resources.push_back( std::make_pair("app.runtime", IDR_APP_RUNTIME_CUSTOM_BINDINGS_JS)); + resources.push_back( + std::make_pair("app.window", IDR_APP_WINDOW_CUSTOM_BINDINGS_JS)); resources.push_back( std::make_pair("contextMenus", IDR_CONTEXT_MENUS_CUSTOM_BINDINGS_JS)); resources.push_back( @@ -510,6 +513,7 @@ std::vector > Dispatcher::GetJsResources() { std::make_pair("permissions", IDR_PERMISSIONS_CUSTOM_BINDINGS_JS)); resources.push_back( std::make_pair("runtime", IDR_RUNTIME_CUSTOM_BINDINGS_JS)); + resources.push_back(std::make_pair("windowControls", IDR_WINDOW_CONTROLS_JS)); resources.push_back(std::make_pair("binding", IDR_BINDING_JS)); // Custom types sources. @@ -584,6 +588,10 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, module_system->RegisterNativeHandler( "app_runtime", scoped_ptr(new AppRuntimeCustomBindings(context))); + module_system->RegisterNativeHandler( + "app_window_natives", + scoped_ptr( + new AppWindowCustomBindings(dispatcher, context))); module_system->RegisterNativeHandler( "blob_natives", scoped_ptr(new BlobNativeHandler(context))); diff --git a/chrome/renderer/resources/extensions/app_window_custom_bindings.js b/extensions/renderer/resources/app_window_custom_bindings.js similarity index 100% rename from chrome/renderer/resources/extensions/app_window_custom_bindings.js rename to extensions/renderer/resources/app_window_custom_bindings.js diff --git a/extensions/renderer/resources/extensions_renderer_resources.grd b/extensions/renderer/resources/extensions_renderer_resources.grd index 6fbb6d593444..ca31fbac02a3 100644 --- a/extensions/renderer/resources/extensions_renderer_resources.grd +++ b/extensions/renderer/resources/extensions_renderer_resources.grd @@ -34,12 +34,15 @@ + + + diff --git a/chrome/renderer/resources/extensions/window_controls.js b/extensions/renderer/resources/window_controls.js similarity index 100% rename from chrome/renderer/resources/extensions/window_controls.js rename to extensions/renderer/resources/window_controls.js diff --git a/chrome/renderer/resources/extensions/window_controls_template.html b/extensions/renderer/resources/window_controls_template.html similarity index 100% rename from chrome/renderer/resources/extensions/window_controls_template.html rename to extensions/renderer/resources/window_controls_template.html diff --git a/extensions/shell/app_shell.gyp b/extensions/shell/app_shell.gyp index f008b4ded2b0..0eeb39243b57 100644 --- a/extensions/shell/app_shell.gyp +++ b/extensions/shell/app_shell.gyp @@ -94,6 +94,7 @@ 'browser/shell_runtime_api_delegate.h', 'browser/shell_special_storage_policy.cc', 'browser/shell_special_storage_policy.h', + 'browser/shell_web_contents_modal_dialog_manager.cc', 'common/shell_content_client.cc', 'common/shell_content_client.h', 'common/shell_extensions_client.cc', diff --git a/extensions/shell/browser/DEPS b/extensions/shell/browser/DEPS index bf7784a6f0d6..25193263de09 100644 --- a/extensions/shell/browser/DEPS +++ b/extensions/shell/browser/DEPS @@ -6,6 +6,7 @@ include_rules = [ "+components/omaha_query_params", "+components/pref_registry", "+components/user_prefs", + "+components/web_modal", "+content/public/browser", # Pieces of content_shell reused in app_shell. diff --git a/extensions/shell/browser/shell_web_contents_modal_dialog_manager.cc b/extensions/shell/browser/shell_web_contents_modal_dialog_manager.cc new file mode 100644 index 000000000000..32d44fb6707a --- /dev/null +++ b/extensions/shell/browser/shell_web_contents_modal_dialog_manager.cc @@ -0,0 +1,18 @@ +// 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. + +#include "components/web_modal/web_contents_modal_dialog_manager.h" + +namespace web_modal { + +SingleWebContentsDialogManager* +WebContentsModalDialogManager::CreateNativeWebModalManager( + NativeWebContentsModalDialog dialog, + SingleWebContentsDialogManagerDelegate* native_delegate) { + // TODO(oshima): Investigate if we need to implement this. + NOTREACHED(); + return NULL; +} + +} // namespace web_modal