1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/views/location_bar/page_info_helper.h" 6 7 #include "chrome/browser/search/search.h" 8 #include "chrome/browser/ui/omnibox/omnibox_view.h" 9 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 10 #include "content/public/browser/navigation_controller.h" 11 #include "content/public/browser/navigation_entry.h" 12 #include "content/public/browser/web_contents.h" 13 #include "ui/views/view.h" 14 15 using content::NavigationController; 16 using content::NavigationEntry; 17 using content::WebContents; 18 19 PageInfoHelper::PageInfoHelper(const views::View* owner, 20 LocationBarView* location_bar) 21 : owner_(owner), 22 location_bar_(location_bar) { 23 } 24 25 void PageInfoHelper::ProcessEvent(const ui::LocatedEvent& event) { 26 if (!owner_->HitTestPoint(event.location())) 27 return; 28 29 WebContents* tab = location_bar_->GetWebContents(); 30 if (!tab) 31 return; 32 33 // Important to use GetVisibleEntry to match what's showing in the omnibox. 34 NavigationEntry* nav_entry = tab->GetController().GetVisibleEntry(); 35 // The visible entry can be NULL in the case of window.open(""). 36 if (!nav_entry) 37 return; 38 39 location_bar_->delegate()->ShowWebsiteSettings( 40 tab, nav_entry->GetURL(), nav_entry->GetSSL()); 41 } 42