Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: chrome/browser/android/tab_android.cc

Issue 73173002: Add ContextMenu support upstream for Android (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added tests, addressed comments Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 #include "chrome/browser/android/tab_android.h" 5 #include "chrome/browser/android/tab_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "chrome/browser/android/chrome_web_contents_delegate_android.h" 9 #include "chrome/browser/android/chrome_web_contents_delegate_android.h"
10 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" 10 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h"
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/printing/print_view_manager_basic.h" 24 #include "chrome/browser/printing/print_view_manager_basic.h"
25 #include "chrome/browser/profiles/profile.h" 25 #include "chrome/browser/profiles/profile.h"
26 #include "chrome/browser/profiles/profile_android.h" 26 #include "chrome/browser/profiles/profile_android.h"
27 #include "chrome/browser/sessions/session_tab_helper.h" 27 #include "chrome/browser/sessions/session_tab_helper.h"
28 #include "chrome/browser/ssl/ssl_tab_helper.h" 28 #include "chrome/browser/ssl/ssl_tab_helper.h"
29 #include "chrome/browser/sync/glue/synced_tab_delegate_android.h" 29 #include "chrome/browser/sync/glue/synced_tab_delegate_android.h"
30 #include "chrome/browser/tab_contents/navigation_metrics_recorder.h" 30 #include "chrome/browser/tab_contents/navigation_metrics_recorder.h"
31 #include "chrome/browser/translate/translate_tab_helper.h" 31 #include "chrome/browser/translate/translate_tab_helper.h"
32 #include "chrome/browser/ui/alternate_error_tab_observer.h" 32 #include "chrome/browser/ui/alternate_error_tab_observer.h"
33 #include "chrome/browser/ui/android/content_settings/popup_blocked_infobar_deleg ate.h" 33 #include "chrome/browser/ui/android/content_settings/popup_blocked_infobar_deleg ate.h"
34 #include "chrome/browser/ui/android/context_menu_helper.h"
34 #include "chrome/browser/ui/android/infobars/infobar_container_android.h" 35 #include "chrome/browser/ui/android/infobars/infobar_container_android.h"
35 #include "chrome/browser/ui/android/tab_model/tab_model.h" 36 #include "chrome/browser/ui/android/tab_model/tab_model.h"
36 #include "chrome/browser/ui/android/tab_model/tab_model_list.h" 37 #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
37 #include "chrome/browser/ui/android/window_android_helper.h" 38 #include "chrome/browser/ui/android/window_android_helper.h"
38 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.h" 39 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.h"
39 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h" 40 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h"
40 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" 41 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
41 #include "chrome/browser/ui/browser_tab_contents.h" 42 #include "chrome/browser/ui/browser_tab_contents.h"
42 #include "chrome/browser/ui/find_bar/find_tab_helper.h" 43 #include "chrome/browser/ui/find_bar/find_tab_helper.h"
43 #include "chrome/browser/ui/prefs/prefs_tab_helper.h" 44 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 SessionTabHelper::CreateForWebContents(contents); 84 SessionTabHelper::CreateForWebContents(contents);
84 85
85 AlternateErrorPageTabObserver::CreateForWebContents(contents); 86 AlternateErrorPageTabObserver::CreateForWebContents(contents);
86 autofill::TabAutofillManagerDelegate::CreateForWebContents(contents); 87 autofill::TabAutofillManagerDelegate::CreateForWebContents(contents);
87 autofill::AutofillDriverImpl::CreateForWebContentsAndDelegate( 88 autofill::AutofillDriverImpl::CreateForWebContentsAndDelegate(
88 contents, 89 contents,
89 autofill::TabAutofillManagerDelegate::FromWebContents(contents), 90 autofill::TabAutofillManagerDelegate::FromWebContents(contents),
90 g_browser_process->GetApplicationLocale(), 91 g_browser_process->GetApplicationLocale(),
91 autofill::AutofillManager::ENABLE_AUTOFILL_DOWNLOAD_MANAGER); 92 autofill::AutofillManager::ENABLE_AUTOFILL_DOWNLOAD_MANAGER);
92 BookmarkTabHelper::CreateForWebContents(contents); 93 BookmarkTabHelper::CreateForWebContents(contents);
94 ContextMenuHelper::CreateForWebContents(contents);
93 CoreTabHelper::CreateForWebContents(contents); 95 CoreTabHelper::CreateForWebContents(contents);
94 extensions::TabHelper::CreateForWebContents(contents); 96 extensions::TabHelper::CreateForWebContents(contents);
95 FaviconTabHelper::CreateForWebContents(contents); 97 FaviconTabHelper::CreateForWebContents(contents);
96 FindTabHelper::CreateForWebContents(contents); 98 FindTabHelper::CreateForWebContents(contents);
97 HistoryTabHelper::CreateForWebContents(contents); 99 HistoryTabHelper::CreateForWebContents(contents);
98 InfoBarService::CreateForWebContents(contents); 100 InfoBarService::CreateForWebContents(contents);
99 NavigationMetricsRecorder::CreateForWebContents(contents); 101 NavigationMetricsRecorder::CreateForWebContents(contents);
100 chrome_browser_net::NetErrorTabHelper::CreateForWebContents(contents); 102 chrome_browser_net::NetErrorTabHelper::CreateForWebContents(contents);
101 PasswordManagerDelegateImpl::CreateForWebContents(contents); 103 PasswordManagerDelegateImpl::CreateForWebContents(contents);
102 PasswordManager::CreateForWebContentsAndDelegate( 104 PasswordManager::CreateForWebContentsAndDelegate(
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 default: 284 default:
283 NOTREACHED() << "Unexpected notification " << type; 285 NOTREACHED() << "Unexpected notification " << type;
284 break; 286 break;
285 } 287 }
286 } 288 }
287 289
288 void TabAndroid::InitWebContents(JNIEnv* env, 290 void TabAndroid::InitWebContents(JNIEnv* env,
289 jobject obj, 291 jobject obj,
290 jboolean incognito, 292 jboolean incognito,
291 jobject jcontent_view_core, 293 jobject jcontent_view_core,
292 jobject jweb_contents_delegate) { 294 jobject jweb_contents_delegate,
295 jobject jcontext_menu_populator) {
293 content::ContentViewCore* content_view_core = 296 content::ContentViewCore* content_view_core =
294 content::ContentViewCore::GetNativeContentViewCore(env, 297 content::ContentViewCore::GetNativeContentViewCore(env,
295 jcontent_view_core); 298 jcontent_view_core);
296 DCHECK(content_view_core); 299 DCHECK(content_view_core);
297 DCHECK(content_view_core->GetWebContents()); 300 DCHECK(content_view_core->GetWebContents());
298 301
299 web_contents_.reset(content_view_core->GetWebContents()); 302 web_contents_.reset(content_view_core->GetWebContents());
300 InitTabHelpers(web_contents_.get()); 303 InitTabHelpers(web_contents_.get());
301 304
302 session_tab_id_.set_id( 305 session_tab_id_.set_id(
303 SessionTabHelper::FromWebContents(web_contents())->session_id().id()); 306 SessionTabHelper::FromWebContents(web_contents())->session_id().id());
307 ContextMenuHelper::FromWebContents(web_contents())->SetPopulator(
308 jcontext_menu_populator);
304 WindowAndroidHelper::FromWebContents(web_contents())-> 309 WindowAndroidHelper::FromWebContents(web_contents())->
305 SetWindowAndroid(content_view_core->GetWindowAndroid()); 310 SetWindowAndroid(content_view_core->GetWindowAndroid());
306 CoreTabHelper::FromWebContents(web_contents())->set_delegate(this); 311 CoreTabHelper::FromWebContents(web_contents())->set_delegate(this);
307 web_contents_delegate_.reset( 312 web_contents_delegate_.reset(
308 new chrome::android::ChromeWebContentsDelegateAndroid( 313 new chrome::android::ChromeWebContentsDelegateAndroid(
309 env, jweb_contents_delegate)); 314 env, jweb_contents_delegate));
310 web_contents_delegate_->LoadProgressChanged(web_contents(), 0); 315 web_contents_delegate_->LoadProgressChanged(web_contents(), 0);
311 web_contents()->SetDelegate(web_contents_delegate_.get()); 316 web_contents()->SetDelegate(web_contents_delegate_.get());
312 317
313 notification_registrar_.Add( 318 notification_registrar_.Add(
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 if (print_view_manager == NULL) 415 if (print_view_manager == NULL)
411 return false; 416 return false;
412 417
413 print_view_manager->PrintNow(); 418 print_view_manager->PrintNow();
414 return true; 419 return true;
415 } 420 }
416 421
417 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) { 422 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) {
418 return RegisterNativesImpl(env); 423 return RegisterNativesImpl(env);
419 } 424 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698