15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_COCOA_LOCATION_BAR_LOCATION_BAR_VIEW_MAC_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_COCOA_LOCATION_BAR_LOCATION_BAR_VIEW_MAC_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#import <Cocoa/Cocoa.h> 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_vector.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/weak_ptr.h" 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_member.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/omnibox/location_bar.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/omnibox/omnibox_edit_controller.h" 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/browser/ui/search/search_model_observer.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/content_settings_types.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@class AutocompleteTextField; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CommandUpdater; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ContentSettingDecoration; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class EVBubbleDecoration; 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class GeneratedCreditCardDecoration; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class KeywordHintDecoration; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LocationBarDecoration; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LocationIconDecoration; 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class MicSearchDecoration; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PageActionDecoration; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Profile; 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class SearchButtonDecoration; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SelectedKeywordDecoration; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class StarDecoration; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ZoomDecoration; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ZoomDecorationTest; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A C++ bridge class that represents the location bar UI element to 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the portable code. Wires up an OmniboxViewMac instance to 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the location bar text field, which handles most of the work. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LocationBarViewMac : public LocationBar, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public LocationBarTesting, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public OmniboxEditController, 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public content::NotificationObserver, 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public SearchModelObserver { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocationBarViewMac(AutocompleteTextField* field, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommandUpdater* command_updater, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Browser* browser); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~LocationBarViewMac(); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Overridden from LocationBar: 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowFirstRunBubble() OVERRIDE; 584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual GURL GetDestinationURL() const OVERRIDE; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual content::PageTransition GetPageTransition() const OVERRIDE; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void AcceptInput() OVERRIDE; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void FocusLocation(bool select_all) OVERRIDE; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void FocusSearch() OVERRIDE; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void UpdateContentSettingsIcons() OVERRIDE; 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void UpdateManagePasswordsIconAndBubble() OVERRIDE {}; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void UpdatePageActions() OVERRIDE; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void InvalidatePageActions() OVERRIDE; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE; 69ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual void UpdateGeneratedCreditCardView() OVERRIDE; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Revert() OVERRIDE; 72f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual const OmniboxView* GetOmniboxView() const OVERRIDE; 73f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual OmniboxView* GetOmniboxView() OVERRIDE; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual LocationBarTesting* GetLocationBarForTesting() OVERRIDE; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Overridden from LocationBarTesting: 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int PageActionCount() OVERRIDE; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int PageActionVisibleCount() OVERRIDE; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ExtensionAction* GetPageAction(size_t index) OVERRIDE; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ExtensionAction* GetVisiblePageAction(size_t index) OVERRIDE; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void TestPageActionPressed(size_t index) OVERRIDE; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetBookmarkStarVisibility() OVERRIDE; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Set/Get the editable state of the field. 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetEditable(bool editable); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsEditable(); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Set the starred state of the bookmark star. 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetStarred(bool starred); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Happens when the zoom changes for the active tab. |can_show_bubble| is 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // false when the change in zoom for the active tab wasn't an explicit user 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // action (e.g. switching tabs, creating a new tab, creating a new browser). 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Additionally, |can_show_bubble| will only be true when the bubble wouldn't 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be obscured by other UI (wrench menu) or redundant (+/- from wrench). 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ZoomChangedForActiveTab(bool can_show_bubble); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the point in window coordinates on the star for the bookmark bubble to 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // aim at. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NSPoint GetBookmarkBubblePoint() const; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the point in window coordinates in the security icon at which the page 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // info bubble aims. 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NSPoint GetPageInfoBubblePoint() const; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 106f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Get the point in window coordinates in the "generated cc" icon at which the 107f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // corresponding info bubble aims. 108f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NSPoint GetGeneratedCreditCardBubblePoint() const; 109f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // When any image decorations change, call this to ensure everything is 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // redrawn and laid out if necessary. 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDecorationsChanged(); 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Layout the various decorations which live in the field. 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void Layout(); 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Re-draws |decoration| if it's already being displayed. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RedrawDecoration(LocationBarDecoration* decoration); 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sets preview_enabled_ for the PageActionImageView associated with this 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |page_action|. If |preview_enabled|, the location bar will display the 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // PageAction icon even if it has not been activated by the extension. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This is used by the ExtensionInstalledBubble to preview what the icon 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // will look like for the user upon installation of the extension. 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetPreviewEnabledPageAction(ExtensionAction* page_action, 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool preview_enabled); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieve the frame for the given |page_action|. 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NSRect GetPageActionFrame(ExtensionAction* page_action); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Return |page_action|'s info-bubble point in window coordinates. 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This function should always be called with a visible page action. 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If |page_action| is not a page action or not visible, NOTREACHED() 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is called and this function returns |NSZeroPoint|. 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NSPoint GetPageActionBubblePoint(ExtensionAction* page_action); 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // OmniboxEditController: 1384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void Update(const content::WebContents* contents) OVERRIDE; 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnChanged() OVERRIDE; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnSetFocus() OVERRIDE; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual InstantController* GetInstant() OVERRIDE; 1423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual content::WebContents* GetWebContents() OVERRIDE; 1433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual ToolbarModel* GetToolbarModel() OVERRIDE; 1443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual const ToolbarModel* GetToolbarModel() const OVERRIDE; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 146a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NSImage* GetKeywordImage(const base::string16& keyword); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AutocompleteTextField* GetAutocompleteTextField() { return field_; } 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // content::NotificationObserver: 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Observe(int type, 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const content::NotificationSource& source, 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const content::NotificationDetails& details) OVERRIDE; 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // SearchModelObserver: 1573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void ModelChanged(const SearchModel::State& old_state, 1583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const SearchModel::State& new_state) OVERRIDE; 1593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Browser* browser() const { return browser_; } 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) friend ZoomDecorationTest; 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Posts |notification| to the default notification center. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PostNotification(NSString* notification); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Return the decoration for |page_action|. 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageActionDecoration* GetPageActionDecoration(ExtensionAction* page_action); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clear the page-action decorations. 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void DeletePageActionDecorations(); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnEditBookmarksEnabledChanged(); 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Re-generate the page-action decorations from the profile's 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // extension service. 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RefreshPageActionDecorations(); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Updates visibility of the content settings icons based on the current 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // tab contents state. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool RefreshContentSettingsDecorations(); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ShowFirstRunBubbleInternal(); 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Checks if the bookmark star should be enabled or not. 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsStarEnabled(); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Updates the zoom decoration in the omnibox with the current zoom level. 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateZoomDecoration(); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Ensures the star decoration is visible or hidden, as required. 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateStarDecorationVisibility(); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1953551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Updates the voice search decoration. Returns true if the visible state was 1963551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // changed. 1973551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) bool UpdateMicSearchDecorationVisibility(); 1983551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 199d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) // Checks if an extension has specified the bookmark star be hidden. 200d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) bool IsBookmarkStarHiddenByExtension(); 201d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<OmniboxViewMac> omnibox_view_; 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AutocompleteTextField* field_; // owned by tab controller 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A decoration that shows an icon to the left of the address. 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<LocationIconDecoration> location_icon_decoration_; 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A decoration that shows the keyword-search bubble on the left. 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<SelectedKeywordDecoration> selected_keyword_decoration_; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A decoration that shows a lock icon and ev-cert label in a bubble 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // on the left. 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<EVBubbleDecoration> ev_bubble_decoration_; 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bookmark star right of page actions. 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<StarDecoration> star_decoration_; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A zoom icon at the end of the omnibox, which shows at non-standard zoom 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // levels. 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ZoomDecoration> zoom_decoration_; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The installed page actions. 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<ExtensionAction*> page_actions_; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Decorations for the installed Page Actions. 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ScopedVector<PageActionDecoration> page_action_decorations_; 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The content blocked decorations. 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ScopedVector<ContentSettingDecoration> content_setting_decorations_; 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Keyword hint decoration displayed on the right-hand side. 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<KeywordHintDecoration> keyword_hint_decoration_; 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // The voice search icon. 2363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) scoped_ptr<MicSearchDecoration> mic_search_decoration_; 2373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 238f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Generated CC hint decoration. 239f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<GeneratedCreditCardDecoration> generated_credit_card_decoration_; 240f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 241f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The right-hand-side search button that is shown on search result pages. 242f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<SearchButtonDecoration> search_button_decoration_; 243f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile_; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Browser* browser_; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to register for notifications received by NotificationObserver. 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::NotificationRegistrar registrar_; 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to schedule a task for the first run info bubble. 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::WeakPtrFactory<LocationBarViewMac> weak_ptr_factory_; 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to change the visibility of the star decoration. 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BooleanPrefMember edit_bookmarks_enabled_; 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(LocationBarViewMac); 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_UI_COCOA_LOCATION_BAR_LOCATION_BAR_VIEW_MAC_H_ 261