1 // Copyright (c) 2012 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 "content/shell/common/shell_content_client.h" 6 7 #include "base/command_line.h" 8 #include "base/strings/string_piece.h" 9 #include "base/strings/utf_string_conversions.h" 10 #include "content/public/common/content_switches.h" 11 #include "content/shell/common/shell_switches.h" 12 #include "grit/shell_resources.h" 13 #include "grit/webkit_resources.h" 14 #include "grit/webkit_strings.h" 15 #include "ui/base/l10n/l10n_util.h" 16 #include "ui/base/resource/resource_bundle.h" 17 #include "webkit/common/user_agent/user_agent_util.h" 18 19 namespace content { 20 21 ShellContentClient::~ShellContentClient() { 22 } 23 24 std::string ShellContentClient::GetUserAgent() const { 25 std::string product = "Chrome/" CONTENT_SHELL_VERSION; 26 CommandLine* command_line = CommandLine::ForCurrentProcess(); 27 if (command_line->HasSwitch(switches::kUseMobileUserAgent)) 28 product += " Mobile"; 29 return webkit_glue::BuildUserAgentFromProduct(product); 30 } 31 32 base::string16 ShellContentClient::GetLocalizedString(int message_id) const { 33 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) { 34 switch (message_id) { 35 case IDS_FORM_OTHER_DATE_LABEL: 36 return ASCIIToUTF16("<<OtherDateLabel>>"); 37 case IDS_FORM_OTHER_MONTH_LABEL: 38 return ASCIIToUTF16("<<OtherMonthLabel>>"); 39 case IDS_FORM_OTHER_TIME_LABEL: 40 return ASCIIToUTF16("<<OtherTimeLabel>>"); 41 case IDS_FORM_OTHER_WEEK_LABEL: 42 return ASCIIToUTF16("<<OtherWeekLabel>>"); 43 case IDS_FORM_CALENDAR_CLEAR: 44 return ASCIIToUTF16("<<CalendarClear>>"); 45 case IDS_FORM_CALENDAR_TODAY: 46 return ASCIIToUTF16("<<CalendarToday>>"); 47 case IDS_FORM_THIS_MONTH_LABEL: 48 return ASCIIToUTF16("<<ThisMonthLabel>>"); 49 case IDS_FORM_THIS_WEEK_LABEL: 50 return ASCIIToUTF16("<<ThisWeekLabel>>"); 51 } 52 } 53 return l10n_util::GetStringUTF16(message_id); 54 } 55 56 base::StringPiece ShellContentClient::GetDataResource( 57 int resource_id, 58 ui::ScaleFactor scale_factor) const { 59 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) { 60 switch (resource_id) { 61 case IDR_BROKENIMAGE: 62 #if defined(OS_MACOSX) 63 resource_id = IDR_CONTENT_SHELL_MISSING_IMAGE_PNG; 64 #else 65 resource_id = IDR_CONTENT_SHELL_MISSING_IMAGE_GIF; 66 #endif 67 break; 68 69 case IDR_TEXTAREA_RESIZER: 70 resource_id = IDR_CONTENT_SHELL_TEXT_AREA_RESIZE_CORNER_PNG; 71 break; 72 } 73 } 74 return ResourceBundle::GetSharedInstance().GetRawDataResourceForScale( 75 resource_id, scale_factor); 76 } 77 78 base::RefCountedStaticMemory* ShellContentClient::GetDataResourceBytes( 79 int resource_id) const { 80 return ResourceBundle::GetSharedInstance().LoadDataResourceBytes(resource_id); 81 } 82 83 gfx::Image& ShellContentClient::GetNativeImageNamed(int resource_id) const { 84 return ResourceBundle::GetSharedInstance().GetNativeImageNamed(resource_id); 85 } 86 87 } // namespace content 88