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

Side by Side Diff: components/web_contents_delegate_android/color_chooser_android.cc

Issue 639703004: Optimizing DateTimeAndroid and ColorChooserAndroid initializations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed the review comments. Created 6 years, 1 month 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
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 "components/web_contents_delegate_android/color_chooser_android.h" 5 #include "components/web_contents_delegate_android/color_chooser_android.h"
6 6
7 #include "base/android/jni_array.h" 7 #include "base/android/jni_array.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "content/public/browser/android/content_view_core.h"
10 #include "content/public/browser/web_contents.h" 9 #include "content/public/browser/web_contents.h"
11 #include "content/public/common/color_suggestion.h" 10 #include "content/public/common/color_suggestion.h"
12 #include "jni/ColorChooserAndroid_jni.h" 11 #include "jni/ColorChooserAndroid_jni.h"
12 #include "ui/base/android/window_android.h"
13 13
14 using base::android::ConvertUTF16ToJavaString; 14 using base::android::ConvertUTF16ToJavaString;
15 15
16 namespace web_contents_delegate_android { 16 namespace web_contents_delegate_android {
17 17
18 ColorChooserAndroid::ColorChooserAndroid( 18 ColorChooserAndroid::ColorChooserAndroid(
19 content::WebContents* web_contents, 19 content::WebContents* web_contents,
20 SkColor initial_color, 20 SkColor initial_color,
21 const std::vector<content::ColorSuggestion>& suggestions) 21 const std::vector<content::ColorSuggestion>& suggestions)
22 : web_contents_(web_contents) { 22 : web_contents_(web_contents) {
23 JNIEnv* env = AttachCurrentThread(); 23 JNIEnv* env = AttachCurrentThread();
24 content::ContentViewCore* content_view_core =
25 content::ContentViewCore::FromWebContents(web_contents);
26 DCHECK(content_view_core);
27
28 ScopedJavaLocalRef<jobjectArray> suggestions_array; 24 ScopedJavaLocalRef<jobjectArray> suggestions_array;
29 25
30 if (suggestions.size() > 0) { 26 if (suggestions.size() > 0) {
31 suggestions_array = Java_ColorChooserAndroid_createColorSuggestionArray( 27 suggestions_array = Java_ColorChooserAndroid_createColorSuggestionArray(
32 env, suggestions.size()); 28 env, suggestions.size());
33 29
34 for (size_t i = 0; i < suggestions.size(); ++i) { 30 for (size_t i = 0; i < suggestions.size(); ++i) {
35 const content::ColorSuggestion& suggestion = suggestions[i]; 31 const content::ColorSuggestion& suggestion = suggestions[i];
36 ScopedJavaLocalRef<jstring> label = ConvertUTF16ToJavaString( 32 ScopedJavaLocalRef<jstring> label = ConvertUTF16ToJavaString(
37 env, suggestion.label); 33 env, suggestion.label);
38 Java_ColorChooserAndroid_addToColorSuggestionArray( 34 Java_ColorChooserAndroid_addToColorSuggestionArray(
39 env, 35 env,
40 suggestions_array.obj(), 36 suggestions_array.obj(),
41 i, 37 i,
42 suggestion.color, 38 suggestion.color,
43 label.obj()); 39 label.obj());
44 } 40 }
45 } 41 }
46 j_color_chooser_.Reset(Java_ColorChooserAndroid_createColorChooserAndroid( 42 j_color_chooser_.Reset(Java_ColorChooserAndroid_createColorChooserAndroid(
47 env, 43 env,
48 reinterpret_cast<intptr_t>(this), 44 reinterpret_cast<intptr_t>(this),
49 content_view_core->GetJavaObject().obj(), 45 web_contents->GetTopLevelNativeWindow()->GetJavaObject().obj(),
50 initial_color, 46 initial_color,
51 suggestions_array.obj())); 47 suggestions_array.obj()));
48 if (j_color_chooser_.is_null())
49 OnColorChosen(env, j_color_chooser_.obj(), initial_color);
52 } 50 }
53 51
54 ColorChooserAndroid::~ColorChooserAndroid() { 52 ColorChooserAndroid::~ColorChooserAndroid() {
55 } 53 }
56 54
57 void ColorChooserAndroid::End() { 55 void ColorChooserAndroid::End() {
58 if (!j_color_chooser_.is_null()) { 56 if (!j_color_chooser_.is_null()) {
59 JNIEnv* env = AttachCurrentThread(); 57 JNIEnv* env = AttachCurrentThread();
60 Java_ColorChooserAndroid_closeColorChooser(env, j_color_chooser_.obj()); 58 Java_ColorChooserAndroid_closeColorChooser(env, j_color_chooser_.obj());
61 } 59 }
(...skipping 11 matching lines...) Expand all
73 } 71 }
74 72
75 // ---------------------------------------------------------------------------- 73 // ----------------------------------------------------------------------------
76 // Native JNI methods 74 // Native JNI methods
77 // ---------------------------------------------------------------------------- 75 // ----------------------------------------------------------------------------
78 bool RegisterColorChooserAndroid(JNIEnv* env) { 76 bool RegisterColorChooserAndroid(JNIEnv* env) {
79 return RegisterNativesImpl(env); 77 return RegisterNativesImpl(env);
80 } 78 }
81 79
82 } // namespace web_contents_delegate_android 80 } // namespace web_contents_delegate_android
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698