diff options
14 files changed, 67 insertions, 25 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 6bee2ed..a0c53682 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -3710,9 +3710,6 @@ Make sure you do not expose any sensitive information. <message name="IDS_TASK_MANAGER_GPU_PREFIX" desc="Task Manager row for the GPU process, which is the process doing all accelerated graphics rendering"> GPU Process </message> - <message name="IDS_TASK_MANAGER_WEBVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in webview tag in the Task Manager"> - Webview: <ph name="WEBVIEW_TAG_NAME">$1<ex>Google</ex></ph> - </message> <message name="IDS_TASK_MANAGER_PRINT_PREFIX" desc="The prefix for a print preview process row in the Task Manager"> Print: <ph name="PRINT_NAME">$1<ex>Google Maps</ex></ph> </message> diff --git a/chrome/browser/guest_view/extension_options/DEPS b/chrome/browser/guest_view/extension_options/DEPS new file mode 100644 index 0000000..de9193f --- /dev/null +++ b/chrome/browser/guest_view/extension_options/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + "+extensions/strings/grit/extensions_strings.h" +] diff --git a/chrome/browser/guest_view/extension_options/extension_options_guest.cc b/chrome/browser/guest_view/extension_options/extension_options_guest.cc index 1e1866b..2aa0d0f 100644 --- a/chrome/browser/guest_view/extension_options/extension_options_guest.cc +++ b/chrome/browser/guest_view/extension_options/extension_options_guest.cc @@ -26,6 +26,7 @@ #include "extensions/common/extension_messages.h" #include "extensions/common/feature_switch.h" #include "extensions/common/permissions/permissions_data.h" +#include "extensions/strings/grit/extensions_strings.h" #include "ipc/ipc_message_macros.h" using content::WebContents; @@ -43,10 +44,6 @@ ExtensionOptionsGuest::ExtensionOptionsGuest( ExtensionOptionsGuest::~ExtensionOptionsGuest() { } -const char* ExtensionOptionsGuest::GetAPINamespace() { - return extensionoptions::kAPINamespace; -} - // static extensions::GuestViewBase* ExtensionOptionsGuest::Create( content::BrowserContext* browser_context, @@ -128,6 +125,14 @@ void ExtensionOptionsGuest::DidStopLoading() { args.Pass())); } +const char* ExtensionOptionsGuest::GetAPINamespace() const { + return extensionoptions::kAPINamespace; +} + +int ExtensionOptionsGuest::GetTaskPrefix() const { + return IDS_EXTENSION_TASK_MANAGER_EXTENSIONOPTIONS_TAG_PREFIX; +} + content::WebContents* ExtensionOptionsGuest::GetAssociatedWebContents() const { return guest_web_contents(); } diff --git a/chrome/browser/guest_view/extension_options/extension_options_guest.h b/chrome/browser/guest_view/extension_options/extension_options_guest.h index 30ce089..73f0384 100644 --- a/chrome/browser/guest_view/extension_options/extension_options_guest.h +++ b/chrome/browser/guest_view/extension_options/extension_options_guest.h @@ -23,7 +23,6 @@ class ExtensionOptionsGuest content::BrowserContext* browser_context, int guest_instance_id); // GuestViewBase implementation. - virtual const char* GetAPINamespace() OVERRIDE; virtual void CreateWebContents( const std::string& embedder_extension_id, int embedder_render_process_id, @@ -32,6 +31,8 @@ class ExtensionOptionsGuest virtual void DidAttachToEmbedder() OVERRIDE; virtual void DidInitialize() OVERRIDE; virtual void DidStopLoading() OVERRIDE; + virtual const char* GetAPINamespace() const OVERRIDE; + virtual int GetTaskPrefix() const OVERRIDE; virtual void GuestSizeChangedDueToAutoSize( const gfx::Size& old_size, const gfx::Size& new_size) OVERRIDE; diff --git a/chrome/browser/task_manager/DEPS b/chrome/browser/task_manager/DEPS new file mode 100644 index 0000000..de9193f --- /dev/null +++ b/chrome/browser/task_manager/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + "+extensions/strings/grit/extensions_strings.h" +] diff --git a/chrome/browser/task_manager/guest_information.cc b/chrome/browser/task_manager/guest_information.cc index 1315035..4d3ccac 100644 --- a/chrome/browser/task_manager/guest_information.cc +++ b/chrome/browser/task_manager/guest_information.cc @@ -20,6 +20,8 @@ #include "content/public/browser/render_widget_host_iterator.h" #include "content/public/browser/site_instance.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/guest_view/guest_view_base.h" +#include "extensions/strings/grit/extensions_strings.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_skia.h" @@ -62,12 +64,15 @@ Resource::Type GuestResource::GetType() const { base::string16 GuestResource::GetTitle() const { WebContents* web_contents = GetWebContents(); - const int message_id = IDS_TASK_MANAGER_WEBVIEW_TAG_PREFIX; - if (web_contents) { - base::string16 title = util::GetTitleFromWebContents(web_contents); - return l10n_util::GetStringFUTF16(message_id, title); + if (!web_contents) { + const int message_id = IDS_EXTENSION_TASK_MANAGER_WEBVIEW_TAG_PREFIX; + return l10n_util::GetStringFUTF16(message_id, base::string16()); } - return l10n_util::GetStringFUTF16(message_id, base::string16()); + extensions::GuestViewBase* guest = + extensions::GuestViewBase::FromWebContents(web_contents); + return l10n_util::GetStringFUTF16( + guest->GetTaskPrefix(), + util::GetTitleFromWebContents(web_contents)); } gfx::ImageSkia GuestResource::GetIcon() const { @@ -93,7 +98,7 @@ GuestInformation::~GuestInformation() {} bool GuestInformation::CheckOwnership(WebContents* web_contents) { // Guest WebContentses are created and owned internally by the content layer. - return web_contents->IsSubframe(); + return extensions::GuestViewBase::IsGuest(web_contents); } void GuestInformation::GetAll(const NewWebContentsCallback& callback) { @@ -103,7 +108,7 @@ void GuestInformation::GetAll(const NewWebContentsCallback& callback) { if (widget->IsRenderView()) { content::RenderViewHost* rvh = content::RenderViewHost::From(widget); WebContents* web_contents = WebContents::FromRenderViewHost(rvh); - if (web_contents && web_contents->IsSubframe()) + if (web_contents && extensions::GuestViewBase::IsGuest(web_contents)) callback.Run(web_contents); } } diff --git a/chrome/browser/task_manager/task_manager_browsertest_util.cc b/chrome/browser/task_manager/task_manager_browsertest_util.cc index 9b9220e..c3b1324 100644 --- a/chrome/browser/task_manager/task_manager_browsertest_util.cc +++ b/chrome/browser/task_manager/task_manager_browsertest_util.cc @@ -16,6 +16,7 @@ #include "chrome/browser/task_manager/resource_provider.h" #include "chrome/browser/task_manager/task_manager.h" #include "chrome/grit/generated_resources.h" +#include "extensions/strings/grit/extensions_strings.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/l10n/l10n_util.h" @@ -170,8 +171,9 @@ base::string16 MatchApp(const char* title) { base::string16 MatchAnyApp() { return MatchApp("*"); } base::string16 MatchWebView(const char* title) { - return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_WEBVIEW_TAG_PREFIX, - base::ASCIIToUTF16(title)); + return l10n_util::GetStringFUTF16( + IDS_EXTENSION_TASK_MANAGER_WEBVIEW_TAG_PREFIX, + base::ASCIIToUTF16(title)); } base::string16 MatchAnyWebView() { return MatchWebView("*"); } diff --git a/extensions/browser/guest_view/app_view/app_view_guest.cc b/extensions/browser/guest_view/app_view/app_view_guest.cc index f0ed485..7232583 100644 --- a/extensions/browser/guest_view/app_view/app_view_guest.cc +++ b/extensions/browser/guest_view/app_view/app_view_guest.cc @@ -21,6 +21,7 @@ #include "extensions/common/api/app_runtime.h" #include "extensions/common/extension_messages.h" #include "extensions/common/switches.h" +#include "extensions/strings/grit/extensions_strings.h" #include "ipc/ipc_message_macros.h" namespace app_runtime = extensions::core_api::app_runtime; @@ -132,10 +133,14 @@ bool AppViewGuest::HandleContextMenu(const content::ContextMenuParams& params) { return false; } -const char* AppViewGuest::GetAPINamespace() { +const char* AppViewGuest::GetAPINamespace() const { return appview::kEmbedderAPINamespace; } +int AppViewGuest::GetTaskPrefix() const { + return IDS_EXTENSION_TASK_MANAGER_APPVIEW_TAG_PREFIX; +} + void AppViewGuest::CreateWebContents( const std::string& embedder_extension_id, int embedder_render_process_id, diff --git a/extensions/browser/guest_view/app_view/app_view_guest.h b/extensions/browser/guest_view/app_view/app_view_guest.h index 290c0c3..bfe84fdb 100644 --- a/extensions/browser/guest_view/app_view/app_view_guest.h +++ b/extensions/browser/guest_view/app_view/app_view_guest.h @@ -46,7 +46,8 @@ class AppViewGuest : public GuestView<AppViewGuest>, const content::ContextMenuParams& params) OVERRIDE; // GuestViewBase implementation. - virtual const char* GetAPINamespace() OVERRIDE; + virtual const char* GetAPINamespace() const OVERRIDE; + virtual int GetTaskPrefix() const OVERRIDE; virtual void CreateWebContents( const std::string& embedder_extension_id, int embedder_render_process_id, diff --git a/extensions/browser/guest_view/guest_view_base.h b/extensions/browser/guest_view/guest_view_base.h index 8ce638c..0517944 100644 --- a/extensions/browser/guest_view/guest_view_base.h +++ b/extensions/browser/guest_view/guest_view_base.h @@ -145,7 +145,12 @@ class GuestViewBase : public content::BrowserPluginGuestDelegate, // // This should be the name of the API as it appears in the _api_features.json // file. - virtual const char* GetAPINamespace() = 0; + virtual const char* GetAPINamespace() const = 0; + + // This method is to be implemented by the derived class. This method is the + // task prefix to show for a task produced by this GuestViewBase's derived + // type. + virtual int GetTaskPrefix() const = 0; // This method is to be implemented by the derived class. Given a set of // initialization parameters, a concrete subclass of GuestViewBase can 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 76c353c..2276835 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.cc +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc @@ -39,6 +39,7 @@ #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" #include "extensions/common/constants.h" #include "extensions/common/extension_messages.h" +#include "extensions/strings/grit/extensions_strings.h" #include "ipc/ipc_message_macros.h" #include "net/base/escape.h" #include "net/base/net_errors.h" @@ -172,10 +173,14 @@ int WebViewGuest::GetViewInstanceId(WebContents* contents) { return guest->view_instance_id(); } -const char* WebViewGuest::GetAPINamespace() { +const char* WebViewGuest::GetAPINamespace() const { return webview::kAPINamespace; } +int WebViewGuest::GetTaskPrefix() const { + return IDS_EXTENSION_TASK_MANAGER_WEBVIEW_TAG_PREFIX; +} + void WebViewGuest::CreateWebContents( const std::string& embedder_extension_id, int embedder_render_process_id, 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 2e08ee3..28e9e88 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.h +++ b/extensions/browser/guest_view/web_view/web_view_guest.h @@ -74,7 +74,8 @@ class WebViewGuest : public GuestView<WebViewGuest>, void SetZoom(double zoom_factor); // GuestViewBase implementation. - virtual const char* GetAPINamespace() OVERRIDE; + virtual const char* GetAPINamespace() const OVERRIDE; + virtual int GetTaskPrefix() const OVERRIDE; virtual void CreateWebContents( const std::string& embedder_extension_id, int embedder_render_process_id, diff --git a/extensions/browser/guest_view/web_view/web_view_guest_delegate.h b/extensions/browser/guest_view/web_view/web_view_guest_delegate.h index 5a5caee..f2f087d 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest_delegate.h +++ b/extensions/browser/guest_view/web_view/web_view_guest_delegate.h @@ -14,7 +14,7 @@ struct WebFindOptions; namespace content { class RenderViewHost; class WebContents; -} +} // namespace content namespace extensions { @@ -22,7 +22,8 @@ class WebViewGuest; class WebViewInternalFindFunction; namespace api { -namespace web_view_internal{ +namespace web_view_internal { + struct ContextMenuItem; } // namespace web_view_internal } // namespace api diff --git a/extensions/extensions_strings.grd b/extensions/extensions_strings.grd index 8851545..3b3d1ce 100644 --- a/extensions/extensions_strings.grd +++ b/extensions/extensions_strings.grd @@ -297,7 +297,15 @@ <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_MISSING_VENDOR" desc="Permission string for access to a specific USB device when a vendor name cannot be established for a USB device."> Access the USB device </message> - + <message name="IDS_EXTENSION_TASK_MANAGER_APPVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in an appview tag in the Task Manager"> + Appview: <ph name="APPVIEW_TAG_NAME">$1<ex>Google Hangouts</ex></ph> + </message> + <message name="IDS_EXTENSION_TASK_MANAGER_EXTENSIONOPTIONS_TAG_PREFIX" desc="The prefix for a guest page loaded in an extensionoptions tag in the Task Manager"> + Options: <ph name="EXTENSIONOPTIONS_TAG_NAME">$1<ex>Google Hangouts</ex></ph> + </message> + <message name="IDS_EXTENSION_TASK_MANAGER_WEBVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in a webview tag in the Task Manager"> + Webview: <ph name="WEBVIEW_TAG_NAME">$1<ex>Google</ex></ph> + </message> </messages> </release> </grit> |