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#ifndef CHROME_BROWSER_UI_ANDROID_NAVIGATION_POPUP_H_ 6#define CHROME_BROWSER_UI_ANDROID_NAVIGATION_POPUP_H_ 7 8#include <jni.h> 9 10#include "base/android/jni_weak_ref.h" 11#include "base/basictypes.h" 12#include "base/task/cancelable_task_tracker.h" 13 14class GURL; 15 16namespace favicon_base { 17struct FaviconImageResult; 18} 19 20// The native bridge for the history navigation popup that provides additional 21// functionality to the UI widget. 22class NavigationPopup { 23 public: 24 NavigationPopup(JNIEnv* env, jobject obj); 25 26 void Destroy(JNIEnv* env, jobject obj); 27 void FetchFaviconForUrl(JNIEnv* env, jobject obj, jstring jurl); 28 29 void OnFaviconDataAvailable( 30 GURL navigation_entry_url, 31 const favicon_base::FaviconImageResult& image_result); 32 33 static bool RegisterNavigationPopup(JNIEnv* env); 34 35 protected: 36 virtual ~NavigationPopup(); 37 38 private: 39 JavaObjectWeakGlobalRef weak_jobject_; 40 41 base::CancelableTaskTracker cancelable_task_tracker_; 42 43 DISALLOW_COPY_AND_ASSIGN(NavigationPopup); 44}; 45 46#endif // CHROME_BROWSER_UI_ANDROID_NAVIGATION_POPUP_H_ 47