#include "chrome/browser/ui/search/search_tab_helper.h"
#include "chrome/browser/ui/tab_contents/core_tab_helper.h"
#include "chrome/browser/ui/tab_helpers.h"
-#include "chrome/browser/ui/toolbar/toolbar_model_impl.h"
+#include "chrome/common/instant_types.h"
#include "chrome/common/url_constants.h"
#include "components/google/core/browser/google_url_tracker.h"
#include "components/google/core/browser/google_util.h"
}
}
-bool TabAndroid::ShouldWelcomePageLinkToTermsOfService() {
- NOTIMPLEMENTED();
- return false;
-}
-
bool TabAndroid::HasPrerenderedUrl(GURL gurl) {
prerender::PrerenderManager* prerender_manager = GetPrerenderManager();
if (!prerender_manager)
}
break;
}
- case chrome::NOTIFICATION_FAVICON_UPDATED:
- Java_Tab_onFaviconUpdated(env, weak_java_tab_.get(env).obj());
- break;
case content::NOTIFICATION_NAV_ENTRY_CHANGED:
Java_Tab_onNavEntryChanged(env, weak_java_tab_.get(env).obj());
break;
}
}
+void TabAndroid::OnFaviconAvailable(const gfx::Image& image) {
+ SkBitmap favicon = image.AsImageSkia().GetRepresentation(1.0f).sk_bitmap();
+ if (favicon.empty())
+ return;
+
+ JNIEnv *env = base::android::AttachCurrentThread();
+ Java_Tab_onFaviconAvailable(env, weak_java_tab_.get(env).obj(),
+ gfx::ConvertToJavaBitmap(&favicon).obj());
+}
+
void TabAndroid::Destroy(JNIEnv* env, jobject obj) {
delete this;
}
content::Source<content::WebContents>(web_contents()));
notification_registrar_.Add(
this,
- chrome::NOTIFICATION_FAVICON_UPDATED,
- content::Source<content::WebContents>(web_contents()));
- notification_registrar_.Add(
- this,
content::NOTIFICATION_NAV_ENTRY_CHANGED,
content::Source<content::NavigationController>(
&web_contents()->GetController()));
+ FaviconTabHelper* favicon_tab_helper =
+ FaviconTabHelper::FromWebContents(web_contents_.get());
+
+ if (favicon_tab_helper)
+ favicon_tab_helper->AddObserver(this);
+
synced_tab_delegate_->SetWebContents(web_contents());
// Verify that the WebContents this tab represents matches the expected
content::Source<content::WebContents>(web_contents()));
notification_registrar_.Remove(
this,
- chrome::NOTIFICATION_FAVICON_UPDATED,
- content::Source<content::WebContents>(web_contents()));
- notification_registrar_.Remove(
- this,
content::NOTIFICATION_NAV_ENTRY_CHANGED,
content::Source<content::NavigationController>(
&web_contents()->GetController()));
+ FaviconTabHelper* favicon_tab_helper =
+ FaviconTabHelper::FromWebContents(web_contents_.get());
+
+ if (favicon_tab_helper)
+ favicon_tab_helper->RemoveObserver(this);
+
InstantService* instant_service =
InstantServiceFactory::GetForProfile(GetProfile());
if (instant_service)
chrome::ExtractSearchTermsFromURL(GetProfile(), gurl);
if (!search_terms.empty() &&
prerenderer->CanCommitQuery(web_contents_.get(), search_terms)) {
- prerenderer->Commit(search_terms);
+ EmbeddedSearchRequestParams request_params(gurl);
+ prerenderer->Commit(search_terms, request_params);
if (prerenderer->UsePrerenderedPage(gurl, ¶ms))
return FULL_PRERENDERED_PAGE_LOAD;
SearchTabHelper::FromWebContents(web_contents_.get());
if (!search_terms.empty() && search_tab_helper &&
search_tab_helper->SupportsInstant()) {
- search_tab_helper->Submit(search_terms);
+ EmbeddedSearchRequestParams request_params(gurl);
+ search_tab_helper->Submit(search_terms, request_params);
return DEFAULT_PAGE_LOAD;
}
load_params.is_renderer_initiated = is_renderer_initiated;
return DEFAULT_PAGE_LOAD;
}
-ToolbarModel::SecurityLevel TabAndroid::GetSecurityLevel(JNIEnv* env,
- jobject obj) {
- return ToolbarModelImpl::GetSecurityLevelForWebContents(web_contents());
-}
-
void TabAndroid::SetActiveNavigationEntryTitleForUrl(JNIEnv* env,
jobject obj,
jstring jurl,
return true;
}
-ScopedJavaLocalRef<jobject> TabAndroid::GetFavicon(JNIEnv* env, jobject obj) {
+ScopedJavaLocalRef<jobject> TabAndroid::GetDefaultFavicon(JNIEnv* env,
+ jobject obj) {
ScopedJavaLocalRef<jobject> bitmap;
FaviconTabHelper* favicon_tab_helper =
FaviconTabHelper::FromWebContents(web_contents_.get());
if (!favicon_tab_helper)
return bitmap;
- // If the favicon isn't valid, it will return a default bitmap.
-
- SkBitmap favicon =
- favicon_tab_helper->GetFavicon()
- .AsImageSkia()
- .GetRepresentation(
- ResourceBundle::GetSharedInstance().GetMaxScaleFactor())
- .sk_bitmap();
-
- if (favicon.empty()) {
- favicon = favicon_tab_helper->GetFavicon().AsBitmap();
- }
-
+ // Always return the default favicon in Android.
+ SkBitmap favicon = favicon_tab_helper->GetFavicon().AsBitmap();
if (!favicon.empty()) {
gfx::DeviceDisplayInfo device_info;
const float device_scale_factor = device_info.GetDIPScale();