Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Side by Side Diff: net/proxy/proxy_config_service_linux.cc

Issue 149785: Add proxy config (using gnome-network-preferences) (Closed)
Patch Set: use new forground tab Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/gtk/options/advanced_contents_gtk.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/proxy/proxy_config_service_linux.h" 5 #include "net/proxy/proxy_config_service_linux.h"
6 6
7 #include <gconf/gconf-client.h> 7 #include <gconf/gconf-client.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 9
10 #include "base/linux_util.h"
10 #include "base/logging.h" 11 #include "base/logging.h"
11 #include "base/string_tokenizer.h" 12 #include "base/string_tokenizer.h"
12 #include "base/string_util.h" 13 #include "base/string_util.h"
13 #include "base/task.h" 14 #include "base/task.h"
14 #include "googleurl/src/url_canon.h" 15 #include "googleurl/src/url_canon.h"
15 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
16 #include "net/http/http_util.h" 17 #include "net/http/http_util.h"
17 #include "net/proxy/proxy_config.h" 18 #include "net/proxy/proxy_config.h"
18 #include "net/proxy/proxy_server.h" 19 #include "net/proxy/proxy_server.h"
19 20
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 } 529 }
529 530
530 ProxyConfigServiceLinux::Delegate::Delegate( 531 ProxyConfigServiceLinux::Delegate::Delegate(
531 EnvironmentVariableGetter* env_var_getter, 532 EnvironmentVariableGetter* env_var_getter,
532 GConfSettingGetter* gconf_getter) 533 GConfSettingGetter* gconf_getter)
533 : env_var_getter_(env_var_getter), gconf_getter_(gconf_getter), 534 : env_var_getter_(env_var_getter), gconf_getter_(gconf_getter),
534 glib_default_loop_(NULL), io_loop_(NULL) { 535 glib_default_loop_(NULL), io_loop_(NULL) {
535 } 536 }
536 537
537 bool ProxyConfigServiceLinux::Delegate::ShouldTryGConf() { 538 bool ProxyConfigServiceLinux::Delegate::ShouldTryGConf() {
538 // GNOME_DESKTOP_SESSION_ID being defined is a good indication that
539 // we are probably running under GNOME.
540 // Note: KDE_FULL_SESSION is a corresponding env var to recognize KDE.
541 std::string dummy, desktop_session;
542 return env_var_getter_->Getenv("GNOME_DESKTOP_SESSION_ID", &dummy)
543 || (env_var_getter_->Getenv("DESKTOP_SESSION", &desktop_session)
544 && desktop_session == "gnome");
545 // I (sdoyon) would have liked to prioritize environment variables 539 // I (sdoyon) would have liked to prioritize environment variables
546 // and only fallback to gconf if env vars were unset. But 540 // and only fallback to gconf if env vars were unset. But
547 // gnome-terminal "helpfully" sets http_proxy and no_proxy, and it 541 // gnome-terminal "helpfully" sets http_proxy and no_proxy, and it
548 // does so even if the proxy mode is set to auto, which would 542 // does so even if the proxy mode is set to auto, which would
549 // mislead us. 543 // mislead us.
550 // 544 //
551 // We could introduce a CHROME_PROXY_OBEY_ENV_VARS variable...?? 545 // We could introduce a CHROME_PROXY_OBEY_ENV_VARS variable...??
546 return base::UseGnomeForSettings();
552 } 547 }
553 548
554 void ProxyConfigServiceLinux::Delegate::SetupAndFetchInitialConfig( 549 void ProxyConfigServiceLinux::Delegate::SetupAndFetchInitialConfig(
555 MessageLoop* glib_default_loop, MessageLoop* io_loop) { 550 MessageLoop* glib_default_loop, MessageLoop* io_loop) {
556 // We should be running on the default glib main loop thread right 551 // We should be running on the default glib main loop thread right
557 // now. gconf can only be accessed from this thread. 552 // now. gconf can only be accessed from this thread.
558 DCHECK(MessageLoop::current() == glib_default_loop); 553 DCHECK(MessageLoop::current() == glib_default_loop);
559 glib_default_loop_ = glib_default_loop; 554 glib_default_loop_ = glib_default_loop;
560 io_loop_ = io_loop; 555 io_loop_ = io_loop;
561 556
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 new GConfSettingGetterImpl())) { 672 new GConfSettingGetterImpl())) {
678 } 673 }
679 674
680 ProxyConfigServiceLinux::ProxyConfigServiceLinux( 675 ProxyConfigServiceLinux::ProxyConfigServiceLinux(
681 EnvironmentVariableGetter* env_var_getter, 676 EnvironmentVariableGetter* env_var_getter,
682 GConfSettingGetter* gconf_getter) 677 GConfSettingGetter* gconf_getter)
683 : delegate_(new Delegate(env_var_getter, gconf_getter)) { 678 : delegate_(new Delegate(env_var_getter, gconf_getter)) {
684 } 679 }
685 680
686 } // namespace net 681 } // namespace net
OLDNEW
« no previous file with comments | « chrome/browser/gtk/options/advanced_contents_gtk.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698