Index: chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
deleted file mode 100644 |
index 39654e61139be17b57d76cf840b145ca4c432a5a..0000000000000000000000000000000000000000 |
--- a/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
+++ /dev/null |
@@ -1,126 +0,0 @@ |
-// Copyright (c) 2012 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/geolocation/chrome_geolocation_permission_context_android.h" |
- |
-#include "base/prefs/pref_service.h" |
-#include "chrome/browser/android/google_location_settings_helper.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/common/pref_names.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/web_contents.h" |
- |
-ChromeGeolocationPermissionContextAndroid:: |
-PermissionRequestInfo::PermissionRequestInfo() |
- : id(0, 0, 0, GURL()), |
- user_gesture(false) {} |
- |
-ChromeGeolocationPermissionContextAndroid:: |
- ChromeGeolocationPermissionContextAndroid(Profile* profile) |
- : ChromeGeolocationPermissionContext(profile), |
- google_location_settings_helper_( |
- GoogleLocationSettingsHelper::Create()) { |
-} |
- |
-ChromeGeolocationPermissionContextAndroid:: |
- ~ChromeGeolocationPermissionContextAndroid() { |
-} |
- |
-void ChromeGeolocationPermissionContextAndroid::ProceedDecidePermission( |
- content::WebContents* web_contents, |
- const PermissionRequestInfo& info, |
- const std::string& accept_button_label, |
- base::Callback<void(bool)> callback) { |
- // Super class implementation expects everything in UI thread instead. |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- ChromeGeolocationPermissionContext::DecidePermission( |
- web_contents, info.id, info.requesting_frame, info.user_gesture, |
- info.embedder, accept_button_label, callback); |
-} |
- |
-void ChromeGeolocationPermissionContextAndroid::CheckMasterLocation( |
- content::WebContents* web_contents, |
- const PermissionRequestInfo& info, |
- base::Callback<void(bool)> callback) { |
- // Check to see if the feature in its entirety has been disabled. |
- // This must happen before other services (e.g. tabs, extensions) |
- // get an opportunity to allow the geolocation request. |
- bool enabled = |
- google_location_settings_helper_->IsMasterLocationSettingEnabled(); |
- |
- // The flow for geolocation permission on android is: |
- // - ChromeGeolocationPermissionContextAndroid::DecidePermission |
- // intercepts the flow in the UI thread, and posts task |
- // to the blocking pool to CheckMasterLocation (in order to |
- // avoid strict-mode violation). |
- // - At this point the master location permission is either: |
- // -- enabled, in which we case it proceeds the normal flow |
- // via ChromeGeolocationPermissionContext (which may create infobars, etc.). |
- // -- disabled, in which case the permission is already decided. |
- // |
- // In either case, ChromeGeolocationPermissionContext expects these |
- // in the UI thread. |
- base::Closure ui_closure; |
- if (enabled) { |
- bool allow_label = google_location_settings_helper_->IsAllowLabel(); |
- std::string accept_button_label = |
- google_location_settings_helper_->GetAcceptButtonLabel(allow_label); |
- ui_closure = base::Bind( |
- &ChromeGeolocationPermissionContextAndroid::ProceedDecidePermission, |
- this, web_contents, info, accept_button_label, callback); |
- } else { |
- ui_closure = base::Bind( |
- &ChromeGeolocationPermissionContextAndroid::PermissionDecided, |
- this, info.id, info.requesting_frame, info.embedder, callback, false); |
- } |
- |
- // This method is executed from the BlockingPool, post the result |
- // back to the UI thread. |
- content::BrowserThread::PostTask( |
- content::BrowserThread::UI, FROM_HERE, ui_closure); |
-} |
- |
-void ChromeGeolocationPermissionContextAndroid::DecidePermission( |
- content::WebContents* web_contents, |
- const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- bool user_gesture, |
- const GURL& embedder, |
- const std::string& accept_button_label, |
- base::Callback<void(bool)> callback) { |
- |
- PermissionRequestInfo info; |
- info.id = id; |
- info.requesting_frame = requesting_frame; |
- info.user_gesture = user_gesture; |
- info.embedder = embedder; |
- |
- // Called on the UI thread. However, do the work on a separate thread |
- // to avoid strict mode violation. |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- content::BrowserThread::PostBlockingPoolTask(FROM_HERE, |
- base::Bind( |
- &ChromeGeolocationPermissionContextAndroid::CheckMasterLocation, |
- this, web_contents, info, callback)); |
-} |
- |
-void ChromeGeolocationPermissionContextAndroid::PermissionDecided( |
- const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- const GURL& embedder, |
- base::Callback<void(bool)> callback, |
- bool allowed) { |
- // If Google Apps Location setting is turned off then we ignore |
- // the 'allow' website setting for this site and instead show |
- // the infobar to go back to the 'settings' to turn it back on. |
- if (allowed && |
- !google_location_settings_helper_->IsGoogleAppsLocationSettingEnabled()) { |
- QueueController()->CreateInfoBarRequest( |
- id, requesting_frame, embedder, "", callback); |
- return; |
- } |
- |
- ChromeGeolocationPermissionContext::PermissionDecided( |
- id, requesting_frame, embedder, callback, allowed); |
-} |