Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / charger_replace / charger_link_dialog.cc
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/chromeos/charger_replace/charger_link_dialog.h"
6
7 #include "base/json/json_writer.h"
8 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/profiles/profile_manager.h"
11 #include "chrome/browser/ui/browser_dialogs.h"
12 #include "chrome/browser/ui/webui/chromeos/charger_replacement_handler.h"
13 #include "chrome/common/pref_names.h"
14 #include "chrome/common/url_constants.h"
15 #include "grit/generated_resources.h"
16 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/gfx/size.h"
18
19 using content::WebContents;
20 using content::WebUIMessageHandler;
21
22 namespace chromeos {
23
24 namespace {
25
26 const int kDefaultDialogWidth = 1200;
27 const int kDefaultDialogHeight = 650;
28
29 }  // namespace
30
31 ChargerLinkDialog::ChargerLinkDialog(gfx::NativeWindow parent_window,
32                                      std::string url)
33     : parent_window_(parent_window),
34       url_(url) {
35 }
36
37 ChargerLinkDialog::~ChargerLinkDialog() {
38 }
39
40 void ChargerLinkDialog::Show() {
41   // We show the dialog for the active user, so that the dialog will get
42   // displayed immediately. The parent window is a system modal/lock container
43   // and does not belong to any user.
44   chrome::ShowWebDialog(parent_window_,
45                         ProfileManager::GetActiveUserProfile(),
46                         this);
47 }
48
49 ui::ModalType ChargerLinkDialog::GetDialogModalType() const {
50   return ui::MODAL_TYPE_SYSTEM;
51 }
52
53 base::string16 ChargerLinkDialog::GetDialogTitle() const {
54   return l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_DIALOG_TITLE);
55 }
56
57 GURL ChargerLinkDialog::GetDialogContentURL() const {
58   return GURL(url_);
59 }
60
61 void ChargerLinkDialog::GetWebUIMessageHandlers(
62     std::vector<WebUIMessageHandler*>* handlers) const {
63 }
64
65 void ChargerLinkDialog::GetDialogSize(gfx::Size* size) const {
66   size->SetSize(kDefaultDialogWidth, kDefaultDialogHeight);
67 }
68
69 std::string ChargerLinkDialog::GetDialogArgs() const {
70   return std::string();
71 }
72
73 void ChargerLinkDialog::OnDialogClosed(const std::string& json_retval) {
74   delete this;
75 }
76
77 void ChargerLinkDialog::OnCloseContents(WebContents* source,
78                                                bool* out_close_dialog) {
79   if (out_close_dialog)
80     *out_close_dialog = true;
81 }
82
83 bool ChargerLinkDialog::ShouldShowDialogTitle() const {
84   return true;
85 }
86
87 bool ChargerLinkDialog::HandleContextMenu(
88     const content::ContextMenuParams& params) {
89   // Disable context menu.
90   return true;
91 }
92
93 }  // namespace chromeos