Index: chrome/browser/android/service_tab_launcher.cc |
diff --git a/chrome/browser/android/service_tab_launcher.cc b/chrome/browser/android/service_tab_launcher.cc |
deleted file mode 100644 |
index da4db678f2441b22e7ad3a0ce4eac1e69a4015c0..0000000000000000000000000000000000000000 |
--- a/chrome/browser/android/service_tab_launcher.cc |
+++ /dev/null |
@@ -1,103 +0,0 @@ |
-// 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/service_tab_launcher.h" |
- |
-#include "base/android/jni_string.h" |
-#include "base/callback.h" |
-#include "content/public/browser/browser_context.h" |
-#include "content/public/browser/page_navigator.h" |
-#include "content/public/browser/web_contents.h" |
-#include "jni/ServiceTabLauncher_jni.h" |
- |
-using base::android::AttachCurrentThread; |
-using base::android::ConvertUTF8ToJavaString; |
-using base::android::GetApplicationContext; |
- |
-// Called by Java when the WebContents instance for a request Id is available. |
-void OnWebContentsForRequestAvailable( |
- JNIEnv* env, jclass clazz, jint request_id, jobject android_web_contents) { |
- chrome::android::ServiceTabLauncher::GetInstance()->OnTabLaunched( |
- request_id, |
- content::WebContents::FromJavaWebContents(android_web_contents)); |
-} |
- |
-namespace chrome { |
-namespace android { |
- |
-// static |
-ServiceTabLauncher* ServiceTabLauncher::GetInstance() { |
- return Singleton<ServiceTabLauncher>::get(); |
-} |
- |
-ServiceTabLauncher::ServiceTabLauncher() { |
- java_object_.Reset( |
- Java_ServiceTabLauncher_getInstance(AttachCurrentThread(), |
- GetApplicationContext())); |
-} |
- |
-ServiceTabLauncher::~ServiceTabLauncher() {} |
- |
-void ServiceTabLauncher::LaunchTab( |
- content::BrowserContext* browser_context, |
- const content::OpenURLParams& params, |
- const TabLaunchedCallback& callback) { |
- if (!java_object_.obj()) { |
- LOG(ERROR) << "No ServiceTabLauncher is available to launch a new tab."; |
- callback.Run(nullptr); |
- return; |
- } |
- |
- WindowOpenDisposition disposition = params.disposition; |
- if (disposition != NEW_WINDOW && disposition != NEW_POPUP && |
- disposition != NEW_FOREGROUND_TAB && disposition != NEW_BACKGROUND_TAB) { |
- // ServiceTabLauncher can currently only launch new tabs. |
- NOTIMPLEMENTED(); |
- return; |
- } |
- |
- JNIEnv* env = AttachCurrentThread(); |
- ScopedJavaLocalRef<jstring> url = ConvertUTF8ToJavaString( |
- env, params.url.spec()); |
- ScopedJavaLocalRef<jstring> referrer_url = |
- ConvertUTF8ToJavaString(env, params.referrer.url.spec()); |
- ScopedJavaLocalRef<jstring> headers = ConvertUTF8ToJavaString( |
- env, params.extra_headers); |
- |
- ScopedJavaLocalRef<jbyteArray> post_data; |
- |
- int request_id = tab_launched_callbacks_.Add( |
- new TabLaunchedCallback(callback)); |
- DCHECK_GE(request_id, 1); |
- |
- Java_ServiceTabLauncher_launchTab(env, |
- java_object_.obj(), |
- GetApplicationContext(), |
- request_id, |
- browser_context->IsOffTheRecord(), |
- url.obj(), |
- disposition, |
- referrer_url.obj(), |
- params.referrer.policy, |
- headers.obj(), |
- post_data.obj()); |
-} |
- |
-void ServiceTabLauncher::OnTabLaunched(int request_id, |
- content::WebContents* web_contents) { |
- TabLaunchedCallback* callback = tab_launched_callbacks_.Lookup(request_id); |
- DCHECK(callback); |
- |
- if (callback) |
- callback->Run(web_contents); |
- |
- tab_launched_callbacks_.Remove(request_id); |
-} |
- |
-bool ServiceTabLauncher::RegisterServiceTabLauncher(JNIEnv* env) { |
- return RegisterNativesImpl(env); |
-} |
- |
-} // namespace android |
-} // namespace chrome |