15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/webui/sync_internals_ui.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/ui/webui/sync_internals_message_handler.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/url_constants.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/web_ui.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/web_ui_data_source.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "grit/sync_internals_resources.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)content::WebUIDataSource* CreateSyncInternalsHTMLSource() { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::WebUIDataSource* source = 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::WebUIDataSource::Create(chrome::kChromeUISyncInternalsHost); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch source->SetUseJsonJSFormatV2(); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->SetJsonPath("strings.js"); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("sync_index.js", IDR_SYNC_INTERNALS_INDEX_JS); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("chrome_sync.js", 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IDR_SYNC_INTERNALS_CHROME_SYNC_JS); 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) source->AddResourcePath("types.js", IDR_SYNC_INTERNALS_TYPES_JS); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("sync_log.js", IDR_SYNC_INTERNALS_SYNC_LOG_JS); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("sync_node_browser.js", 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IDR_SYNC_INTERNALS_SYNC_NODE_BROWSER_JS); 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("sync_search.js", 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IDR_SYNC_INTERNALS_SYNC_SEARCH_JS); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("about.js", IDR_SYNC_INTERNALS_ABOUT_JS); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("data.js", IDR_SYNC_INTERNALS_DATA_JS); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("events.js", IDR_SYNC_INTERNALS_EVENTS_JS); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->AddResourcePath("search.js", IDR_SYNC_INTERNALS_SEARCH_JS); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) source->SetDefaultResource(IDR_SYNC_INTERNALS_INDEX_HTML); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return source; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SyncInternalsUI::SyncInternalsUI(content::WebUI* web_ui) 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) : WebUIController(web_ui) { 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile = Profile::FromWebUI(web_ui); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::WebUIDataSource::Add(profile, CreateSyncInternalsHTMLSource()); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) web_ui->AddMessageHandler(new SyncInternalsMessageHandler); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)SyncInternalsUI::~SyncInternalsUI() {} 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51