Index: chrome/browser/ui/gtk/password_generation_bubble_gtk.cc |
diff --git a/chrome/browser/ui/gtk/password_generation_bubble_gtk.cc b/chrome/browser/ui/gtk/password_generation_bubble_gtk.cc |
deleted file mode 100644 |
index b34d99a56c096eff44a73cf20d6633d897d76438..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/gtk/password_generation_bubble_gtk.cc |
+++ /dev/null |
@@ -1,160 +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/ui/gtk/password_generation_bubble_gtk.h" |
- |
-#include "base/strings/utf_string_conversions.h" |
-#include "chrome/browser/password_manager/chrome_password_manager_client.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_finder.h" |
-#include "chrome/browser/ui/gtk/bubble/bubble_gtk.h" |
-#include "chrome/browser/ui/gtk/gtk_chrome_link_button.h" |
-#include "chrome/browser/ui/gtk/gtk_theme_service.h" |
-#include "chrome/browser/ui/gtk/gtk_util.h" |
-#include "chrome/common/url_constants.h" |
-#include "components/autofill/content/common/autofill_messages.h" |
-#include "components/autofill/core/browser/password_generator.h" |
-#include "components/password_manager/core/browser/password_manager.h" |
-#include "content/public/browser/render_view_host.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/web_contents_view.h" |
-#include "grit/generated_resources.h" |
-#include "grit/theme_resources.h" |
-#include "ui/base/gtk/gtk_hig_constants.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/resource/resource_bundle.h" |
- |
-using content::RenderViewHost; |
- |
-namespace { |
- |
-GdkPixbuf* GetImage(int resource_id) { |
- if (!resource_id) |
- return NULL; |
- return ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
- resource_id, ui::ResourceBundle::RTL_ENABLED).ToGdkPixbuf(); |
-} |
- |
-} // namespace |
- |
-PasswordGenerationBubbleGtk::PasswordGenerationBubbleGtk( |
- const gfx::Rect& anchor_rect, |
- const autofill::PasswordForm& form, |
- content::WebContents* web_contents, |
- autofill::PasswordGenerator* password_generator) |
- : form_(form), |
- web_contents_(web_contents), |
- password_generator_(password_generator) { |
- // TODO(gcasto): Localize text after we have finalized the UI. |
- // crbug.com/118062 |
- GtkWidget* content = gtk_vbox_new(FALSE, 5); |
- |
- // We have two lines of content. The first is the title and learn more link. |
- GtkWidget* title_line = gtk_hbox_new(FALSE, 0); |
- GtkWidget* title = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_PASSWORD_GENERATION_BUBBLE_TITLE).c_str()); |
- gtk_box_pack_start(GTK_BOX(title_line), title, FALSE, FALSE, 0); |
- GtkWidget* learn_more_link = gtk_chrome_link_button_new( |
- l10n_util::GetStringUTF8(IDS_LEARN_MORE).c_str()); |
- gtk_button_set_alignment(GTK_BUTTON(learn_more_link), 0.0, 0.5); |
- gtk_box_pack_start(GTK_BOX(title_line), |
- gtk_util::IndentWidget(learn_more_link), |
- FALSE, FALSE, 0); |
- |
- // The second contains the password in a text field, a regenerate button, and |
- // an accept button. |
- GtkWidget* password_line = gtk_hbox_new(FALSE, ui::kControlSpacing); |
- text_field_ = gtk_entry_new(); |
- gtk_entry_set_text(GTK_ENTRY(text_field_), |
- password_generator_->Generate().c_str()); |
- gtk_entry_set_max_length(GTK_ENTRY(text_field_), 15); |
- gtk_entry_set_icon_from_pixbuf( |
- GTK_ENTRY(text_field_), GTK_ENTRY_ICON_SECONDARY, GetImage(IDR_RELOAD)); |
- gtk_entry_set_icon_tooltip_text( |
- GTK_ENTRY(text_field_), GTK_ENTRY_ICON_SECONDARY, "Regenerate"); |
- GtkWidget* accept_button = gtk_button_new_with_label( |
- l10n_util::GetStringUTF8(IDS_PASSWORD_GENERATION_BUTTON_TEXT).c_str()); |
- gtk_box_pack_start(GTK_BOX(password_line), text_field_, TRUE, TRUE, 0); |
- gtk_box_pack_start(GTK_BOX(password_line), accept_button, TRUE, TRUE, 0); |
- |
- gtk_container_set_border_width(GTK_CONTAINER(content), |
- ui::kContentAreaBorder); |
- gtk_box_pack_start(GTK_BOX(content), title_line, TRUE, TRUE, 0); |
- gtk_box_pack_start(GTK_BOX(content), password_line, TRUE, TRUE, 0); |
- |
- // Set initial focus to the text field containing the generated password. |
- gtk_widget_grab_focus(text_field_); |
- |
- GtkThemeService* theme_service = GtkThemeService::GetFrom( |
- Profile::FromBrowserContext(web_contents->GetBrowserContext())); |
- |
- bubble_ = BubbleGtk::Show(web_contents->GetView()->GetContentNativeView(), |
- &anchor_rect, |
- content, |
- BubbleGtk::ANCHOR_TOP_LEFT, |
- BubbleGtk::MATCH_SYSTEM_THEME | |
- BubbleGtk::POPUP_WINDOW | |
- BubbleGtk::GRAB_INPUT, |
- theme_service, |
- this); // delegate |
- |
- g_signal_connect(content, "destroy", |
- G_CALLBACK(&OnDestroyThunk), this); |
- g_signal_connect(accept_button, "clicked", |
- G_CALLBACK(&OnAcceptClickedThunk), this); |
- g_signal_connect(text_field_, "icon-press", |
- G_CALLBACK(&OnRegenerateClickedThunk), this); |
- g_signal_connect(text_field_, "changed", |
- G_CALLBACK(&OnPasswordEditedThunk), this); |
- g_signal_connect(learn_more_link, "clicked", |
- G_CALLBACK(OnLearnMoreLinkClickedThunk), this); |
-} |
- |
-PasswordGenerationBubbleGtk::~PasswordGenerationBubbleGtk() {} |
- |
-void PasswordGenerationBubbleGtk::BubbleClosing(BubbleGtk* bubble, |
- bool closed_by_escape) { |
- autofill::password_generation::LogUserActions(actions_); |
-} |
- |
-void PasswordGenerationBubbleGtk::OnDestroy(GtkWidget* widget) { |
- // We are self deleting, we have a destroy signal setup to catch when we are |
- // destroyed (via the BubbleGtk being destroyed), and delete ourself. |
- delete this; |
-} |
- |
-void PasswordGenerationBubbleGtk::OnAcceptClicked(GtkWidget* widget) { |
- actions_.password_accepted = true; |
- RenderViewHost* render_view_host = web_contents_->GetRenderViewHost(); |
- render_view_host->Send(new AutofillMsg_GeneratedPasswordAccepted( |
- render_view_host->GetRoutingID(), |
- base::UTF8ToUTF16(gtk_entry_get_text(GTK_ENTRY(text_field_))))); |
- ChromePasswordManagerClient::GetManagerFromWebContents(web_contents_) |
- ->SetFormHasGeneratedPassword(form_); |
- bubble_->Close(); |
-} |
- |
-void PasswordGenerationBubbleGtk::OnRegenerateClicked( |
- GtkWidget* widget, |
- GtkEntryIconPosition icon_pos, |
- GdkEvent* event) { |
- gtk_entry_set_text(GTK_ENTRY(text_field_), |
- password_generator_->Generate().c_str()); |
- actions_.password_regenerated = true; |
-} |
- |
-void PasswordGenerationBubbleGtk::OnPasswordEdited(GtkWidget* widget) { |
- actions_.password_edited = true; |
-} |
- |
-void PasswordGenerationBubbleGtk::OnLearnMoreLinkClicked(GtkButton* button) { |
- actions_.learn_more_visited = true; |
- Browser* browser = chrome::FindBrowserWithWebContents(web_contents_); |
- content::OpenURLParams params( |
- GURL(chrome::kAutoPasswordGenerationLearnMoreURL), content::Referrer(), |
- NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false); |
- browser->OpenURL(params); |
- bubble_->Close(); |
-} |