| Index: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java | 
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java | 
| index dbe631dda10b1e9ccec1db4dbea30d13b5186ee1..91a7fc67da6c6b75eb0fe2becb9be391de910b80 100644 | 
| --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java | 
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java | 
| @@ -4,8 +4,9 @@ | 
|  | 
| package org.chromium.chrome.browser.contextmenu; | 
|  | 
| -import android.content.Context; | 
| +import android.app.Activity; | 
| import android.graphics.drawable.Drawable; | 
| +import android.util.Pair; | 
| import android.view.LayoutInflater; | 
| import android.view.View; | 
| import android.view.ViewGroup; | 
| @@ -14,6 +15,7 @@ import android.widget.ImageView; | 
| import android.widget.TextView; | 
|  | 
| import org.chromium.chrome.R; | 
| +import org.chromium.chrome.browser.share.ShareHelper; | 
|  | 
| import java.util.List; | 
|  | 
| @@ -23,16 +25,20 @@ import java.util.List; | 
| */ | 
| class TabularContextMenuListAdapter extends BaseAdapter { | 
| private final List<ContextMenuItem> mMenuItems; | 
| -    private final Context mContext; | 
| +    private final Activity mActivity; | 
| +    private final ContextMenuHelper mContextMenuHelper; | 
|  | 
| /** | 
| * Adapter for the tabular context menu UI | 
| * @param menuItems The list of items to display in the view. | 
| -     * @param context Used to inflate the layout. | 
| +     * @param activity Used to inflate the layout. | 
| +     * @param contextMenuHelper Used to directly share an image through an icon. | 
| */ | 
| -    TabularContextMenuListAdapter(List<ContextMenuItem> menuItems, Context context) { | 
| +    TabularContextMenuListAdapter(List<ContextMenuItem> menuItems, Activity activity, | 
| +            ContextMenuHelper contextMenuHelper) { | 
| mMenuItems = menuItems; | 
| -        mContext = context; | 
| +        mActivity = activity; | 
| +        mContextMenuHelper = contextMenuHelper; | 
| } | 
|  | 
| @Override | 
| @@ -56,28 +62,51 @@ class TabularContextMenuListAdapter extends BaseAdapter { | 
| ViewHolderItem viewHolder; | 
|  | 
| if (convertView == null) { | 
| -            LayoutInflater inflater = LayoutInflater.from(mContext); | 
| +            LayoutInflater inflater = LayoutInflater.from(mActivity); | 
| convertView = inflater.inflate(R.layout.tabular_context_menu_row, null); | 
|  | 
| viewHolder = new ViewHolderItem(); | 
| viewHolder.mIcon = (ImageView) convertView.findViewById(R.id.context_menu_icon); | 
| viewHolder.mText = (TextView) convertView.findViewById(R.id.context_text); | 
| +            viewHolder.mShareIcon = | 
| +                    (ImageView) convertView.findViewById(R.id.context_menu_share_icon); | 
|  | 
| convertView.setTag(viewHolder); | 
| } else { | 
| viewHolder = (ViewHolderItem) convertView.getTag(); | 
| } | 
|  | 
| -        viewHolder.mText.setText(menuItem.getString(mContext)); | 
| -        Drawable icon = menuItem.getDrawableAndDescription(mContext); | 
| +        viewHolder.mText.setText(menuItem.getString(mActivity)); | 
| +        Drawable icon = menuItem.getDrawableAndDescription(mActivity); | 
| viewHolder.mIcon.setImageDrawable(icon); | 
| viewHolder.mIcon.setVisibility(icon != null ? View.VISIBLE : View.INVISIBLE); | 
|  | 
| +        if (menuItem == ContextMenuItem.SHARE_IMAGE) { | 
| +            final Pair<Drawable, CharSequence> shareInfo = | 
| +                    ShareHelper.getShareableIconAndName(mActivity); | 
| +            if (shareInfo.first != null) { | 
| +                viewHolder.mShareIcon.setImageDrawable(shareInfo.first); | 
| +                viewHolder.mShareIcon.setVisibility(View.VISIBLE); | 
| +                viewHolder.mShareIcon.setContentDescription(mActivity.getString( | 
| +                        R.string.accessibility_menu_share_via, shareInfo.second)); | 
| +                viewHolder.mShareIcon.setOnClickListener(new View.OnClickListener() { | 
| +                    @Override | 
| +                    public void onClick(View view) { | 
| +                        mContextMenuHelper.shareImageDirectly( | 
| +                                ShareHelper.getLastShareComponentName()); | 
| +                    } | 
| +                }); | 
| +            } | 
| +        } else { | 
| +            viewHolder.mShareIcon.setVisibility(View.GONE); | 
| +        } | 
| + | 
| return convertView; | 
| } | 
|  | 
| private static class ViewHolderItem { | 
| ImageView mIcon; | 
| TextView mText; | 
| +        ImageView mShareIcon; | 
| } | 
| } | 
|  |