| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
| 6 | 6 |
| 7 #include "base/mac/scoped_nsobject.h" | 7 #include "base/mac/scoped_nsobject.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" | 9 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" |
| 10 #include "chrome/browser/ui/website_settings/website_settings_ui.h" | 10 #include "chrome/browser/ui/website_settings/website_settings_ui.h" |
| 11 #include "content/public/browser/web_contents_observer.h" |
| 11 | 12 |
| 12 class WebsiteSettingsUIBridge; | 13 class WebsiteSettingsUIBridge; |
| 13 | 14 |
| 14 namespace content { | 15 namespace content { |
| 15 class WebContents; | 16 class WebContents; |
| 16 } | 17 } |
| 17 | 18 |
| 18 // This NSWindowController subclass manages the InfoBubbleWindow and view that | 19 // This NSWindowController subclass manages the InfoBubbleWindow and view that |
| 19 // are displayed when the user clicks the favicon or security lock icon. | 20 // are displayed when the user clicks the favicon or security lock icon. |
| 20 // | 21 // |
| 21 // TODO(palmer, sashab): Normalize all WebsiteSettings*, SiteSettings*, | 22 // TODO(palmer): Normalize all WebsiteSettings*, SiteSettings*, PageInfo*, et c. |
| 22 // PageInfo*, et c. to OriginInfo*. | 23 // to OriginInfo*. |
| 23 @interface WebsiteSettingsBubbleController : BaseBubbleController { | 24 @interface WebsiteSettingsBubbleController : BaseBubbleController { |
| 24 @private | 25 @private |
| 25 content::WebContents* webContents_; | 26 content::WebContents* webContents_; |
| 26 | 27 |
| 27 base::scoped_nsobject<NSView> contentView_; | 28 base::scoped_nsobject<NSView> contentView_; |
| 28 base::scoped_nsobject<NSSegmentedControl> segmentedControl_; | 29 base::scoped_nsobject<NSSegmentedControl> segmentedControl_; |
| 29 base::scoped_nsobject<NSTabView> tabView_; | 30 base::scoped_nsobject<NSTabView> tabView_; |
| 30 | 31 |
| 31 // Displays the web site identity. | 32 // Displays the web site identity. |
| 32 NSTextField* identityField_; | 33 NSTextField* identityField_; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 isInternalPage:(BOOL)isInternalPage; | 93 isInternalPage:(BOOL)isInternalPage; |
| 93 | 94 |
| 94 // Return the default width of the window. It may be wider to fit the content. | 95 // Return the default width of the window. It may be wider to fit the content. |
| 95 // This may be overriden by a subclass for testing purposes. | 96 // This may be overriden by a subclass for testing purposes. |
| 96 - (CGFloat)defaultWindowWidth; | 97 - (CGFloat)defaultWindowWidth; |
| 97 | 98 |
| 98 @end | 99 @end |
| 99 | 100 |
| 100 // Provides a bridge between the WebSettingsUI C++ interface and the Cocoa | 101 // Provides a bridge between the WebSettingsUI C++ interface and the Cocoa |
| 101 // implementation in WebsiteSettingsBubbleController. | 102 // implementation in WebsiteSettingsBubbleController. |
| 102 class WebsiteSettingsUIBridge : public WebsiteSettingsUI { | 103 class WebsiteSettingsUIBridge : public content::WebContentsObserver, |
| 104 public WebsiteSettingsUI { |
| 103 public: | 105 public: |
| 104 WebsiteSettingsUIBridge(); | 106 explicit WebsiteSettingsUIBridge(content::WebContents* web_contents); |
| 105 ~WebsiteSettingsUIBridge() override; | 107 ~WebsiteSettingsUIBridge() override; |
| 106 | 108 |
| 107 // Creates a |WebsiteSettingsBubbleController| and displays the UI. |parent| | 109 // Creates a |WebsiteSettingsBubbleController| and displays the UI. |parent| |
| 108 // is the currently active window. |profile| points to the currently active | 110 // is the currently active window. |profile| points to the currently active |
| 109 // profile. |web_contents| points to the WebContents that wraps the currently | 111 // profile. |web_contents| points to the WebContents that wraps the currently |
| 110 // active tab. |url| is the GURL of the currently active tab. |ssl| is the | 112 // active tab. |url| is the GURL of the currently active tab. |ssl| is the |
| 111 // |SSLStatus| of the connection to the website in the currently active tab. | 113 // |SSLStatus| of the connection to the website in the currently active tab. |
| 112 static void Show(gfx::NativeWindow parent, | 114 static void Show(gfx::NativeWindow parent, |
| 113 Profile* profile, | 115 Profile* profile, |
| 114 content::WebContents* web_contents, | 116 content::WebContents* web_contents, |
| 115 const GURL& url, | 117 const GURL& url, |
| 116 const content::SSLStatus& ssl); | 118 const content::SSLStatus& ssl); |
| 117 | 119 |
| 118 void set_bubble_controller( | 120 void set_bubble_controller( |
| 119 WebsiteSettingsBubbleController* bubble_controller); | 121 WebsiteSettingsBubbleController* bubble_controller); |
| 120 | 122 |
| 123 // WebContentsObserver implementation. |
| 124 void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override; |
| 125 |
| 121 // WebsiteSettingsUI implementations. | 126 // WebsiteSettingsUI implementations. |
| 122 void SetCookieInfo(const CookieInfoList& cookie_info_list) override; | 127 void SetCookieInfo(const CookieInfoList& cookie_info_list) override; |
| 123 void SetPermissionInfo( | 128 void SetPermissionInfo( |
| 124 const PermissionInfoList& permission_info_list) override; | 129 const PermissionInfoList& permission_info_list) override; |
| 125 void SetIdentityInfo(const IdentityInfo& identity_info) override; | 130 void SetIdentityInfo(const IdentityInfo& identity_info) override; |
| 126 void SetSelectedTab(TabId tab_id) override; | 131 void SetSelectedTab(TabId tab_id) override; |
| 127 | 132 |
| 128 private: | 133 private: |
| 134 // The WebContents the bubble UI is attached to. |
| 135 content::WebContents* web_contents_; |
| 136 |
| 129 // The Cocoa controller for the bubble UI. | 137 // The Cocoa controller for the bubble UI. |
| 130 WebsiteSettingsBubbleController* bubble_controller_; | 138 WebsiteSettingsBubbleController* bubble_controller_; |
| 131 | 139 |
| 132 DISALLOW_COPY_AND_ASSIGN(WebsiteSettingsUIBridge); | 140 DISALLOW_COPY_AND_ASSIGN(WebsiteSettingsUIBridge); |
| 133 }; | 141 }; |
| OLD | NEW |