diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-07-14 17:41:05 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-08-04 12:37:36 +0000 |
commit | 399c965b6064c440ddcf4015f5f8e9d131c7a0a6 (patch) | |
tree | 6b06b60ff365abef0e13b3503d593a0df48d20e8 /chromium/components/renderer_context_menu | |
parent | 7366110654eec46f21b6824f302356426f48cd74 (diff) | |
download | qtwebengine-chromium-399c965b6064c440ddcf4015f5f8e9d131c7a0a6.tar.gz |
BASELINE: Update Chromium to 52.0.2743.76 and Ninja to 1.7.1
Change-Id: I382f51b959689505a60f8b707255ecb344f7d8b4
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/components/renderer_context_menu')
7 files changed, 59 insertions, 15 deletions
diff --git a/chromium/components/renderer_context_menu/context_menu_delegate.h b/chromium/components/renderer_context_menu/context_menu_delegate.h index 9ce0495b367..bbb5c2579af 100644 --- a/chromium/components/renderer_context_menu/context_menu_delegate.h +++ b/chromium/components/renderer_context_menu/context_menu_delegate.h @@ -5,8 +5,9 @@ #ifndef COMPONENTS_RENDERER_CONTEXT_MENU_CONTEXT_MENU_DELEGATE_H_ #define COMPONENTS_RENDERER_CONTEXT_MENU_CONTEXT_MENU_DELEGATE_H_ +#include <memory> + #include "base/macros.h" -#include "base/memory/scoped_ptr.h" class RenderViewContextMenuBase; @@ -26,12 +27,12 @@ class ContextMenuDelegate { // Builds and returns a context menu for a context specified by |params|. // The returned value can be used to display the context menu. - virtual scoped_ptr<RenderViewContextMenuBase> BuildMenu( + virtual std::unique_ptr<RenderViewContextMenuBase> BuildMenu( content::WebContents* web_contents, const content::ContextMenuParams& params) = 0; // Displays the context menu. - virtual void ShowMenu(scoped_ptr<RenderViewContextMenuBase> menu) = 0; + virtual void ShowMenu(std::unique_ptr<RenderViewContextMenuBase> menu) = 0; private: DISALLOW_COPY_AND_ASSIGN(ContextMenuDelegate); diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_base.cc b/chromium/components/renderer_context_menu/render_view_context_menu_base.cc index 39d94380bae..9965772e416 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_base.cc +++ b/chromium/components/renderer_context_menu/render_view_context_menu_base.cc @@ -6,6 +6,7 @@ #include <algorithm> #include <utility> +#include <vector> #include "base/command_line.h" #include "base/logging.h" @@ -229,6 +230,14 @@ void RenderViewContextMenuBase::UpdateMenuItem(int command_id, } } +void RenderViewContextMenuBase::UpdateMenuIcon(int command_id, + const gfx::Image& image) { +#if defined(OS_CHROMEOS) + if (toolkit_delegate_) + toolkit_delegate_->UpdateMenuIcon(command_id, image); +#endif +} + RenderViewHost* RenderViewContextMenuBase::GetRenderViewHost() const { return source_web_contents_->GetRenderViewHost(); } @@ -403,4 +412,3 @@ bool RenderViewContextMenuBase::IsCustomItemChecked(int id) const { bool RenderViewContextMenuBase::IsCustomItemEnabled(int id) const { return IsCustomItemEnabledInternal(params_.custom_items, id); } - diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_base.h b/chromium/components/renderer_context_menu/render_view_context_menu_base.h index 1b0d83921fc..1249f7a854d 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_base.h +++ b/chromium/components/renderer_context_menu/render_view_context_menu_base.h @@ -6,12 +6,13 @@ #define COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_BASE_H_ #include <stddef.h> + #include <map> +#include <memory> #include <string> #include <utility> #include "base/macros.h" -#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_vector.h" #include "base/observer_list.h" #include "base/strings/string16.h" @@ -55,6 +56,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, bool enabled, bool hidden, const base::string16& title) = 0; +#if defined(OS_CHROMEOS) + virtual void UpdateMenuIcon(int command_id, const gfx::Image& image) = 0; +#endif }; static const size_t kMaxSelectionTextLength; @@ -108,6 +112,7 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, bool enabled, bool hidden, const base::string16& title) override; + void UpdateMenuIcon(int command_id, const gfx::Image& image) override; content::RenderViewHost* GetRenderViewHost() const override; content::WebContents* GetWebContents() const override; content::BrowserContext* GetBrowserContext() const override; @@ -120,7 +125,7 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, content_type_.reset(content_type); } - void set_toolkit_delegate(scoped_ptr<ToolkitDelegate> delegate) { + void set_toolkit_delegate(std::unique_ptr<ToolkitDelegate> delegate) { toolkit_delegate_ = std::move(delegate); } @@ -188,7 +193,7 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, // should be notified of menu closing without execution. bool command_executed_; - scoped_ptr<ContextMenuContentType> content_type_; + std::unique_ptr<ContextMenuContentType> content_type_; private: bool AppendCustomItems(); @@ -196,7 +201,7 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, // The RenderFrameHost's IDs. const int render_process_id_; - scoped_ptr<ToolkitDelegate> toolkit_delegate_; + std::unique_ptr<ToolkitDelegate> toolkit_delegate_; ScopedVector<ui::SimpleMenuModel> custom_submenus_; diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_observer.h b/chromium/components/renderer_context_menu/render_view_context_menu_observer.h index 586f978663a..ccd052bf58c 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_observer.h +++ b/chromium/components/renderer_context_menu/render_view_context_menu_observer.h @@ -59,12 +59,13 @@ struct ContextMenuParams; // } // // 4. Add this observer class to the RenderViewContextMenu class. (It is good -// to use scoped_ptr<> so Chrome can create its instances only when it needs.) +// to use std::unique_ptr<> so Chrome can create its instances only when it +// needs.) // // class RenderViewContextMenu { // ... // private: -// scoped_ptr<MyMenuObserver> my_menu_observer_; +// std::unique_ptr<MyMenuObserver> my_menu_observer_; // }; // // 5. Create its instance in InitMenu() and add it to the observer list of the diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h b/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h index 38d08e5adef..0ec293f6e38 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h +++ b/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h @@ -13,6 +13,10 @@ class RenderViewHost; class WebContents; } +namespace gfx { +class Image; +} + namespace ui { class MenuModel; } @@ -90,6 +94,9 @@ class RenderViewContextMenuProxy { bool hidden, const base::string16& title) = 0; + // Update the icon of the specified context-menu item. + virtual void UpdateMenuIcon(int command_id, const gfx::Image& image) = 0; + // Add spell check service item to the context menu. virtual void AddSpellCheckServiceItem(bool is_checked) = 0; diff --git a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc index 8dcaaf9267f..6cb0f189917 100644 --- a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc +++ b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc @@ -5,6 +5,7 @@ #include "components/renderer_context_menu/views/toolkit_delegate_views.h" #include "ui/gfx/geometry/rect.h" +#include "ui/gfx/image/image.h" #include "ui/views/controls/menu/menu_item_view.h" #include "ui/views/controls/menu/menu_model_adapter.h" #include "ui/views/controls/menu/menu_runner.h" @@ -57,3 +58,19 @@ void ToolkitDelegateViews::UpdateMenuItem(int command_id, parent->ChildrenChanged(); } +#if defined(OS_CHROMEOS) +void ToolkitDelegateViews::UpdateMenuIcon(int command_id, + const gfx::Image& image) { + views::MenuItemView* item = menu_view_->GetMenuItemByID(command_id); + if (!item) + return; + + item->SetIcon(*image.ToImageSkia()); + + views::MenuItemView* parent = item->GetParentMenuItem(); + if (!parent) + return; + + parent->ChildrenChanged(); +} +#endif diff --git a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h index b570958ff49..9ee4d0f86cd 100644 --- a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h +++ b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h @@ -2,8 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_TOOLKIT_DELEGATE_VIEWS_H_ -#define COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_TOOLKIT_DELEGATE_VIEWS_H_ +#ifndef COMPONENTS_RENDERER_CONTEXT_MENU_VIEWS_TOOLKIT_DELEGATE_VIEWS_H_ +#define COMPONENTS_RENDERER_CONTEXT_MENU_VIEWS_TOOLKIT_DELEGATE_VIEWS_H_ + +#include <memory> #include "base/macros.h" #include "components/renderer_context_menu/render_view_context_menu_base.h" @@ -41,9 +43,12 @@ class ToolkitDelegateViews : public RenderViewContextMenuBase::ToolkitDelegate { bool enabled, bool hidden, const base::string16& title) override; +#if defined(OS_CHROMEOS) + void UpdateMenuIcon(int command_id, const gfx::Image& image) override; +#endif - scoped_ptr<views::MenuModelAdapter> menu_adapter_; - scoped_ptr<views::MenuRunner> menu_runner_; + std::unique_ptr<views::MenuModelAdapter> menu_adapter_; + std::unique_ptr<views::MenuRunner> menu_runner_; // Weak. Owned by menu_runner_; views::MenuItemView* menu_view_; @@ -51,4 +56,4 @@ class ToolkitDelegateViews : public RenderViewContextMenuBase::ToolkitDelegate { DISALLOW_COPY_AND_ASSIGN(ToolkitDelegateViews); }; -#endif // COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_TOOLKIT_DELEGATE_VIEWS_H_ +#endif // COMPONENTS_RENDERER_CONTEXT_MENU_VIEWS_TOOLKIT_DELEGATE_VIEWS_H_ |