diff options
author | maruel@chromium.org <maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-14 00:38:12 +0000 |
---|---|---|
committer | maruel@chromium.org <maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-14 00:38:12 +0000 |
commit | 73852b8f9c03c6b7a27436f828ed888f71232257 (patch) | |
tree | da07fd53317f13964f93383f9591fcdfdfa61ea7 /chrome/browser/sync | |
parent | 564551a2ece790b22fd2a70aeb8591805fe943be (diff) | |
download | chromium_src-73852b8f9c03c6b7a27436f828ed888f71232257.zip chromium_src-73852b8f9c03c6b7a27436f828ed888f71232257.tar.gz chromium_src-73852b8f9c03c6b7a27436f828ed888f71232257.tar.bz2 |
[Large; Chromium OS] Work to host the cloud print dialog when built
for Chromium OS. Currently disabled by default behind a command line
switch, and containing a non-real URL for now, this code is at
prototype level. It works (when enabled and pointed at a functioning
cloud print service URL), has the beginnings of some unit tests, and
has the beginnings of deeper communication with the dialog contents,
and it shuts off the DOM UI access from the dialog contents.
Patch contributed by Scott Byer
Review URL: http://codereview.chromium.org/1769006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47228 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync')
-rw-r--r-- | chrome/browser/sync/sync_setup_flow.cc | 25 | ||||
-rw-r--r-- | chrome/browser/sync/sync_setup_flow.h | 3 |
2 files changed, 5 insertions, 23 deletions
diff --git a/chrome/browser/sync/sync_setup_flow.cc b/chrome/browser/sync/sync_setup_flow.cc index 1ed639d..b1b9fa1 100644 --- a/chrome/browser/sync/sync_setup_flow.cc +++ b/chrome/browser/sync/sync_setup_flow.cc @@ -17,6 +17,7 @@ #if defined(OS_MACOSX) #include "chrome/browser/cocoa/html_dialog_window_controller_cppsafe.h" #endif +#include "chrome/browser/dom_ui/dom_ui_util.h" #include "chrome/browser/google_service_auth_error.h" #include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" @@ -32,28 +33,6 @@ static const wchar_t* kLoginIFrameXPath = L"//iframe[@id='login']"; static const wchar_t* kDoneIframeXPath = L"//iframe[@id='done']"; -// Helper function to read the JSON string from the Value parameter. -static std::string GetJsonResponse(const Value* content) { - if (!content || !content->IsType(Value::TYPE_LIST)) { - NOTREACHED(); - return std::string(); - } - const ListValue* args = static_cast<const ListValue*>(content); - if (args->GetSize() != 1) { - NOTREACHED(); - return std::string(); - } - - std::string result; - Value* value = NULL; - if (!args->Get(0, &value) || !value->GetAsString(&result)) { - NOTREACHED(); - return std::string(); - } - - return result; -} - void FlowHandler::RegisterMessages() { dom_ui_->RegisterMessageCallback("ShowCustomize", NewCallback(this, &FlowHandler::HandleUserClickedCustomize)); @@ -102,7 +81,7 @@ void FlowHandler::ClickCustomizeCancel(const Value* value) { void FlowHandler::HandleSubmitAuth(const Value* value) { - std::string json(GetJsonResponse(value)); + std::string json(dom_ui_util::GetJsonResponseFromFirstArgumentInList(value)); std::string username, password, captcha; if (json.empty()) return; diff --git a/chrome/browser/sync/sync_setup_flow.h b/chrome/browser/sync/sync_setup_flow.h index 4e52ee3..db9de27 100644 --- a/chrome/browser/sync/sync_setup_flow.h +++ b/chrome/browser/sync/sync_setup_flow.h @@ -75,6 +75,9 @@ class SyncSetupFlow : public HtmlDialogUIDelegate { virtual void OnDialogClosed(const std::string& json_retval); // HtmlDialogUIDelegate implementation. + virtual void OnCloseContents(TabContents* source, bool* out_close_dialog) { } + + // HtmlDialogUIDelegate implementation. virtual std::wstring GetDialogTitle() const { return l10n_util::GetString(IDS_SYNC_MY_BOOKMARKS_LABEL); } |