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

Unified Diff: chrome/browser/chromeos/login/webui_login_view.cc

Issue 13872010: cros: Add a header for gaia auth requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, comments in #1 Created 7 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/webui_login_view.cc
diff --git a/chrome/browser/chromeos/login/webui_login_view.cc b/chrome/browser/chromeos/login/webui_login_view.cc
index e6f7dedd74d71ec79a76352e5f29b93e2d86af74..756223124a9934b68cd5f805d86c828960666b35 100644
--- a/chrome/browser/chromeos/login/webui_login_view.cc
+++ b/chrome/browser/chromeos/login/webui_login_view.cc
@@ -8,6 +8,7 @@
#include "ash/system/tray/system_tray.h"
#include "base/bind.h"
#include "base/callback.h"
+#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/i18n/rtl.h"
#include "base/utf_string_conversions.h"
@@ -17,6 +18,9 @@
#include "chrome/browser/chromeos/login/base_login_display_host.h"
#include "chrome/browser/chromeos/login/proxy_settings_dialog.h"
#include "chrome/browser/chromeos/login/webui_login_display.h"
+#include "chrome/browser/extensions/component_loader.h"
+#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/password_manager/password_manager.h"
#include "chrome/browser/password_manager/password_manager_delegate_impl.h"
#include "chrome/browser/profiles/profile_manager.h"
@@ -25,6 +29,7 @@
#include "chrome/browser/ui/web_contents_modal_dialog_manager.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
#include "chrome/common/chrome_notification_types.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/render_messages.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/session_manager_client.h"
@@ -35,6 +40,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
#include "content/public/browser/web_ui.h"
+#include "grit/browser_resources.h"
#include "ui/aura/env.h"
#include "ui/gfx/rect.h"
#include "ui/gfx/size.h"
@@ -114,6 +120,49 @@ namespace chromeos {
const char WebUILoginView::kViewClassName[] =
"browser/chromeos/login/WebUILoginView";
+// WebUILoginView::ScopedGaiaAuthExtension -------------------------------------
+class WebUILoginView::ScopedGaiaAuthExtension {
+ public:
+ explicit ScopedGaiaAuthExtension(Profile* profile)
+ : profile_(profile) {
+ LoadGaiaAuthExtension();
+ }
+
+ ~ScopedGaiaAuthExtension() {
+ UnloadGaiaAuthExtension();
+ }
+
+ private:
+ extensions::ComponentLoader* GetComponentLoader() {
+ extensions::ExtensionSystem* extension_system =
+ extensions::ExtensionSystem::Get(profile_);
+ ExtensionService* extension_service = extension_system->extension_service();
+ return extension_service->component_loader();
+ }
+
+ void LoadGaiaAuthExtension() {
+ extensions::ComponentLoader* component_loader = GetComponentLoader();
+ const CommandLine* command_line = CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kAuthExtensionPath)) {
+ base::FilePath auth_extension_path =
+ command_line->GetSwitchValuePath(switches::kAuthExtensionPath);
+ component_loader->Add(IDR_GAIA_TEST_AUTH_MANIFEST, auth_extension_path);
+ return;
+ }
+ component_loader->Add(IDR_GAIA_AUTH_MANIFEST,
Nikita (slow) 2013/04/19 11:35:57 Is ComponentLoader just fine with postponed initia
+ base::FilePath(FILE_PATH_LITERAL("gaia_auth")));
+ }
+
+ void UnloadGaiaAuthExtension() {
+ const char kGaiaAuthId[] = "mfffpogegjflfpflabcdkioaeobkgjik";
+ GetComponentLoader()->Remove(kGaiaAuthId);
+ }
+
+ Profile* profile_;
Nikita (slow) 2013/04/19 11:35:57 nit: // Not owned.
+
+ DISALLOW_COPY_AND_ASSIGN(ScopedGaiaAuthExtension);
+};
+
// WebUILoginView public: ------------------------------------------------------
WebUILoginView::WebUILoginView()
@@ -151,8 +200,11 @@ WebUILoginView::~WebUILoginView() {
}
void WebUILoginView::Init(views::Widget* login_window) {
+ Profile* profile = ProfileManager::GetDefaultProfile();
Nikita (slow) 2013/04/15 15:49:27 Depending on which CL lands first, this has to be
Nikita (slow) 2013/04/19 11:35:57 CL landed, this should be ProfileHelper::GetSignin
+ gaia_auth_.reset(new ScopedGaiaAuthExtension(profile));
+
login_window_ = login_window;
- webui_login_ = new views::WebView(ProfileManager::GetDefaultProfile());
+ webui_login_ = new views::WebView(profile);
AddChildView(webui_login_);
WebContents* web_contents = webui_login_->GetWebContents();

Powered by Google App Engine
This is Rietveld 408576698