| Index: chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc
|
| diff --git a/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dc832b87fc75f72934d9cbe772a2c1e8ea25d79d
|
| --- /dev/null
|
| +++ b/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc
|
| @@ -0,0 +1,122 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.h"
|
| +
|
| +#include "base/android/jni_android.h"
|
| +#include "chrome/browser/android/compositor/layer/contextual_search_layer.h"
|
| +#include "content/public/browser/android/content_view_core.h"
|
| +#include "jni/ContextualSearchSceneLayer_jni.h"
|
| +#include "ui/android/resources/resource_manager_impl.h"
|
| +
|
| +namespace chrome {
|
| +namespace android {
|
| +
|
| +ContextualSearchSceneLayer::ContextualSearchSceneLayer(JNIEnv* env,
|
| + jobject jobj)
|
| + : SceneLayer(env, jobj) {
|
| +}
|
| +
|
| +ContextualSearchSceneLayer::~ContextualSearchSceneLayer() {
|
| +}
|
| +
|
| +void ContextualSearchSceneLayer::UpdateContextualSearchLayer(
|
| + JNIEnv* env,
|
| + jobject object,
|
| + jint search_bar_background_resource_id,
|
| + jint search_bar_text_resource_id,
|
| + jint search_bar_shadow_resource_id,
|
| + jint search_provider_icon_resource_id,
|
| + jint search_icon_resource_id,
|
| + jint progress_bar_background_resource_id,
|
| + jint progress_bar_resource_id,
|
| + jint search_promo_resource_id,
|
| + jobject jcontent_view_core,
|
| + jboolean search_promo_visible,
|
| + jfloat search_promo_height,
|
| + jfloat search_promo_opacity,
|
| + jfloat search_panel_y,
|
| + jfloat search_panel_width,
|
| + jfloat search_bar_margin_top,
|
| + jfloat search_bar_height,
|
| + jfloat search_bar_text_opacity,
|
| + jboolean search_bar_border_visible,
|
| + jfloat search_bar_border_y,
|
| + jfloat search_bar_border_height,
|
| + jboolean search_bar_shadow_visible,
|
| + jfloat search_bar_shadow_opacity,
|
| + jfloat search_provider_icon_opacity,
|
| + jfloat search_icon_padding_left,
|
| + jfloat search_icon_opacity,
|
| + jboolean progress_bar_visible,
|
| + jfloat progress_bar_y,
|
| + jfloat progress_bar_height,
|
| + jfloat progress_bar_opacity,
|
| + jint progress_bar_completion,
|
| + jobject jresource_manager) {
|
| + ui::ResourceManager* resource_manager =
|
| + ui::ResourceManagerImpl::FromJavaObject(jresource_manager);
|
| + // Lazily construct the contextual search layer, as the feature is only
|
| + // conditionally enabled.
|
| + if (!contextual_search_layer_.get()) {
|
| + if (!resource_manager)
|
| + return;
|
| + contextual_search_layer_ = ContextualSearchLayer::Create(resource_manager);
|
| + layer_->AddChild(contextual_search_layer_->layer());
|
| + }
|
| +
|
| + // NOTE(pedrosimonetti): The ContentViewCore might not exist at this time if
|
| + // the Contextual Search Result has not been requested yet. In this case,
|
| + // we'll pass NULL to Contextual Search's Layer Tree.
|
| + content::ContentViewCore* content_view_core =
|
| + !jcontent_view_core ? NULL
|
| + : content::ContentViewCore::GetNativeContentViewCore(
|
| + env, jcontent_view_core);
|
| +
|
| + contextual_search_layer_->SetProperties(
|
| + search_bar_background_resource_id,
|
| + search_bar_text_resource_id,
|
| + search_bar_shadow_resource_id,
|
| + search_provider_icon_resource_id,
|
| + search_icon_resource_id,
|
| + progress_bar_background_resource_id,
|
| + progress_bar_resource_id,
|
| + search_promo_resource_id,
|
| + content_view_core,
|
| + search_promo_visible,
|
| + search_promo_height,
|
| + search_promo_opacity,
|
| + search_panel_y,
|
| + search_panel_width,
|
| + search_bar_margin_top,
|
| + search_bar_height,
|
| + search_bar_text_opacity,
|
| + search_bar_border_visible,
|
| + search_bar_border_y,
|
| + search_bar_border_height,
|
| + search_bar_shadow_visible,
|
| + search_bar_shadow_opacity,
|
| + search_provider_icon_opacity,
|
| + search_icon_padding_left,
|
| + search_icon_opacity,
|
| + progress_bar_visible,
|
| + progress_bar_y,
|
| + progress_bar_height,
|
| + progress_bar_opacity,
|
| + progress_bar_completion);
|
| +}
|
| +
|
| +static jlong Init(JNIEnv* env, jobject jobj) {
|
| + // This will automatically bind to the Java object and pass ownership there.
|
| + ContextualSearchSceneLayer* tree_provider =
|
| + new ContextualSearchSceneLayer(env, jobj);
|
| + return reinterpret_cast<intptr_t>(tree_provider);
|
| +}
|
| +
|
| +bool RegisterContextualSearchSceneLayer(JNIEnv* env) {
|
| + return RegisterNativesImpl(env);
|
| +}
|
| +
|
| +} // namespace android
|
| +} // namespace chrome
|
|
|