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

Side by Side Diff: chrome/browser/ui/android/page_info/website_settings_popup_android.cc

Issue 2633433002: Update page info for new search geolocation system. (Closed)
Patch Set: Comment Created 3 years, 11 months 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
« no previous file with comments | « chrome/browser/ui/android/page_info/website_settings_popup_android.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/ui/android/page_info/website_settings_popup_android.h" 5 #include "chrome/browser/ui/android/page_info/website_settings_popup_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "chrome/browser/android/search_geolocation/search_geolocation_service.h "
11 #include "chrome/browser/infobars/infobar_service.h" 12 #include "chrome/browser/infobars/infobar_service.h"
12 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/ssl/security_state_tab_helper.h" 14 #include "chrome/browser/ssl/security_state_tab_helper.h"
14 #include "chrome/browser/ui/website_settings/website_settings.h" 15 #include "chrome/browser/ui/website_settings/website_settings.h"
15 #include "chrome/browser/ui/website_settings/website_settings_ui.h" 16 #include "chrome/browser/ui/website_settings/website_settings_ui.h"
16 #include "components/content_settings/core/common/content_settings.h" 17 #include "components/content_settings/core/common/content_settings.h"
17 #include "components/content_settings/core/common/content_settings_types.h" 18 #include "components/content_settings/core/common/content_settings_types.h"
18 #include "components/security_state/core/security_state.h" 19 #include "components/security_state/core/security_state.h"
19 #include "content/public/browser/browser_context.h" 20 #include "content/public/browser/browser_context.h"
20 #include "content/public/browser/navigation_controller.h" 21 #include "content/public/browser/navigation_controller.h"
21 #include "content/public/browser/navigation_entry.h" 22 #include "content/public/browser/navigation_entry.h"
22 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
23 #include "jni/WebsiteSettingsPopup_jni.h" 24 #include "jni/WebsiteSettingsPopup_jni.h"
25 #include "url/origin.h"
24 26
25 using base::android::ConvertUTF16ToJavaString; 27 using base::android::ConvertUTF16ToJavaString;
26 using base::android::ConvertUTF8ToJavaString; 28 using base::android::ConvertUTF8ToJavaString;
27 using base::android::JavaParamRef; 29 using base::android::JavaParamRef;
28 30
29 // static 31 // static
30 static jlong Init(JNIEnv* env, 32 static jlong Init(JNIEnv* env,
31 const JavaParamRef<jclass>& clazz, 33 const JavaParamRef<jclass>& clazz,
32 const JavaParamRef<jobject>& obj, 34 const JavaParamRef<jobject>& obj,
33 const JavaParamRef<jobject>& java_web_contents) { 35 const JavaParamRef<jobject>& java_web_contents) {
34 content::WebContents* web_contents = 36 content::WebContents* web_contents =
35 content::WebContents::FromJavaWebContents(java_web_contents); 37 content::WebContents::FromJavaWebContents(java_web_contents);
36 38
37 return reinterpret_cast<intptr_t>( 39 return reinterpret_cast<intptr_t>(
38 new WebsiteSettingsPopupAndroid(env, obj, web_contents)); 40 new WebsiteSettingsPopupAndroid(env, obj, web_contents));
39 } 41 }
40 42
41 WebsiteSettingsPopupAndroid::WebsiteSettingsPopupAndroid( 43 WebsiteSettingsPopupAndroid::WebsiteSettingsPopupAndroid(
42 JNIEnv* env, 44 JNIEnv* env,
43 jobject java_website_settings_pop, 45 jobject java_website_settings_pop,
44 content::WebContents* web_contents) { 46 content::WebContents* web_contents)
47 : search_geolocation_service_(nullptr) {
45 // Important to use GetVisibleEntry to match what's showing in the omnibox. 48 // Important to use GetVisibleEntry to match what's showing in the omnibox.
46 content::NavigationEntry* nav_entry = 49 content::NavigationEntry* nav_entry =
47 web_contents->GetController().GetVisibleEntry(); 50 web_contents->GetController().GetVisibleEntry();
48 if (nav_entry == NULL) 51 if (nav_entry == NULL)
49 return; 52 return;
50 53
51 url_ = nav_entry->GetURL(); 54 url_ = nav_entry->GetURL();
52 55
53 popup_jobject_.Reset(env, java_website_settings_pop); 56 popup_jobject_.Reset(env, java_website_settings_pop);
54 57
55 SecurityStateTabHelper* helper = 58 SecurityStateTabHelper* helper =
56 SecurityStateTabHelper::FromWebContents(web_contents); 59 SecurityStateTabHelper::FromWebContents(web_contents);
57 DCHECK(helper); 60 DCHECK(helper);
58 security_state::SecurityInfo security_info; 61 security_state::SecurityInfo security_info;
59 helper->GetSecurityInfo(&security_info); 62 helper->GetSecurityInfo(&security_info);
60 63
64 search_geolocation_service_ =
65 SearchGeolocationService::Factory::GetForBrowserContext(
66 web_contents->GetBrowserContext());
67
61 presenter_.reset(new WebsiteSettings( 68 presenter_.reset(new WebsiteSettings(
62 this, Profile::FromBrowserContext(web_contents->GetBrowserContext()), 69 this, Profile::FromBrowserContext(web_contents->GetBrowserContext()),
63 TabSpecificContentSettings::FromWebContents(web_contents), web_contents, 70 TabSpecificContentSettings::FromWebContents(web_contents), web_contents,
64 nav_entry->GetURL(), security_info)); 71 nav_entry->GetURL(), security_info));
65 } 72 }
66 73
67 WebsiteSettingsPopupAndroid::~WebsiteSettingsPopupAndroid() {} 74 WebsiteSettingsPopupAndroid::~WebsiteSettingsPopupAndroid() {}
68 75
69 void WebsiteSettingsPopupAndroid::Destroy(JNIEnv* env, 76 void WebsiteSettingsPopupAndroid::Destroy(JNIEnv* env,
70 const JavaParamRef<jobject>& obj) { 77 const JavaParamRef<jobject>& obj) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 117 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
111 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_IMAGES); 118 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_IMAGES);
112 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 119 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
113 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_POPUPS); 120 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_POPUPS);
114 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_AUTOPLAY); 121 permissions_to_display.push_back(CONTENT_SETTINGS_TYPE_AUTOPLAY);
115 122
116 std::map<ContentSettingsType, ContentSetting> 123 std::map<ContentSettingsType, ContentSetting>
117 user_specified_settings_to_display; 124 user_specified_settings_to_display;
118 125
119 for (const auto& permission : permission_info_list) { 126 for (const auto& permission : permission_info_list) {
120 if (base::ContainsValue(permissions_to_display, permission.type) && 127 if (base::ContainsValue(permissions_to_display, permission.type)) {
121 permission.setting != CONTENT_SETTING_DEFAULT) { 128 if (permission.setting != CONTENT_SETTING_DEFAULT) {
122 user_specified_settings_to_display[permission.type] = permission.setting; 129 user_specified_settings_to_display[permission.type] =
130 permission.setting;
131 } else if (permission.type == CONTENT_SETTINGS_TYPE_GEOLOCATION) {
132 if (search_geolocation_service_ &&
133 search_geolocation_service_->UseDSEGeolocationSetting(
134 url::Origin(url_))) {
135 user_specified_settings_to_display[permission.type] =
136 search_geolocation_service_->GetDSEGeolocationSetting()
137 ? CONTENT_SETTING_ALLOW
138 : CONTENT_SETTING_BLOCK;
139 }
140 }
123 } 141 }
124 } 142 }
125 143
126 for (const auto& permission : permissions_to_display) { 144 for (const auto& permission : permissions_to_display) {
127 if (base::ContainsKey(user_specified_settings_to_display, permission)) { 145 if (base::ContainsKey(user_specified_settings_to_display, permission)) {
128 base::string16 setting_title = 146 base::string16 setting_title =
129 WebsiteSettingsUI::PermissionTypeToUIString(permission); 147 WebsiteSettingsUI::PermissionTypeToUIString(permission);
130 148
131 Java_WebsiteSettingsPopup_addPermissionSection( 149 Java_WebsiteSettingsPopup_addPermissionSection(
132 env, popup_jobject_, ConvertUTF16ToJavaString(env, setting_title), 150 env, popup_jobject_, ConvertUTF16ToJavaString(env, setting_title),
(...skipping 13 matching lines...) Expand all
146 } 164 }
147 165
148 Java_WebsiteSettingsPopup_updatePermissionDisplay(env, popup_jobject_); 166 Java_WebsiteSettingsPopup_updatePermissionDisplay(env, popup_jobject_);
149 } 167 }
150 168
151 // static 169 // static
152 bool WebsiteSettingsPopupAndroid::RegisterWebsiteSettingsPopupAndroid( 170 bool WebsiteSettingsPopupAndroid::RegisterWebsiteSettingsPopupAndroid(
153 JNIEnv* env) { 171 JNIEnv* env) {
154 return RegisterNativesImpl(env); 172 return RegisterNativesImpl(env);
155 } 173 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/android/page_info/website_settings_popup_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698