| OLD | NEW | 
|    1 // Copyright 2016 The Chromium Authors. All rights reserved. |    1 // Copyright 2016 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/usb_chooser_dialog_android.h" |    5 #include "chrome/browser/ui/android/usb_chooser_dialog_android.h" | 
|    6  |    6  | 
|    7 #include <stddef.h> |    7 #include <stddef.h> | 
|    8  |    8  | 
|    9 #include <algorithm> |    9 #include <algorithm> | 
|   10  |   10  | 
|   11 #include "base/android/jni_android.h" |   11 #include "base/android/jni_android.h" | 
|   12 #include "base/android/jni_string.h" |   12 #include "base/android/jni_string.h" | 
|   13 #include "base/bind.h" |   13 #include "base/bind.h" | 
|   14 #include "base/strings/utf_string_conversions.h" |   14 #include "base/strings/utf_string_conversions.h" | 
|   15 #include "chrome/browser/profiles/profile.h" |   15 #include "chrome/browser/profiles/profile.h" | 
|   16 #include "chrome/browser/ssl/chrome_security_state_model_client.h" |   16 #include "chrome/browser/ssl/chrome_security_state_model_client.h" | 
|   17 #include "chrome/browser/usb/usb_chooser_context.h" |   17 #include "chrome/browser/usb/usb_chooser_context.h" | 
|   18 #include "chrome/browser/usb/usb_chooser_context_factory.h" |   18 #include "chrome/browser/usb/usb_chooser_context_factory.h" | 
|   19 #include "chrome/browser/usb/web_usb_histograms.h" |   19 #include "chrome/browser/usb/web_usb_histograms.h" | 
|   20 #include "chrome/common/pref_names.h" |  | 
|   21 #include "chrome/common/url_constants.h" |   20 #include "chrome/common/url_constants.h" | 
|   22 #include "components/prefs/pref_service.h" |  | 
|   23 #include "components/url_formatter/elide_url.h" |   21 #include "components/url_formatter/elide_url.h" | 
|   24 #include "content/public/browser/android/content_view_core.h" |   22 #include "content/public/browser/android/content_view_core.h" | 
|   25 #include "content/public/browser/render_frame_host.h" |   23 #include "content/public/browser/render_frame_host.h" | 
|   26 #include "content/public/browser/web_contents.h" |   24 #include "content/public/browser/web_contents.h" | 
|   27 #include "device/core/device_client.h" |   25 #include "device/core/device_client.h" | 
|   28 #include "device/usb/mojo/type_converters.h" |   26 #include "device/usb/mojo/type_converters.h" | 
|   29 #include "device/usb/usb_device.h" |   27 #include "device/usb/usb_device.h" | 
|   30 #include "device/usb/usb_device_filter.h" |   28 #include "device/usb/usb_device_filter.h" | 
|   31 #include "device/usb/webusb_descriptors.h" |   29 #include "device/usb/webusb_descriptors.h" | 
|   32 #include "jni/UsbChooserDialog_jni.h" |   30 #include "jni/UsbChooserDialog_jni.h" | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
|   53     filters_ = device_filters.To<std::vector<device::UsbDeviceFilter>>(); |   51     filters_ = device_filters.To<std::vector<device::UsbDeviceFilter>>(); | 
|   54  |   52  | 
|   55   // Create (and show) the UsbChooser dialog. |   53   // Create (and show) the UsbChooser dialog. | 
|   56   content::WebContents* web_contents = |   54   content::WebContents* web_contents = | 
|   57       content::WebContents::FromRenderFrameHost(render_frame_host_); |   55       content::WebContents::FromRenderFrameHost(render_frame_host_); | 
|   58   base::android::ScopedJavaLocalRef<jobject> window_android = |   56   base::android::ScopedJavaLocalRef<jobject> window_android = | 
|   59       content::ContentViewCore::FromWebContents(web_contents) |   57       content::ContentViewCore::FromWebContents(web_contents) | 
|   60           ->GetWindowAndroid() |   58           ->GetWindowAndroid() | 
|   61           ->GetJavaObject(); |   59           ->GetJavaObject(); | 
|   62   JNIEnv* env = base::android::AttachCurrentThread(); |   60   JNIEnv* env = base::android::AttachCurrentThread(); | 
|   63   Profile* profile = |  | 
|   64       Profile::FromBrowserContext(web_contents->GetBrowserContext()); |  | 
|   65   std::string languages = |  | 
|   66       profile->GetPrefs()->GetString(prefs::kAcceptLanguages); |  | 
|   67   base::android::ScopedJavaLocalRef<jstring> origin_string = |   61   base::android::ScopedJavaLocalRef<jstring> origin_string = | 
|   68       base::android::ConvertUTF16ToJavaString( |   62       base::android::ConvertUTF16ToJavaString( | 
|   69           env, url_formatter::FormatUrlForSecurityDisplay( |   63           env, url_formatter::FormatUrlForSecurityDisplay( | 
|   70                    render_frame_host->GetLastCommittedURL(), languages)); |   64                    render_frame_host->GetLastCommittedURL())); | 
|   71   ChromeSecurityStateModelClient* security_model_client = |   65   ChromeSecurityStateModelClient* security_model_client = | 
|   72       ChromeSecurityStateModelClient::FromWebContents(web_contents); |   66       ChromeSecurityStateModelClient::FromWebContents(web_contents); | 
|   73   DCHECK(security_model_client); |   67   DCHECK(security_model_client); | 
|   74   java_dialog_.Reset(Java_UsbChooserDialog_create( |   68   java_dialog_.Reset(Java_UsbChooserDialog_create( | 
|   75       env, window_android.obj(), origin_string.obj(), |   69       env, window_android.obj(), origin_string.obj(), | 
|   76       security_model_client->GetSecurityInfo().security_level, |   70       security_model_client->GetSecurityInfo().security_level, | 
|   77       reinterpret_cast<intptr_t>(this))); |   71       reinterpret_cast<intptr_t>(this))); | 
|   78  |   72  | 
|   79   if (!java_dialog_.is_null()) { |   73   if (!java_dialog_.is_null()) { | 
|   80     usb_service->GetDevices( |   74     usb_service->GetDevices( | 
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  219       ->OpenURL(content::OpenURLParams(GURL(url), content::Referrer(), |  213       ->OpenURL(content::OpenURLParams(GURL(url), content::Referrer(), | 
|  220                                        NEW_FOREGROUND_TAB, |  214                                        NEW_FOREGROUND_TAB, | 
|  221                                        ui::PAGE_TRANSITION_AUTO_TOPLEVEL, |  215                                        ui::PAGE_TRANSITION_AUTO_TOPLEVEL, | 
|  222                                        false));  // is_renderer_initiated |  216                                        false));  // is_renderer_initiated | 
|  223 } |  217 } | 
|  224  |  218  | 
|  225 // static |  219 // static | 
|  226 bool UsbChooserDialogAndroid::Register(JNIEnv* env) { |  220 bool UsbChooserDialogAndroid::Register(JNIEnv* env) { | 
|  227   return RegisterNativesImpl(env); |  221   return RegisterNativesImpl(env); | 
|  228 } |  222 } | 
| OLD | NEW |